Salve a tutti e scusate: ho cercato nella guida VBA di Word, ma non ho trovato risposta al mio problema. Io ho un menù a tendina che mi attiva la seguente macro:
codice:
Sub struttura()
Dim strstruttura As String
ActiveDocument.FormFields("sop").DropDown.ListEntries.Clear
strstruttura = ActiveDocument.FormFields("elenco").Result
If strstruttura = "Dipartimento Acquisti" Then
With ActiveDocument.FormFields("sop") _
.DropDown.ListEntries
.Add Name:="Livorno"
.Add Name:="Lucca"
.Add Name:="Massa"
.Add Name:="Pisa"
.Add Name:="Viareggio"
End With
Else
ActiveDocument.FormFields("sop") _
.DropDown.ListEntries.Clear
With ActiveDocument.FormFields("sop") _
.DropDown.ListEntries
.Add Name:="-"
End With
End If
End Sub
che in pratica va a leggersi il valore della tendina precedente e, nel caso in cui esso sia "Dipartimento Acquisti", allora valorizza i campi della tendina con i nomi delle diverse strutture.
Altrimenti pulisce la tendina e inserisce il solo valore selezionabile "-".
Sotto ho un'altra tendina, che si comporta così:
codice:
Sub proponente()
Dim strstproponente As String
strstproponente = ActiveDocument.FormFields("sop").Result
If strstproponente = "Livorno" Then
ActiveDocument.FormFields("proponente").Result = "Dr. Mario Rossi"
ElseIf strstproponente = "Pisa" Then
ActiveDocument.FormFields("proponente").Result = "Dr.ssa Anna Verde"
ElseIf strstproponente = "Lucca" Then
ActiveDocument.FormFields("proponente").Result = "Dr. Paolo Bianchi"
ElseIf strstproponente = "Massa" Then
ActiveDocument.FormFields("proponente").Result = "Dr. Luigi Nero"
ElseIf strstproponente = "Viareggio" Then
ActiveDocument.FormFields("proponente").Result = "Dr. Luca Giallo"
Else
ActiveDocument.FormFields("proponente").Result = ""
End If
End Sub
Il problema è questo: se nella tendina precedente (la prima delle due) nessuno seleziona il valore "-" e la lascia bianca, quando si sposta sulla seconda riceve il messaggio d'errore:
Errore di run-time '5825'
L'oggetto è stato eliminato
Io vorrei fare in modo che, se non viene selezionato niente (e quindi la tendina resta bianca), anche la seconda restasse senza valore ma senza chiaramente generare errori.
Ho provato aggiungendo alla seconda parte del codice:
Dim strstproponente As String
strstproponente = ActiveDocument.FormFields("sop").Result
If strstproponente Is Not Null Then
... blocco di codice ...
ma non funzia.
Grazie mille