Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

fare un elenco di combobox

Ultimo Aggiornamento: 14/04/2020 16:49
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? [SM=x423039]

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

Eh... perdonami :)
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

Combobox
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 [SM=x423051]

[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

Re:
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

Re:
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 [SM=g27828] ) e poi ne parliamo.

Alfredo
Post: 11
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
12/04/2020 15:39

Re:
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

Combobox
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 [SM=x423051]

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

Re: Combobox
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 [SM=x423051]





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

Re:
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

Re:
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

Combobox
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 [SM=x423051]

[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

Re:
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

Re: Re:
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]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:06. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com