Condividi:        

[EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

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

[EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 16/07/11 09:42

Buongiorno,
Devo creare un programmino per l'invio degli ordini da parte dei nostri agenti.
Nella stessa cartella ho creato 2 fogli, in una inserito il listino (codice articolo, descrizione e prezzo) nell'altra ho inserito la compilazione dell'ordine con l'inserimento tramite menu a tendina.

Dato che gli articoli sono circa 1500, esiste qualche agevolazione nell'inserimento dei dati?
esempio:

DESCRIZIONE ARTICOLI INSERITI A MENU TENDINA:
A1 CANDELA BIANCA
A2 CANDELA GIALLA
A3 CANDELA ROSSA
A4 CANDELA BLU
A5 MOCCOLO BIANCO
A6 MOCCOLO GIALLO
A7 MOCCOLO BLU
A8 DEODORANTE BIANCO
A9 DEODORANTE GIALLO
A10 DEODORANTE BLU

A ME INTERESSA CHE L'AGENTE (CHE SICURAMENTE NON RICORDA ESATTAMENTE LA SINTASSI DEL NOME DA INSERIRE) ABBIA LA POSSIBILITA' DI RESTRINGERE LA SUA RICERCA.
ESEMPIO
A) DIGITA "BIANC" E LA TENDINA GLI SUGGERISCE SOLO "CANDELA BIANCA, MOCCOLO BIANCO, DEODORANTE BIANCO"
B) DIGITA "BIANCO" E LA TENDINA GLI SUGGERISCE SOLO "MOCCOLO BIANCO, DEODORANTE BIANCO"

GRAZIE ANTICIPATO A TUTTI
SALUTI
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Sponsor
 

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 16/07/11 15:29

Ciao commerciale, bevenuto nel forum.
Su una richiesta molto simile diedi la seguente riposta, basata sull' uso di una userform contenente due combobox, la prima a input libero e la seconda a scelta da elenco.
Nell' immagine il primo combobox e' chiamato Pre (per "preselezione"), magari lo intesti "chiave di ricerca".
Immagine

Uploaded with ImageShack.us

Alla userform va associato i seguente codice

Codice: Seleziona tutto
Option Base 0   'deve essere in testa al modulo
Dim VArr

Private Sub CBox2_Enter()
Pre = CBox1.Text
HMany = Application.WorksheetFunction.CountIf(Range("rawdata"), "*" & Pre & "*")
ReDim VArr(HMany)
'On Error GoTo NoMatch
For I = 0 To Cells(Rows.Count, Range("rawdata").Column).End(xlUp).Row
If Len(Range("rawdata").Cells(I, 1).Text) > Len(Replace(UCase(Range("rawdata").Cells(I, 1).Text), UCase(Pre), "")) Then
VArr(J) = Range("rawdata").Cells(I, 1).Text: J = J + 1
End If
Next I
CBox2.List = VArr
End Sub

Assegna all' elenco dei tuoi articoli il nome "rawdata" (seleziona, poi Menu /Inserisci /Nome); puo' essere anche dichiarata tutta la colonna.
Nelle proprieta' del combobox2 imposterai Match required=True

Dovrai poi completare la userform con un pulsate di "Ok" e la macro per caricare nella cella il testo selezionato nella ComboBox2.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 26/07/11 15:38

Ciao Anthony,
Ti ringrazio molto del tuo aiuto, purtroppo mi rendo conto che non è pane per i miei denti in quanto so utilizzare le formule di excel ma non so "programmare" visual basic non avendo mai studiato informatica a alti livelli. In realtà credevo che bastasse "impostare" la visualizzazione di excel....

Comunque non mi sono arreso e ho provato a utilizzare la macro da te proposta, non funzionava, ho chiesto ad un mio amico "esperto" di visual basic e me l'ha sistemato, dice che il problema probabilmente era nella versione di excel.

Prenderò qualche lezione di visual basic (almeno le basi) e poi proverò a metterle in pratica

Grazie mille per ora
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 30/07/11 11:02

Ciao Antony!
Ti chiedo un suggerimento!!

Ecco la macro che ho creato "suggerito" da un esperto:
*****************
Option Base 0 'deve essere in testa al modulo
Dim VArr
Private Sub ComboBox1_Change()
End Sub
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
End Sub
Private Sub CmdEsci_Click()
Unload Me
End Sub
Private Sub CommandButton1_Click()
ActiveCell.Insert = I
End Sub
Private Sub TextBox1_Change()
Pre = TextBox1.Text
HMany = 30
ReDim VArr(HMany)
For I = 1 To 3333
a = Foglio1.Cells(I, 3).Text
If InStr(1, a, Pre) > 0 Then
VArr(J) = a
J = J + 1
If (J > HMany - 1) Then Exit For
End If
Next I
ComboBox1.List = VArr
End Sub
Private Sub TextBox1_Enter()
End Sub
Private Sub UserForm_Click()
End Sub
****************
La "Private Sub CommandButton1_Click()" dovrebbe semplicemente inserire il risultato selezionato nella cella attiva ma non funziona; la stessa cosa poi voi che si potesse fare facendo doppio click sul risultato visualizzato alla Combobox 1...

NON CI RIESCO!!

Grazie anticipato per l'aiuto...
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 30/07/11 13:33

Ma perche' per ricalcolare la lista dei valori del combobox e' stato usato l' evento TextBox1_Change (che scatta una volta per ogni carattere digitato) invece che "ComboBoxX_Enter" (come ti avevo detto io, che scatta una volta sola)? E poi, sei sicuro che non avrai mai piu' di 30 valori da cui dover scegliere, visto che la macro mostra solo i primi 30?

Comunque, se vuoi inserire nella cella attiva il valore del combobox1 sostituirai la tua Sub CommandButton1_Click con questa:
Codice: Seleziona tutto
Private Sub CommandButton1_Click()
ActiveCell.Value = Combobox1.Value
End Sub

E se vuoi anche farlo su doppioclick:
Codice: Seleziona tutto
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveCell.Value = ComboBox1.Value
End Sub

Non farle migliorare da esperti...

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

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 26/08/11 17:04

Ciao Antony!
Ti chiedo ancora un aiuto:
E' possibile creare una Userform per excel cosi:

Immagine

In pratica le righe "Codice" "Descrizione" e "Ean" devono lavorare paralle...

Grazie per ora
Saluti
Commerciale
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 27/08/11 13:47

Si, si puo' fare; su quale aspetto in particolare ti serve aiuto?

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

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 29/08/11 09:42

Ciao,
Innanzitutto la parte sotto è una unica combobox o sono 3 (una per Codice, una per Descrizione e una per Ean)??
Se hai qualche consiglio su come partire mi sarebbe sicuramente utile...

Grazie
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 30/08/11 23:42

Allora direi che la parte di sotto puo' essere una Casella di riepilogo (List box), le cui proprieta' comprendono ColumnCount=3, ColumnHeads=True, ListStyle=Option, MultiSelect=Single (se devi selezionare una riga sola nell' elenco) o =Multi (se vuoi poter selezionare piu' righe); i dati da visualizzare li imposterai con la proprieta' RowSource, se vengono da un' area su un foglio di lavoro, oppure li calcolerai tramite macro e li inserirai usando i metodi AddItem / List.

L' elemento sopra a dx puo' essere una Casella di testo (Textbox); quello a sx puo' essere una Casella combinata (Combobox), di cui imposti le possibili scelte tramite la proprieta' RowSource (es "=Foglio1!Z1:Z3" se vuoi avere la scelta tra tre voci presenti in Z1:Z3 di Foglio1), oppure sostituisci la Combobox con tre Pulsanti di opzione (Optionbutton) che avranno la proprieta' Caption settata a Cod, Descr, EAN.

Se hai difficolta' a realizzare quanto sopra, il mio suggerimento e' di valutare la convenienza di usare il filtro automatico, che lascia visibile sul foglio l' elenco che risponde ai criteri di filtro scelto; eventualmente puoi automatizzare il processo usando tre celle di appoggio per impostare porzione di codice, descrizione ed ean e una macro che applica i filtri sulla base del contenuto di queste celle.

Ciao, fai sapere come procede.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 08/09/11 07:32

Ciao, trovo qualche difficoltà…
Facendo la ricerca della parola inserita nella textbox devo poi fare in modo che la listbox mi dia 3 valori ogni riga…
Scrivendo “Listbox.List = VArr “ (dove VArr è il risultato della ricerca) mi visualizza solo i valori di una riga, dovè l’errore?
Poi, partendo dalla cella in selezione, come faccio a fargli inserire i tre valori della riga selezionata dove voglio, ad esempio il valore della prima colonna a destra, quello della seconda colonna nella cella selezionata e quella della 3 colonna a destra di 3 celle??
Esiste qualche esempio pratico da qualche parte?
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 08/09/11 23:07

Scrivendo “Listbox.List = VArr “ (dove VArr è il risultato della ricerca) mi visualizza solo i valori di una riga, dovè l’errore?

Penso che l' errore stia nelle parti che non hai descritto: che tipo di variabile e' VArr, come e' definita, come la popoli.

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

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 09/09/11 00:08

La list Box (che ho chiamato TRIPLOELENCO) ha come proprietà Columncount 3 e Rowsource STANDAR!$A$2:$A$2222;STANDAR!$C$2:$C$2222;STANDAR!$G$2:$H$2222
Per il resto ho utilizzato la base di quello che avevamo già sviluppato in precedenza che ti riporto:

    Option Base 0 'deve essere in testa al modulo
    Dim VArr

    Private Sub TRIPLOELENCO_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'AGGIUNGERE L'ENTER
    ActiveCell.Value = TRIPLOELENCO.Value
    Selection.Offset(0, 6).Select
    Unload Me
    End Sub

    Private Sub ComdEsci_Click()
    Unload Me
    End Sub

    Private Sub TextBox1_Change()
    Pre = UCase(TextBox1.Text)
    HMany = Application.WorksheetFunction.CountIf(Range("DESCRIZIONE"), "*" & Pre & "*")
    ReDim VArr(HMany)

    For i = 1 To 2222 'Cells(Foglio1.Rows.Count, Range("DESCRIZIONE").Column).End(xlUp).Row '3333

    A = UCase(Foglio1.Cells(i, 3).Text)
    If InStr(1, A, Pre) > 0 Then
    VArr(J) = A
    J = J + 1
    'If (J > HMany - 1) Then Exit For
    End If

    Next i

    TRIPLOELENCO.List() = VArr 'ultima istruzione

    End Sub

    Private Sub UserForm_Click()

    End Sub
sono in alto mare vero?
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 09/09/11 00:26

Non so se sei in alto mare o gia' sugli scogli :D :D
Comunque mi pare che VArr sia un array a una dimensione (una lista con 1 colonna per riga), mentre tu vuoi popolare una ListBox con 3 colonne per riga, che ovviamente e' sbagliato...
Che relazione c' e' tra la colonna C di Foglio1 (l' unica con cui carichi VARR) e i dati che vorresti mettere nelle "tre" colonne della ListBox?

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

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 09/09/11 00:30

Lo ammetto... non son capace di saltarcene fuori...
Mi dai un grande mano??
Grazie
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 09/09/11 00:35

Devi rispondere alla domanda sulla col C, altrimenti non so cosa provare a metterti in VArr...

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

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi commerciale » 09/09/11 00:48

Nella combobox ci vanno 3 variabili:
Codice (dati della colonna excel A)
Descrizione (dati della colonna excel C)
Ean (dati della colonna excel G)

In questo caso, non avendo ancora inserito le istruzioni della combobox stavo provando a far funzionare la ricerca per descrizione (come se nella combobox fosse inserita descrizione in pratica).

In pratica facendo una ricerca dei dati per descrizione (colonna C) si dovrebbero sfoltire in automatico anche i dati della colonna A e C...
Spero di essere stato chiaro..
Grazie
commerciale
Utente Junior
 
Post: 92
Iscritto il: 16/07/11 09:14

Re: [EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA

Postdi Anthony47 » 09/09/11 13:33

Con questi elementi del puzzle posso immaginare che dovresti modificare il tuo codice come segue:
Codice: Seleziona tutto
ReDim VArr(HMany,2)     '<<M

For i = 1 To 2222 'Cells(Foglio1.Rows.Count, Range("DESCRIZIONE").Column).End(xlUp).Row '3333

A = UCase(Foglio1.Cells(i, 3).Text)
If InStr(1, A, Pre) > 0 Then
VArr(J,1) = A
VArr(J,0) = UCase(Foglio1.Cells(i, 1).Text)     '<<A
VArr(J,2) = UCase(Foglio1.Cells(i, 7).Text)     '<<A

J = J + 1
'If (J > HMany - 1) Then Exit For
End If

Next i

Le righe modificate sono marcate <<M, quelle aggiunte <<A
Non so valutare l' impatto della Redim di VArr, pubblica nel modulo, sulle rimanenti macro del modulo.

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


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] AIUTO NELLA RICERCA DATI MENU A TENDINA":


Chi c’è in linea

Visitano il forum: Marius44, Ricky0185 e 47 ospiti