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:
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.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
Altrimenti pulisce la tendina e inserisce il solo valore selezionabile "-".
Sotto ho un'altra tendina, che si comporta così:
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: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
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

Rispondi quotando