Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

VBA di Excel UserForm codice per pulsante "cerca"

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

VBA di Excel UserForm codice per pulsante "cerca"

Postdi ProbePotter » 25/07/07 16:47

Salve a tutti, ho ancora bisogno del vs preziosissimo aiuto.
Ho realizzato con il VBA di excel uno UserForm con sei TextBox dove
inserisco dei dati che si fissano sul corrispettivo e sottostante Foglio
di excel. Funziona benissimo per questa attività. Ora però ho aggiunto
un' altro TextBox e relativo pulsante con lo scopo di cercare nella
seconda colonna (solamente) ed eventualmente se il risultato è quello
richiesto apparire come trascritto in precedenza nell' inserimento dei
dati. Ho provato dei codici ma non hanno effetto, anzi generano errori
di sintassi, prontamente evidenziati dal VBA. Potreste aiutarmi nella
ricerca del giusto codice da trascrivere ? Spero di essere stato compren_
sibile nella richiesta, cmq sono a vs disposizione per eventuali delucidazioni.

Grazie anticipatamente.
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Sponsor
 

Postdi Anthony47 » 26/07/07 00:50

Su userform & c sono una schiappa (in genere preferisco realizzare il tutto su un Foglio nascosto che visualizzo all' occorrenza); ma se mi fai capire magari riesco a dare un contributo.
Cosa intendi con “ho aggiunto un' altro TextBox e relativo pulsante con lo scopo di cercare nella seconda colonna (solamente) ed eventualmente se il risultato è quello richiesto apparire come trascritto in recedenza nell' inserimento dei dati” ??

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: VBA di Excel UserForm codice per pulsante "cerca&qu

Postdi Alexsandra » 26/07/07 07:30

ProbePotter ha scritto:..... Ora però ho aggiunto
un' altro TextBox e relativo pulsante con lo scopo di cercare nella
seconda colonna .....
Non puoi fare un cerca con un textbox, forse intendi Listbox o Combobox.

specifica meglio, magari posta un file di esempio.

[Spam On]Se clicchi al link che ho in firma nella sezione Excel e vba c'è un mini corso sul vba e trovi anche le userform, forse ti può essere utile per capire come funzionano e come si usano i controlli (si chiamano così textbox,listbox etc...)[Spam Off] :)
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi ProbePotter » 26/07/07 16:53

Prima di tutto vorrei ringraziarvi per la vs collaborazione, poi tornando
al tema vi garantisco che si tratta di un TextBox, anche da lavori funzionanti di altri ho potuto constatare che "cerca" è possibile effettuarlo
su tale locazione. Ora se potessi inviarvi la mia realizzazione e se volete
anche quelle già funzionanti di altri autori a conferma di quanto asserisco
potreste rendervi conto di ciò, in cui ancora non sono riuscito a trovare il
"codice".

Grazie
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Postdi Anthony47 » 26/07/07 17:03

Ma il mio problema e' a monte: non ho capito la frase “ho aggiunto un' altro TextBox e relativo pulsante con lo scopo di cercare nella seconda colonna (solamente) ed eventualmente se il risultato è quello richiesto apparire come trascritto in recedenza nell' inserimento dei dati”, che dovrebbe descrivere che cosa vuoi fare.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi ProbePotter » 26/07/07 18:07

Abbiamo lo UserForm con sei TextBox, i quali (compilati) hanno lo
scopo di trasferire i dati sul sottostante Foglio di excel, tramite un
pulsante che ho inserito "Add this Part", ok ? Ora ho aggiunto un' altro
TextBox con relativo pulsante "Search", con lo scopo di cercare nella
sola colonna "B" i dati precedentemente trascritti. ovviamente un message
box di avviso es. "Trovato ... vuoi fermarti ?" due opzioni "SI oppure NO"
con relativi pulsanti per finire o continuare la ricerca. Comprendo che non sono in grado di spiegarmi correttamente ma sono (per me) concetti difficili. Forse tutto sarebbe più semplice se potessi inviarti tali files per renderti conto.

Grazie
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Postdi Anthony47 » 28/07/07 01:13

Ciao ProbePotter,
in questi giorni faccio fatica a seguire con assiduita’…. e in piu’ continuo a non capire.
Hai una form con 6 textbox che usi per la funzione “Add this Part” e che non ti da’ problemi, e poi hai una altra form con 1 textbox e 1 pulsante? Se SI, come vorresti usare questa seconda form? Es a caso: digito un valore nel textbox, premo il bottone, vorrei che sul Foglio121 venisse evidenziata la prima occorrenza di quel valore.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi ProbePotter » 28/07/07 12:40

Ciao Anthony47, allora ho un Form con sei TextBox, per mezzo dei
quali inserisco dei dati che vengono trascritti sul foglio excel sottostante
tramite il pulsante "Add this Part" (ci sono altri due pulsanti "Close Form"
e "Save & Exit" per esattezza) ora ho aggiunto un' altro TextBox (7°)
dove scrivo uno dei dati presenti in colonna "B" premendo il pulsante
dedicato "Search" dovrebbe apparire un mexBox "Trovato .... vuoi fermarti ?" due opzioni a pulsante "SI oppure NO" per finire o continuare la ricerca. Se la scelta è "SI" nelle 6 TextBox precedenti appaiono i dati
precedentemente inseriti (questo non l' avevo detto, forse per questo
non comprendevi) il funzionamento è semplice compili laTextBox 7 (cerca)
e la risposta nelle 6 Textbox. Ma i codici che immetto o vengono segnalati
con errore oppure l' ultimo che ho provato, non genera errori ma neanche
il risultato che vorrei.

Ciao
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Postdi Anthony47 » 28/07/07 14:56

Forse adesso e' piu' chiaro.
Insomma con la stessa form vuoi fare o l' introduzione o la search, utilizzando comunque textbox e pulsanti separati.
Potresti partire da questo codice; la form e' nominata U_F_Mia, il pulsante di "ricerca" e' nominato Query (proprieta' Name), i textbox dell' input sono textbox1-6, quello per la query e' il textbox7.
Codice: Seleziona tutto
Private Sub Query_Click()
SearchVal = U_F_mia.TextBox7.Value
Sheets("Foglio1").Select
Set UsedB = Application.Intersect(ActiveSheet.UsedRange, Range("B:B"))
ContaQuanti = Application.WorksheetFunction.CountIf(Range("A:A"), SearchVal)     'N° di Occorrenze di quel valore
For Each Cella In UsedB
If Cella.Value <> SearchVal Then GoTo Avanti
U_F_mia.TextBox1.Value = Cella.Offset(0, 1).Value  'XXXXXXXXX
U_F_mia.TextBox2.Value = Cella.Offset(0, 2).Value  'XXXXXXXXX
'
'istruzioni per compilare altri textbox
'
I = I + 1
Mess = "Trovato >> " & SearchVal & " in Riga " & Cella.Row & _
vbCrLf & " (Occorrenza  " & I & " di " & ContaQuanti & ")" & _
vbCrLf & ">> SI per Confermare; NO per Saltare questo File; CANCEL per abortire" 'XXXXXXXXXXXX

scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)


If scelta = 2 Then GoTo ESCI       'Cancel,  XXXXXXXX
If scelta = 7 Then GoTo SALTA     'NO , XXXXXXXXX
'
'istruzioni per scelta SI
'
Avanti:
Next Cella
SALTA:          'XXXXXXXXXX
ESCI:          'XXXXXXXXXX

End Sub


Questa azzera TextBox1-6 quando si compila TextBox7
Codice: Seleziona tutto
Private Sub TextBox7_Change()
U_F_mia.TextBox1.Value = ""
U_F_mia.TextBox2.Value = ""
'
' etc etc (istruzioni per azzerare TextBox3-6)
'
End Sub


Tutte le istruzioni marcate XXXXXXXX sono "esempi", e vanno sostituite da quelle che servono per il tuo processo; vale anche per le label (salta:, esci:), che vanno inserite e completate in funzione di quello che vuoi fare in quelle circostanze.

Aiuta? Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi ProbePotter » 29/07/07 17:38

Ciao Anthony47,
Grazie, per il tuo consiglio ;lo sto provando ma non riesco a farlo
funzionare.

Ciao e ancora Grazie
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Postdi Anthony47 » 29/07/07 23:31

Non riesci a farlo funzionare perche' non sai come integrarlo col codice che hai gia' scritto (1), non sai come modificare le istruzioni segnate XXXX (2), ti va in debug (3), non fa quello che vorresti (4) o che cosa?

Se 1, credo che questo codice si aggiunge a quello che hai gia' scritto, a meno che tu non usi il pulsante search anche per altri scopi.

Per il 2, le modifiche riguardano il nome della form, il nome del pulsante (guarda la sua proprieta' Name) e quello dei textbox; i valori da prendere dal tuo foglio e mettere nei textbox1-6, il codice per gestire le scelte Si, No, Cancel del messagebox. Ma il codice cosi' come l' ho inviato fa gia' qualcosa di dimostrativo; l' hai eseguito (ma e' obbligatorio cambiare nella macro il nome della form e il nome del pulsante, e verificare il nome dei textbox)?

Se 3, precisa in quale circostanza e su quale istruzione.
Se 4, allora metti un break sulla prima istruzione dopo il titolo e vedi se quando pigi Search la macro si attiva o meno; se si attiva, puoi continuare passo passo (con F8) o eseguire in toto (con F5).

Non ci sei ancora arrivato, ma ti segnalo che l' istruzione .CountIf e' errata, anche se questo non ha effetti gravi; l' istruzione giusta e'
Codice: Seleziona tutto
ContaQuanti = Application.WorksheetFunction.CountIf(Range("B:B"), SearchVal)


Insomma, prova e riprova e fatti sentire.
Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 29/07/07 23:33

Passo-passo si fa con F-otto.
Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi ProbePotter » 03/08/07 06:22

Ci sono riuscito, grazie Anthgony47, well done.

Ciao
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37


Torna a Applicazioni Office Windows


Topic correlati a "VBA di Excel UserForm codice per pulsante "cerca"":


Chi c’è in linea

Visitano il forum: raimea, wallace&gromit e 9 ospiti