› Sviluppare funzionalita su Microsoft Office con VBA › risultato cercavert in useform
-
AutoreArticoli
-
ciao a tutti, chiedo se è possibile visualizzare il risultato del cercavert (colonna D), che viene fuori dall'inserimento del codice in colonna E, nella userform1 in sede di inserimento dati. Non chiedo la possibilità di modifica in quel momento ma solo visualizzarlo.
Devo creare una nuova textbox o un'etichetta per far questo ?
Allego file
grazie mille
Allegati:
You must be logged in to view attached files.In VBA il CERCA.VERT ha la stessa sintassi della formula lato foglio.
Esempio se si vuole visualizzare in una label il risultato partendo da una textbox
Me.Label1.Caption = WorksheetFunctionVLooKup(Me.Textbox1.Value, Range("A1:B10"), 2, False)Il codice può essere associato ad un evento della Textbox es. AfterUpdate oppure Exit
@alfrimpa grazie per la tua risposta, ma dove indico il nome del foglio da dove prelevare i dati per il cercavert ?
Grazie
Devi solo completare il secondo parametro del VLookup anteponendo al range Sheets("nomefoglio") oppure il codename del foglio (es. Foglio1, Foglio2 ecc.) oppure ancora utilizzando il suo indice ossia la sua posizione nella cartella (es. Sheets(1), Sheets(2) ecc.)
Si è corretto.
Io ti consiglio di usare il codename del foglio perchè se il nome del foglio viene successivamente modificato il codice non funzionerebbe più.
@alfrimpa grazie mille per la tua assistenza.
Una domanda curiosa però, te la faccio solo per imparare: per esempio, nel foglio “FEE” in A1 c’è il codice azienda e in B1 il nome azienda.
Nella userform1, il codice azienda lo digito nella textbox “TxtMandato”; come è possibile, quindi, che nella label mi venga restituito il nome azienda se nelle relative righe di codice la textbox di cui sopra non è menzionata ?
Perdonami, forse ho saltato un passaggio che me lo fa capire ?
Sempre grazie !
Te l'ho detto come fare.
Devi associare il codice all'evento Exit o all'evento AfterUpdate della textbox "txt mandato".
Nel primo caso il codice viene eseguito quando esci dal controllo nel secondo quando, dopo aver digitato qualcosa premi Invio.
è possibile visualizzare il risultato del cercavert (colonna D), che viene fuori dall'inserimento del codice in colonna E, nella userform1 in sede di inserimento dati.
Nella userform1, il codice azienda lo digito nella textbox “TxtMandato”; come è possibile, quindi, che nella label mi venga restituito il nome azienda se nelle relative righe di codice la textbox di cui sopra non è menzionata ?
Fermo restando le valide indicazioni che hai ottenuto...onestamente, almeno io, non ho capito tu dove vorresti visualizzare il risultato del Cerca.Vert.
Puoi spiegare meglio le azione che fai e cosa vorresti ottenere da queste azioni?
ciao alexps81, come scritto nella 54328
ciao a tutti, chiedo se è possibile visualizzare il risultato del cercavert (colonna D), che viene fuori dall'inserimento del codice in colonna E, nella userform1
mi servirebbe di visualizzarlo nella userform1 subito dopo aver inserito il codice nella textbox "TxtMandato
mi servirebbe di visualizzarlo nella userform1
Si ok...ma dove? In una TextBox? Label? MsgBox?
Devi associare il codice all'evento Exit o all'evento AfterUpdate della textbox "txt mandato"
grazie @alfrimpa e scusa ma non sono ancora molto pratico ....
Ho fatto come dici tu ma certamente qualcosa sbaglio perché mi da errore, allego schermata
Allegati:
You must be logged in to view attached files.Si ok...ma dove? In una TextBox? Label? MsgBox?
Ciao @alexps81 nella label "LabelNomeAzienda"
ho aggiunto il punto dove mi hai detto, ma mi da errore comunque
Allega il file che ti dà errore
ho aggiunto il punto dove mi hai detto, ma mi da errore comunque
Hai un po' di cose da sistemare:
1) Le 2 virgolette nella definizione del nome del Foglio FEE sono sbagliate. Tu hai scritto Sheets(“FEE”).Range("A1:B10"), 2, False). Se avessi utilizzato il CodeName del Foglio anziché il suo nome , come suggerito da alfrimpa non ti sarebbe capitato questo problema.
2) Il VLookup può fallire se cerchi un numero tramite una TextBox. Ti ricordo che da una TextBox esce sempre un TESTO. Inoltre se stai cercando un numero ma errore scrivi un carattere alfabetico (ad esempio scrivi la lettera "A") ed esci dalla TextBox, il VLookup fallirà dandoti errore.
Una soluzione potrebbe essere questa:
Private Sub TxtMandato_AfterUpdate() On Error Resume Next Me.LabelNomeAzienda.Caption = WorksheetFunction.VLookup(CLng(Me.TxtMandato.Value), Sheets("FEE").Range("A1:B10"), 2, False) On Error Goto 0 End Subma io preferisco più questa:
Private Sub TxtMandato_AfterUpdate() Dim r As Variant r = Application.Match(Val(Me.TxtMandato.Value), Sheets("FEE").Range("A:A"), 0) If Not IsError(r) Then Me.LabelNomeAzienda.Caption = Sheets("FEE").Range("B" & r).Value Else Me.LabelNomeAzienda.Caption = "" End If End Sub@alfrimpa Al momento non ho il pc con me, se può esserti utile trovi allegato nella 54328 dove però c’è da inserire l’intero codice da te suggerito.
Non so se può andarti bene lo stesso, altrimenti fra un’oretta carico quello giusto, ma quello finora allegato è il medesimo senza il tuo codice
-
AutoreArticoli
