| | Post: 6 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2020 19:11 | |
Ciao a tutti,
vi ringrazio per l'aiuto (altro thread) sulle combobox, ora sono soddisfatta del comportamento, ma ho un nuovo dubbio.
Devo fare un elenco (circa 4000 righe) con la stessa combobox.
Come posso fare?
Ho provato a cercare in Internet, ma non ho trovato nulla, probabilmente sbaglio anche la ricerca.
Grazie mille per qualsiasi suggerimento possiate darmi
Buon pomeriggio
Erica
|
|
| | Post: 4.359 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/04/2020 19:41 | |
Erica 4000 righe sono tante pure per una combobox ed una ricerca sarebbe piuttosto problematica.
In sostanza tu vuoi un sistema che ti consenta di trovare rapidamente (tra le 4000 e più) la voce che ti interessa?
Se la mia interpretazione è corretta allega file di esempio strutturalmente uguale al tuo file originale con poche decine di record. [Modificato da alfrimpa 11/04/2020 19:46]
Alfredo |
| | Post: 6 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2020 20:06 | |
Grazie Alfredo,
perdonami, mi sono spiegata male.
Io ho 3 sheet, nel primo anagrafica prodotti (dove poi consoliderò le quantità in funzione di carico e scarico e sono descritti successivamente - ma non so se riuscirò a farlo).
Nel secondo ho una serie di righe che devono tracciare il "carico" dei singoli prodotti dell'anagrafica.
Nel terzo, ho una serie di righe che devono tracciare lo "Scarico" sempre dei prodotti anagrafica.
"La serie di righe (sia per il secondo che per il terzo sheet) sono righe excel con la combobox... e qui non so ocme fare, come impostare un foglio excel con una lista di 3000 combobox?
Non so se la spiegazione stavolta è riuscita meglio :)
Ti invio il mio draft, incrociando le dita :)
grazie e Buona Pasqua a te e a tutti voi :)
Erica [Modificato da etabetasub 11/04/2020 20:07] |
| | Post: 4.360 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
11/04/2020 20:16 | |
3.000 combobox?
Non vedo nessun file allegato.
Buona Pasqua anche a te. [Modificato da alfrimpa 11/04/2020 20:17]
Alfredo |
| | Post: 7 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2020 20:31 | |
|
| | Post: 3.846 | Registrato il: 03/04/2013
| Utente Master | Excel 2000 - 2013 | | OFFLINE | |
|
12/04/2020 04:20 | |
Buona giornata, Erica; hai valutato la possibilità di gestire il magazzino con UserForm? Vedi immagine in allegato. Questo consentirebbe di avere un solo ComboBox, ovviamente conoscendo in anticipo luoghi di "Provenienza" e "Destinazione" potresti gestire anche questi con un secondo "ComboBox". Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 5.868 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
12/04/2020 08:10 | |
Ciao Erica, ed un Augurio di Buona Pasqua a tutti
non ce bisogno di 3000 combobox, ne basta 1 solo per fare tutto, eccoti il file ho inserito soltanto il codice nel foglio "Scarico" per gli altri fogli devi fare copia/incolla di tutto il codice del foglio.
Logico che negli altri fogli devi inserire il Combobox se manca
basta selezionare la colonna e compare il combobox scegli e devi dare INVIO e verrà inserita la scelta nella cella, si autodimensiona alla cella.
ti ho allargato il discorso anche per le destinazioni, funziona allo stesso modo ho solo cambiato il "Listfillrange" come puoi vedere dal codice.
e ti ho creato l'elenco nel foglio "Prodotti" basta aggiungere, modificare o togliere le destinazioni che si aggiorna anche l'elenco del Combobox.
Ciao By Sal
[Modificato da by sal 12/04/2020 08:11] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 8 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 10:36 | |
Ciao By Sal e tanti cari auguri anche a te!
Grazie infinite, ma perdonami in anticipo, ho bisogno di una mano ulteriore.
Io ho bisogno che il valore prescelto resti valorizzato sulla riga... ma qui non riesco.
Cosa devo fare per far sì che accadda ? :)
grazie infinite e un caro saluto
Erica |
| | Post: 4.361 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 10:59 | |
etabetasub, 12/04/2020 10:36:
Io ho bisogno che il valore prescelto resti valorizzato sulla riga... ma qui non riesco.
Cosa devo fare per far sì che accadda ? :)
Erica
Devi inserire questo codice riesci a farlo da sola?
vb Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
End Sub
Alfredo |
| | Post: 4.362 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 12:12 | |
Osservo però che con 1000 e più prodotti l'uso di una combobox può risultare problematico.
Se interessa potrei proporre un'alternativa.
Alfredo |
| | Post: 9 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 12:38 | |
Grazie mille,
ho inserito il codice, ma, dato che in realtà il mio lavoro sarà un collage di piccole routine scopiazzate qui e la, già qui mi casca l'asino... sulla stessa routine che mi hai indicato avevo la funzione che se clicco TAB si sposta a destra, se clicco enter si sposta riga sotto
Ho provato ad agigustarla, ma non ho l'effetto sperato :)
Con il tab mi crea combo a goni tab.
Hai per caso voglia di darmi qualche suggerimento per cortesia?
grazie
ciao
Erica |
| | Post: 10 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 12:40 | |
alfrimpa, 4/12/2020 12:12 PM:
Osservo però che con 1000 e più prodotti l'uso di una combobox può risultare problematico.
Se interessa potrei proporre un'alternativa.
Grazie Alfrimpa,
come ho scritto nel mio primo post, sono super neofita.
Quindi sto cercando di scopiazzare/riutilizzare cquanto trovo, ma se hai qualche idea sono bel lieta di valutarla (e ti ringrazio molto in anticipo).
Buona Pasqua
ciao
Erica
|
| | Post: 4.363 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 13:19 | |
Più che un suggerimento ti propongo a breve un file (ma dopo il pranzo pasquale ) e poi ne parliamo.
Alfredo |
| | Post: 11 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 15:39 | |
GiuseppeMN, 4/12/2020 4:20 AM:
Buona giornata, Erica; hai valutato la possibilità di gestire il magazzino con UserForm?
Vedi immagine in allegato.
Questo consentirebbe di avere un solo ComboBox, ovviamente conoscendo in anticipo luoghi di "Provenienza" e "Destinazione" potresti gestire anche questi con un secondo "ComboBox".
Giuseppe
Ciao Giuseppe, a dire il vero non l'ho valutato per mia ignoranza, buono spunto anche se non so se risponda al mio caso. Non ho mai specificato che con quei due fogli Carico e Scarico ho poi bisogno di fare calcoli di giancenza e segnalare quando le quantità scendono sotto un certo limite. A mio avviso (non da esperta) la visualizzazione di una pagina excel con celle colorate a raggungimento della soglia è piu immediato, ma lo valuto. Inoltre gli inserimenti /scrichi dovrebbero avvenire velocmente e con il solo uso della tastiera. Comunque ti ringrazio molto per lo spunto, provo a documentarmi un po' di più. Ti saluto e tanti auguri ciao Erica
|
| | Post: 5.869 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
12/04/2020 17:09 | |
Ciao Erica, per avere il risultato nelle celle una volta scelto o scritto, devi dare INVIO per avere il risultato nella cella.
Comunque, meglio se gli elenchi fossero ordinati alfabeticamente.
con il tasto Tab ti sposti in orizzontale tranne se non hai scelto di spostarti in verticale.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 4.364 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 18:05 | |
Ciao Erica
Ti faccio anch'io una mia proposta.
Ti allego il tuo file che funziona così
Se sui fogli Carico/Scarico fai doppio clic su una cella della colonna B ti si apre una maschera per la ricerca prodotto che contiene una casella di testo (Textbox) ed una casella di riepilogo (Listbox).
Inizialmente nella casella di riepilogo vengono visualizzati tutti i prodotti ma se cominci a digitare delle lettere nella casella di testo la casella di riepilogo questa viene "filtrata" e ti mostrerà solo i prodotti che contengono le lettere digitate nella casella di testo.
Una volta individuato il prodotto basta che ci clicchi su e questo verrà copiato nella cella attiva del foglio (quella su cui avevi fatto doppio clic).
Questo il codice.
Per visualizzare la maschera
vb Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
UserForm1.Show
End If
Cancel = True
End Sub
Codice inserito all'interno della maschera per gestire il tutto
vb Option Explicit
Option Compare Text
Private sh As Worksheet
Private Sub ListBox1_Click()
ActiveCell.Value = UserForm1.ListBox1.Value
UserForm1.TextBox1.Value = ""
UserForm1.Hide
End Sub
Private Sub TextBox1_Change()
Call mCaricaListBox("FiltraDati")
End Sub
Private Sub UserForm_Activate()
Dim i As Integer
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then
Me.ListBox1.Selected(i) = False
End If
Next i
Me.TextBox1.SetFocus
End Sub
Private Sub UserForm_Initialize()
Set sh = Worksheets("prodotti")
Call mCaricaListBox("CaricaDati")
End Sub
Private Sub mCaricaListBox(ByVal s As String)
Dim lRiga As Long
Dim lng As Long
With sh
lRiga = .Range("A" & .Rows.Count).End(xlUp).Row
End With
With Me.ListBox1
If s = "CaricaDati" Then
For lng = 2 To lRiga
.AddItem (sh.Range("A" & lng).Value)
Next
ElseIf s = "FiltraDati" Then
.Clear
For lng = 2 To lRiga
If InStr(sh.Range("A" & lng).Value, Me.TextBox1.Text) Then
.AddItem sh.Range("A" & lng).Value
End If
Next
End If
End With
End Sub
Private Sub UserForm_Terminate()
Set sh = Nothing
End Sub
[Modificato da alfrimpa 12/04/2020 18:46]
Alfredo |
| | Post: 12 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 19:33 | |
Grazie Alfrimpa, una domanda: come seleziono la voce dal form senza dover usare il cursore?
sto facendo delle prove e mi pare un ottimo suggerimento :)
Tenterei di procedere con entrambe le ipotesi, procedendo mi sa che ne resterà solo una
grazie infinite
ciao
Erica |
| | Post: 13 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 19:38 | |
by sal, 4/12/2020 5:09 PM:
Ciao Erica, per avere il risultato nelle celle una volta scelto o scritto, devi dare INVIO per avere il risultato nella cella.
Comunque, meglio se gli elenchi fossero ordinati alfabeticamente.
con il tasto Tab ti sposti in orizzontale tranne se non hai scelto di spostarti in verticale.
Ciao By Sal
Grazie By Sal, ho scoperto di aver fatto un pasticcio, hai ragione... senti, avrei ulteriore richiesta, sperando sia cosa semplice: come fccio a far sì che andandoci sopra la cella non cancelli il testo? mi spiego meglio, se sono lala riga 3 e torno sopra la cella si "sbianchetta" :)
Provo ad allegare file
grazie in anticipo e buona serata
Erica
|
| | Post: 4.365 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 19:49 | |
etabetasub, 12/04/2020 19:33:
Grazie Alfrimpa, una domanda: come seleziono la voce dal form senza dover usare il cursore?
Erica
Cosa intendi?
Una volta individuato un prodotto nella listbox devi per forza prendere il mouse per cliccarci su; da tastiera non puoi farlo.
Se vuoi si può modificare il codice in modo che se digiti per intero il nome del prodotto nella textbox e premendo Invio questo venga trasferito sul foglio.
Ma così mi sembrerebbe stupido perchè se ci si ricorda completamente il nome del prodotto tanto vale inserirlo direttamente in cella.
Il meccanismo è invece utile quando non si sa che prodotto inserire e torna utili una ricerca.
E' corretto il ragionamento?
Alfredo |
| | Post: 4.366 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 19:49 | |
etabetasub, 12/04/2020 19:33:
Grazie Alfrimpa, una domanda: come seleziono la voce dal form senza dover usare il cursore?
Erica
Cosa intendi?
Una volta individuato un prodotto nella listbox devi per forza prendere il mouse per cliccarci su; da tastiera non puoi farlo.
Se vuoi si può modificare il codice in modo che se digiti per intero il nome del prodotto nella textbox e premendo Invio questo venga trasferito sul foglio.
Ma così mi sembrerebbe stupido perchè se ci si ricorda completamente il nome del prodotto tanto vale inserirlo direttamente in cella.
Il meccanismo è invece utile quando non si sa che prodotto inserire e torna utile una ricerca.
E' corretto il ragionamento?
[Modificato da alfrimpa 12/04/2020 19:49]
Alfredo |
| | Post: 14 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 20:05 | |
Ciao Alfrimpa, dato che si tratta di lavoro di input "pesante", vorrei poter usare solo la tastiera e non il mouse, per poter essere più veloce.
Ho visto che con la combo questo è possibile, ma non capivo come fare con la user form e dalla tua risposta che forse non è possibile.
E come ipotizzi tu non voglio dover digitare il prodotto, ma cercarlo, selezionarlo e poi passare alla colonna successiva per il completamento della registazione della riga (e con la combo riesco).
Se ti viene qualche altra idea te ne sono grata, perche l'idea del popup mi piaceva.
Grazie
ciao
erica
|
| | Post: 4.367 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 20:23 | |
Prova il file allegato che funziona così.
1) Doppio clic sulla cella in colonna B
2) Si apre la maschera
3) Digita qualche lettera
4) Premi il Tasto Tab e ti sposti nella Listbox
5) Con i tasti FrecciaGiu e FrecciaSu selezioni il prodotto
6) Premi il tasto Invio e il prodotto viene inserito in cella
Il mouse lo devi usare solo per il doppio clic (o non vuoi usarlo neanche per quello?
Alfredo |
| | Post: 4.368 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 20:31 | |
Con quest'altro file fai tutto da tastiera senza usare il mouse.
Per visualizzare la maschera devi solo selezionare (da tastiera) una cella della colonna B
Fai sapere di eventuali problemi [Modificato da alfrimpa 12/04/2020 20:32]
Alfredo |
| | Post: 15 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2020 23:21 | |
Ciao Alf,
sto cercando di procedere in autonomia, ma devo ammettere con gran piacere che mi hai dato un acceleratore notevole, grazie mille.
Senti, esagero :) con due ulteriori domandine:
1 - come faccio a togliere la userform dalla prima riga, cioè l'intestazione della colonna?
2 - è possibile associare il tasto ESC (se cliccato mentre ho la userform aperta) alla chiusura/uscita dalla userform?
grazie
ciao
Erica |
| | Post: 4.369 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
12/04/2020 23:45 | |
Ti ho allegato 3 file a quale fai riferimento?
Alfredo |
| | Post: 4.370 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
13/04/2020 00:57 | |
Ti allego altro file.
1) Non capisco la richiesta; nella Listbox l'elencazione dei prodotti parte da "arance" non viene visualizzata alcuna intestazione. Puoi spiegare meglio?
2) Con il tasto Esc non è possibile; puoi comunque chiudere la userform premendo Alt+e [Modificato da alfrimpa 13/04/2020 00:59]
Alfredo |
| | Post: 5.870 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
13/04/2020 08:32 | |
Ciao secondo me con il listbox e 3000 voci la ricerca diventa difficile, e vero che il textbox filtra me resta sempre un filtro che a volte confonde, nel senso che se scrivi L compare Limoni ma anche Mela o aglio tutte contengono la L.
comunque quando vai sulla cella e compare il combobox, non cancella il sottostante solo se fai una nuova scelta e dando invio allora sostituisce con il nuovo dato.
altrimenti vai su una cella che ha la scelta fatta compare il combobox ti sposti sulla cella di fianco e vedi che il combobox sparisce e la cella rimane con il valore precedente.
Potevo anche non far comparire il Combobox se la cella aveva già un valore, ma se volevi cambiare allora dovevi scriverlo manualmente, non usufruendo della scelta del combobox.
per Alfredo che Saluto, "l'intestazione" che non vuole vedere credo che intenda la cornice della userform tipo il titolo e la x per la chiusura.
Ciao By Sal
[Modificato da by sal 13/04/2020 08:36] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 16 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
13/04/2020 10:19 | |
alfrimpa, 4/13/2020 12:57 AM:
Ti allego altro file.
1) Non capisco la richiesta; nella Listbox l'elencazione dei prodotti parte da "arance" non viene visualizzata alcuna intestazione. Puoi spiegare meglio?
2) Con il tasto Esc non è possibile; puoi comunque chiudere la userform premendo Alt+e
Buongiorno a te Alfrimpa e buona Pasquetta :)
Allora, questa notte ho cominciato ad impostare una versione orientata al modello finale, scopiazzando il tuo codice sui due fogli, te la allego.
L'intestazione a cui mi riferivo era quella della colonna della tabella di partenza (l'header - che ora si chiama PRODOTTI) che si trova sullo sheet di partenza- se ci passi sopra si apre il popup .
Ti allego l'ultima versione, dove però non sono stata ancora capace di inserire il codice che con Alt+E mi chiude la user form... sto cercando dove hai messo il codice :)
ciao e grazie
Erica
[Modificato da etabetasub 13/04/2020 10:21] |
| | Post: 4.371 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
13/04/2020 12:11 | |
etabetasub, 13/04/2020 10:19:
L'intestazione a cui mi riferivo era quella della colonna della tabella di partenza (l'header - che ora si chiama PRODOTTI) che si trova sullo sheet di partenza- se ci passi sopra si apre il popup .
Onestamente non riesco a capire; vuoi, come ha supposto by Sal che saluto, che sia tolta dalla userform la barra del titolo (quella che contiene "Ricerca prodotti"e la "x" di chiusura) o cos'altro?
Se è questo per fare si può fare ma si va sul complicato per quanto riguarda il codice.
Non riesci ad allegare un'immagine per spiegare meglio?
etabetasub, 13/04/2020 10:19:
Ti allego l'ultima versione, dove però non sono stata ancora capace di inserire il codice che con Alt+E mi chiude la user form... sto cercando dove hai messo il codice
Per fare questo devi:
1) Aprire l'editor di VBA
2) Fare in alto a sinistra doppio clic sulla userform1
3) A destra avrai la struttura della userform
4) Allargala e al suo interno inserisci un CommandButton
5) Imposta la proprietà Caption del CommandButton a "esci"
6) Imposta la proprietà Accelerator del CommandButton a "e"
7) Associa al CommandButton il codice che vedi sotto
8) Restringi la userform in modo da coprire il CommandButton
Codice
vb Private Sub CommandButton1_Click()
Unload Me
End Sub
Alfredo |
| | Post: 17 | Registrato il: 02/04/2020
| Età: 55 | Utente Junior | Office 365 | | OFFLINE | |
|
13/04/2020 17:12 | |
Ciao Alfredo e ciao by SAL,
da una nottata di entusiasmo ora sono quasi disperata... devo aver fatto qualcosa di talmente grave che non mi va piu ne la vesione combo ne quella della userform
Comunuqe, grazie per la spiega dell'Alt+E, mi sono ritrovata perfettamente nelle tue precise e dettagliatissime istruzioni, quando riuscirò a far ricomparire la userform avrò modo di testare anche quella, intanto grazie.
Relativamente alla mia domanda iniziale, ti allego uno screenshot, dove ho cerchiato la cella di intestazione dove NON vorrei che partisse la userform.
Grazie, a più tardi... spero di risolvere :)
ciao
Erica [Modificato da etabetasub 13/04/2020 17:16] |
|
|