Condividi:        

Cancel =true

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Cancel =true

Postdi matzap » 05/10/15 09:15

Ciao a tutti!
ho un problema con il controllo di una combobox:
con il comando Cancel =true impedisco l'uscita dalla combobox se non è stato selezionato alcun un valore.
Il problema però mi si pone anche quando con un commandbutton provo a chiudere la userform. ho provato così:
Codice: Seleziona tutto
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If CmdButton5_Click = False Then
If ComboBox1.Value = "" Then
MsgBox "seleziona Dipendente"
Cancel = True
End If
End If
End Sub

ma non funziona.
Potete aiutarmi?
Grazie e ciao
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: Cancel =true

Postdi Anthony47 » 06/10/15 22:07

L'interazione col commandbutton la puoi facilmente prevenire impostando la proprieta' TakeFocusOnClick del commandbutton su False
Quanto a consentire la chiusura della form senza scontrarsi con la logica della macro di ComboBox_Exit devi in realta' modificare il contenuto della ComboBox_Exit per consentire una logica piu' articolata.
Ad esempio puoi definire una variabile comune al modulo Userform (cioe' dichiarandola in testa al modulo di codice della Userform; io ho usato Dim sStop As Boolean), compilando questa variabile su False quando entri nel combobox e su True quando vuoi consentire l'uscita dal combobox senza disturbare.
Poi nella Sub ComboBox1_Exit come prima istruzione metterai:
Codice: Seleziona tutto
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If sStop Then Exit Sub      '<<< QUESTA!
'etc etc


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cancel =true

Postdi matzap » 06/10/15 22:43

Ciao Anthony,
intanto grazie,
scusami ma non ho capito molto! :undecided:
proprieta' TakeFocusOnClick del commandbutton su False è chiaro,

il resto no. colpa mia, non conoscenze del vba limitate!!! puoi cercare di spigarmelo meglio?

grazie!
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: Cancel =true

Postdi Anthony47 » 06/10/15 22:55

Nell'esempio la variabile sStop e' un semaforo che determina se la macro di ComboBox1_Exit deve arrabbiarsi perche' il combobox e' stato lasciato vuoto o se invece deve starsene zitta perche' la form sta facendo cose piu' grosse, cioe' si vuole chiudere, cosa che dovrebbe abortire le attivita' all'interno dei singoli controlli.
Puoi intercettare che la form si vuole chiudere con questo codice, da inserire nello stesso modulo di codice della userform:
Codice: Seleziona tutto
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
sStop = True
End Sub
Avendo dichiarato sStop in testa al modulo rende la variabile condivisa tra tutte le macro del modulo, per cui la ComboBox1_Exit potra' "sentire" che c'e' una chiusura in corso e se ne stara' buona.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Cancel =true":

true image 2013
Autore: mau1201
Forum: Software Windows
Risposte: 6

Chi c’è in linea

Visitano il forum: Nessuno e 78 ospiti