Condividi:        

popolare 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

popolare menu' a tendina

Postdi rombotuono » 22/04/23 21:47

Buonasera,
avrei bisogno del vostro aiuto.
dovrei popolare un menu' a tendina recuperando i nomi inseriti in colonna a1,a24
i nomi presenti possono essere i seguenti: pippo, pluto; paperino, topolino, minni, ecc fino alla 24 tresima cella.
vorrei copiare soltanto i nomi e non da a1:a24 oppure: a1;a2;a3;a4;ecc
quindi il menu' dovra' risultare
pippo, pluto; paperino, topolino, minni,
purtroppo i nomi da a1 ad a 24 cambiano continuamente e per questo non posso inserirli manualmente.
grazie
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Sponsor
 

Re: popolare menu' a tendina

Postdi Anthony47 » 23/04/23 09:25

E quale versione Office usi? Perche' se hai 365 o 2021 allora le cose sono molto semplificate
Inoltre non e' chiaro se in A1:A24 ci sono celle vuote o doppioni che vuoi escludere

Infine la conferma che per "menu a tendini" tu intenda "menu di convalida dati"

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

Re: popolare menu' a tendina

Postdi rombotuono » 23/04/23 10:58

grazie
office professional plus 2019
in a1:a24 non ci sono doppioni
possono esserci celle vuote
menu di convalida dati" in c1
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 23/04/23 12:42

In una colonna vuota, es in Z1, inserisci la formula
Codice: Seleziona tutto
=SE.ERRORE(INDICE($A$1:$A$30;PICCOLO(SE($A$1:$A$30<>"";RIF.RIGA($A$1:$A$30);"");RIF.RIGA(A1)));"")

Copia in giu' fino a Z30; questo ti creera' l'elenco dei valori presenti in A1:A30

Tramite Menu /Formule /Gestione nomi, crea un nuovo "Nome":
-chiamalo CONVAL
-come "Riferito a" metti la formula
Codice: Seleziona tutto
=SCARTO(Foglio1!$Z$1;0;0;30-CONTA.VUOTE(Foglio1!$Z$1:$Z$30);1)
Usa il tuo NomeFoglio ma rispetta questa sintassi

Ora nella cella da convalidare, come "Origine" metti la formula =CONVAL

Dovrebbe fare quel che chiedi...
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 23/04/23 23:34

ciao
Antony
ho provato le formule:
inserendo questa
=SE.ERRORE(INDICE($A$1:$A$30;PICCOLO(SE($A$1:$A$30<>"";RIF.RIGA($A$1:$A$30);"");RIF.RIGA(A1)));"")
ottengo come risultato soltanto il primo nome presente in a1 e non tutto l'elenco.
con questa
=SCARTO(Foglio1!$Z$1;0;0;30-CONTA.VUOTE(Foglio1!$Z$1:$Z$30);1) ottengo con CONVAL soltanto il primo nome.
per il momento non funziona.
grazie
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 23/04/23 23:58

rombotuono ha scritto:inserendo questa
Codice: Seleziona tutto
=SE.ERRORE(INDICE($A$1:$A$30;PICCOLO(SE($A$1:$A$30<>"";RIF.RIGA($A$1:$A$30);"");RIF.RIGA(A1)));"")

ottengo come risultato soltanto il primo nome presente in a1 e non tutto l'elenco.


Le istruzioni precedenti dicevano:
Anthony ha scritto:In una colonna vuota, es in Z1, inserisci la formula
Codice: Seleziona tutto
=SE.ERRORE(INDICE($A$1:$A$30;PICCOLO(SE($A$1:$A$30<>"";RIF.RIGA($A$1:$A$30);"");RIF.RIGA(A1)));"")

Copia in giu' fino a Z30; questo ti creera' l'elenco dei valori presenti in A1:A30

Hai copiato Z1 verso il basso?
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi Anthony47 » 24/04/23 08:10

MANCA PERO' UNA INFORMAZIONE IMPORTANTE:
-la formula (la prima) va confermata con Contr-Maiusc-Enter, non il solo Enter; poi va copiata verso il basso
:oops:
Credo sia questo l'origine del problema....
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 25/04/23 14:49

ok grazie tutto a posto.
volevo sapere se con questa macro si riesce a fare una ricerca per ottenere il valore o i valori associati al nome.poi copiare sia il nome sia il valore creando una tabella.
Sub ValiList()
Dim mySplit, I As Long
Dim MaxV(1 To 2)
'
Application.EnableEvents = False
'Application.ScreenUpdating = False
mySplit = Split(Range("O57").Validation.Formula1, ";", , vbTextCompare)
For I = 0 To UBound(mySplit)
Range("O57") = mySplit(I)
If Range("O58") > MaxV(1) Then
MaxV(1) = Range("O58")
MaxV(2) = mySplit(I)
End If
Next I
If MaxV(1) > 0 Then
Range("O57") = MaxV(2)
MsgBox ("Selezionato: " & MaxV(2))
Else
Beep
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 25/04/23 19:08

ok grazie tutto a posto.
Bene bene

volevo sapere se con questa macro si riesce a fare una ricerca per ottenere il valore o i valori associati al nome.poi copiare sia il nome sia il valore creando una tabella.
Immagino che hai gia' provato tu e il risultato non e' stato soddisfacente.

Quindi la cosa migliore e' che descrivi come sono i tuoi dati e da questi dati che cosa vorresti ottenere. Se questo non ha nulla a che vedere con l'oggetto originale di questa discussione (creare un menu di convalida dati) allora e' meglio partire da una nuova discussione: non e' che il lavoro sia piu' semplice, ma sara' piu' facile orientarsi per un eventuale visitatore del forum
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 25/04/23 19:40

ciao
anthony
rientra sempre nel menu convalida dati.
i dati sono in cella jt1 è presente il menu creato in precedenza con max 24 nomi.
in kd14 si trova un valore.
vorrei che il codice selezioni il primo nome presente nel menu' generado una tabella con il nome ed il valore presente in kd14.
tutto questo ripetuto con tutti i nomi presento nel menu'.
es. pluto kd14 valore 5
pippo kd 14 valore 6
ecc fino alla fine
ho provato questa macro creata per una ricerca simile, ma funziona soltanto con il primo nome che trova.
chiaramente non genera una tabella.

Sub ValiList()
Dim mySplit, I As Long
Dim MaxV(1 To 2)
'
Application.EnableEvents = False
'Application.ScreenUpdating = False
mySplit = Split(Range("jt1").Validation.Formula1, ";", , vbTextCompare)
For I = 0 To UBound(mySplit)
Range("Jt1") = mySplit(I)
If Range("kd14") > MaxV(1) Then
MaxV(1) = Range("KD14")
MaxV(2) = mySplit(I)
End If
Next I
If MaxV(1) > 0 Then
Range("jt1") = MaxV(2)
' MsgBox ("Selezionato: " & MaxV(2))
Else
Beep
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 25/04/23 22:49

Perdona, non ho capito come sono i dati di partenza e cosa bisognerebbe generare; puoi allegare almeno un immagine (con evidenziati i dati di partenza e i dati da ottenere)?
Per le istruzioni su come allegare una immagine:
viewtopic.php?f=26&t=103893&p=605488#p605488
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 26/04/23 12:36

rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 26/04/23 17:31

Continuo a navigare nella nebbia...

Immagine

Chiedi di creare in colonna JZ lo stesso elenco presente in colonna JQ e mettere in colonna KA dei numeri che non so dove vanno presi o come vanno inventati, né che relazione c'è tra i risultati e i valori in JT1 e KD14

:-? :?: :undecided:
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 26/04/23 17:53

ciao
procedura; 1 cliccare primo nome nome nel menu'
2 viene evidenziato un numero presente in kd14
3 copio nome in jz19
4 copio numero in ka19.
tutto questo per ogni nome selezionato nel menu.creando una tabella come nel file allegato.
tutto questo con una macro.
quella postata purtroppo non funziona.
grazie
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27

Re: popolare menu' a tendina

Postdi Anthony47 » 26/04/23 22:09

Solo dopo la tua insistenza ho realizzato che il contenuto di KD14 cambia in funzione della selezione fatta in JT1...

Prova:
Codice: Seleziona tutto
Sub ForseFo()
Dim LiStar As Range, TaStar As Range
Dim myC As Range, I As Long
'
Set LiStar = Range("JQ1")
Set TaStar = Range("JZ19")
'
For Each myC In Range(LiStar, LiStar.End(xlDown))
    If Len(myC.Value) > 0 Then
        I = I + 1
        Range("JT1") = myC.Value
        TaStar.Cells(I, 1) = myC.Value
        TaStar.Cells(I, 2) = Range("KD14").Value
    End If
Next myC
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: popolare menu' a tendina

Postdi rombotuono » 26/04/23 22:38

spettacolo
grande anthony
mi scuso per l'insistenza.
funziona perfettamente,
ancora grazie
rombotuono
Utente Senior
 
Post: 112
Iscritto il: 09/11/18 17:27


Torna a Applicazioni Office Windows


Topic correlati a "popolare menu' a tendina":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti

cron