Home › Forum › Domande su Excel VBA e MACRO › [RISOLTO] Cerca corrispondente
-
AutoreArticoli
-
#6441 |
http://www.filedropper.com/esempio_9
Buongiorno a tutti ,
il file esempio allegato per far capire meglio la mia esigenza che espongo di seguito.
Quello che non riesco ad ottenere è : selezionando nella combobox un nome e nella textbox inserire un articolo , in base al nome selezionato , nel foglio1 vorrei trovare il nome corrispondente nella riga 2 e nella colonna a dx del nome inserire il testo della textbox.
Ovviamente essendo un file di esempio , al suo interno ci sono pochi dati e quindi i nomi nella riga 2 possono essere in numero maggiore ma non definito e gli articoli da inserire per ogni nome anche.
Gli articoli potrebbero essere inseriti in più volte quindi avrei bisogni di poter richiamare lo stesso nome più volte.
Vi ringrazio dell’aiuto che riceverò
-
Questo argomento è stato modificato 6 mesi, 2 settimane fa da
sid.
-
Questo argomento è stato modificato 6 mesi, 2 settimane fa da
-
Ciao
I nomi in riga 2 sono univoci o possono essere ripetuti?
Se scelgo “pippo” che si trova in A2, in B2 inserisco il valore che sta nella textbox; se poi scelgo di nuovo “pippo”, sovrascrivo il valore in B2 oppure accodo i dati nella riga successiva per ogni inserimento? -
ciao sid , innanzi tutto grazie per il tuo intervento .
i nomi non vengono ripetuti quindi ad ogni inserimento in textbox i dati vanno accodati nella colonna a dx del nome .
scusa ho riletto quanto hai scritto e ho visto che avevi già capito l’esigenza.
grazie
-
Un esempio sicuramente migliorabile:
Private Sub CommandButton2_Click() Dim ws As Worksheet Dim rng As Range, rCliente As Range Dim nRiga As Long Set ws = Sheets("Foglio1") Set rng = ws.Range("A2:O2") ' range di ricerca in riga 2...da adattare al tuo file With rng Set rCliente = .Find(Me.ComboBox1.Value, rng(.Rows.Count, .Columns.Count), xlValues, xlWhole) End With If Not rCliente Is Nothing And Me.ComboBox1.Value <> vbNullString And Me.TextBox1.Value <> vbNullString Then With rCliente.Offset(0, 1) nRiga = IIf(.Value = vbNullString, 0, ws.Cells(Rows.Count, .Column).End(xlUp).Row - 1) End With rCliente.Offset(nRiga, 1).Value = Me.TextBox1.Value Set rCliente = Nothing Unload Me Else MsgBox "Combo e/o textbox vuote", vbExclamation, "ATTENZIONE" End If Set ws = Nothing Set rng = Nothing End Sub
Un consiglio: invece di inserire un range a caso nel nome definito “nome”, rendilo flessibile, inserendo solo i valori senza celle vuote, a prescindere se togli o aumenti i nomi in colonna A del foglio2
Nel nome definito in “Riferito a:” inserisci
=SCARTO(Foglio2!$A$1;0;0;CONTA.VALORI(Foglio2!$A:$A);1)
-
Perfetto , grazie mille sid , stasera lo provo a casa e ti do riscontro.
Quindi la riga sottolineata in blu devo cancellarla e sostituirla con quella in rosso giusto ?
-
“Quindi la riga sottolineata in blu devo cancellarla e sostituirla con quella in rosso giusto ?”
NO!!!!
ci devi sostituire la vecchia istruzionevecchia istruzione
Set rng = ws.Range("A2:O2") ' range di ricerca in riga 2...da adattare al tuo file
sostituita da
Set rng = ws.Range(ws.Cells(2, 1), ws.Cells(2, nColonna)) ' range di ricerca in riga 2
-
Per sicurezza ti passo il codice nuovo ;)
Private Sub CommandButton2_Click() Dim ws As Worksheet Dim rng As Range, rCliente As Range Dim nRiga As Long, nColonna As Long Set ws = Sheets("Foglio1") nColonna = ws.Cells(2, Columns.Count).End(xlToLeft).Column Set rng = ws.Range(ws.Cells(2, 1), ws.Cells(2, nColonna)) ' range di ricerca in riga 2 With rng Set rCliente = .Find(Me.ComboBox1.Value, rng(.Rows.Count, .Columns.Count), xlValues, xlWhole) End With If Not rCliente Is Nothing And Me.ComboBox1.Value <> vbNullString And Me.TextBox1.Value <> vbNullString Then With rCliente.Offset(0, 1) nRiga = IIf(.Value = vbNullString, 0, ws.Cells(Rows.Count, .Column).End(xlUp).Row - 1) End With rCliente.Offset(nRiga, 1).Value = Me.TextBox1.Value Set rCliente = Nothing Unload Me Else MsgBox "Combo e/o textbox vuote", vbExclamation, "ATTENZIONE" End If Set ws = Nothing Set rng = Nothing End Sub
-
ciao sid , grazie mille , ancora una volta sei stato indispensabile alla risoluzione di un mio problema, funziona perfettamente
Anche questo codice finisce nel mio archivio
così sempre meno dovrò disturbare
-
http://www.filedropper.com/esempio_10
Visto che siamo in tema evito di aprire un nuovo post ,
nel foglio1 ho 2 pulsanti , “Inserisci” e “Registra” .
Il primo ,”Inserisci” , fa quanto dovuto grazie all’aiuto di sid ma ora quello che vorrei ottenere è premendo il pulsante “Registra” , cercare nel foglio1 il nome corrispondente alla selezione in combobox , prelevare tutti gli articoli corrispondenti allo stesso che si trovano nella prima colonna a dx al nome , aprire il foglio avente lo stesso nome ed incollare l’elenco di articoli prelevato , nella collonna B a partire dalla seconda riga “B2”.
Ho iniziato a scrivere il codice che cerca il foglio con lo stesso nome e lo apre ma non riesco a prelevare ed incollare gli articoli .
Un’altro aiutino per favore
grazie
-
ciao sid ,scusa il ritardo ma ho avuto un infortunio e sono stato immobilizzato per qualche giorno.
si il pulsante registra apre una form e il file l’ho pubblicato nel messaggio precedente in alto , 1^ riga
-
http://www.filedropper.com/esempio_11
opss credevo fosse esatto , guarda questo !!!
-
si esatto , in base alla scelta cambia la caption del commandbutton .
Le due operazioni avvengono dalla stessa userform
-
Ovviamente i nomi presenti nel foglio1 riga 2 a colonna alternata (ogni 2 colonne) , non hanno un numero prestabilito ma potrebbero aumentare quindi ho bisogno che il codice lavori dinamicamente .
L’unica cosa certa è che per ogni nome presente c’è un foglio con lo stesso nome
-
Spero di aver capito bene la tua esigenza
https://app.box.com/s/12zq3ekjxgwx2vvqklis0qelq1zyb75v
Fa sapere, ciao
-
Grazie mille sid , lo provo e ti faccio sapere.
-
Ciao sid , scusa per il ritardo nella risposta ma non trovandomi a casa ho difficoltà di connessione.
Il codice fa esattamente quello che chiedevo , ma non avevo dubbi
.
Ancora grazie mille del supporto .
-
AutoreArticoli
La discussione ‘[RISOLTO] Cerca corrispondente’ è chiusa a nuove risposte.