Condividi:        

Dimensione 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

Dimensione tendina

Postdi project4 » 14/11/18 12:45

Salve ho un quesito probabilmente banale: voglio creare un elenco a tendina quindi creo la selezione (oltre 50 voci) e poi definisco i dati nella casella in cui voglio la tendina e fin qui nessun tipo di problema. Il problema è la dimensione della mia tendina che risulta piccolissima e mi rende impossibile la selezione, vorrei poter visualizzare più voci (non le solo 8 di default) e soprattutto poter avere un carattere più grande
Si può fare? E come?

Grazie
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Sponsor
 

Re: Dimensione tendina

Postdi project4 » 14/11/18 12:59

a onor del vero ho trovato una soluzione, usando una automazione che preveda lo zoom, che però mi fa abbastanza schifo.
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo LZoom
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.SmallScroll Down:=-15
    Dim xZoom As Long
    xZoom = 60
    If Target.Validation.Type = xlValidateList Then xZoom = 130
LZoom:
    ActiveWindow.Zoom = xZoom
End Sub

Come diceva il nonno: piuttosto che nulla è meglio piuttosto, ma gradirei non lavorare sullo zoom se possibile.
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi project4 » 14/11/18 13:19

Allego anche il file di esempio
https://we.tl/t-Zs7HwoeaLA
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi project4 » 14/11/18 15:42

Ok ci sono riuscito con una combobox con activex.
Però il problema è che io pensavo di usare una funzione di tipo cerca.vert per leggere la cella col menu ad elenco (ora sostituita dalla combobox) per poi ottenere un valore preso da una tabella (nel mio esempio devo andare a cercare il numero badge corrispondente al nome selezionato nel combobox).

Qui casca l'asino: non riesco a capire come fare perchè mi sa che debba obbligatoriamente lavorare di VBA e necessito di un aiuto. Visto che credo sia cmq una cosa semplice, anche un suggerimento sulla strada da percorrere è graditissimo :)
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi project4 » 14/11/18 16:17

Per la serie "fatti una domanda e datti una risposta" (mi sembro un ospite di Gigi Marzullo) posto file aggiornato, con i risultati di dove sono arrivato, partendo da alcune info trovate qua e là:

http://www.filedropper.com/badge
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi Anthony47 » 14/11/18 22:40

Allora…

Per cominciare, lavorando sul foglio Lunedi, eliminiamo tutti i combobox e sostituiamoli con uno solo

Useremo cioe' un (1) solo Combobox, e lo posizioneremo di volta in volta accanto alla cella che dobbiamo riempire.

In pratica devi lasciare solo Combobox1 e cancellare tutti gli altri. Valuta anche la possibilita' di usare il ListBox, che e' piu' simile all'elenco di convalida.

Di ComboBox1 impostane le proprieta' come meglio ti servono (dimensione, colore di sfondo, font e dimensione dei caratteri, NUMERO di righe da visualizzare, …)
Come "linkedcell" inserisci E5, e come "ListFillRange" inserisci <b><i>'N° Badge'!C3:D55</i></b> (o l'area di origine reale)
Sulle celle E5:E24 applica una convalida da elenco usando la stessa origine dati; togli pero' la spunta alla voce "Elenco nella cella"; come messaggio di Errore della Convalida inserisci "Scegli tramite Combobox"

Poi fai tasto dx sul tab del foglio Lunedi, e scegli Visualizza codice
Cancella il codice attuale riferito alla combobox e inserisci
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mytarg = "E5:E23"   '<<< L'area dove caricare i dati tramite ComboBox
If Application.Intersect(Target, Range(mytarg)) Is Nothing Or _
  Target.Count > 1 Then
    ComboBox1.Visible = False    '***
Else
    ComboBox1.Left = Target.Offset(0, 1).Left
    ComboBox1.Top = Target.Top
    ComboBox1.LinkedCell = Target.Address
    ComboBox1.Visible = True
End If
End Sub

La riga marcata <<< va personalizzata come da commento
Se hai optato per il ListBox allora le istruzioni sono le stesse, devi solo nella macro sostituire ListBox1 a ComboBox1.

A questo punto, se selezioni una delle celle impostate come MYTARG il combobox si posizionera' accanto alla cella e ti aiutera' a selezionare la voce che serve.

Fatto questo non ho capito quale e' il prossimo passo che hai in mente

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

Re: Dimensione tendina

Postdi project4 » 15/11/18 09:11

Wow pure oltre le mie aspettative!!

Allora il passo sucessivo è stato prendere a riferimento il nome scelto tramite la combobox e posizionare il suo relativo N° di badge nella cella a DX, fatto con un semplice cerca.vert.
Ho provato entrambe le soluzioni che mi hai suggerito (listbox e combobox) ed ho optato per la combobox in quanto mi piace che si apra la tendina, altrimenti riuscivo o a visualizzare solo un nome oppure ero costretto a creare uno spazio più grande della cella, ed inoltre con la combo basta cliccare sul nome scelto e la tenda si chiude mentre con la listbox per farla "sparire" devo selezionare un'altra cella.

Tornando al lato pratico, ho modificato la posizione della combobox facendola apparire direttamente sulla cella da riempire (E4:E23) e mi azzardo a chiedere ancora se è possibile, per raggiungere la perfezione, queste 2 cose:
1) che la combobox apparisse con già la tendina di selezione aperta o in altrnativa che si aprisse facendo un doppio click (cercare la frecetta a dx è un po' sgradevole)
2) che una volta aperta la tendina se mi posiziono col cursore del mouse dentro alla combobox, lo scroll mi muovesse su e giù l'elenco dati invece del foglio di lavoro.

Allego il file che ho creato con i tuoi consigli con un foglio dove ho utilizzato la combobox e uno con l'uso della listbox.
http://www.filedropper.com/badge_1

E davvero grazie per le tue preziose informazioni!
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi project4 » 15/11/18 15:01

Eccomi ancora qui, sono riuscito ad aprire la tendina appena selezionata con in comando
Codice: Seleziona tutto
ComboBox1.DropDown
ora però non riesco a farla chiudere quando seleziono un'altra cella, ma solo dopo aver selezionato un valore. Oltretutto capita pure se ho già inserito un nome e per uscire devo sfogliare fino a ritrovarlo.
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi Anthony47 » 15/11/18 16:03

Sono le complicazioni del DropDown: l'utente deve completare la scelta prima che si possa procedere.
Insomma io lascerei che il combobox si apra su richiesta dell'utente, come d'altra parte avviene con la "convalida dati".

Cosa fa il mouse dipende da impostazioni di sistema, non so aiutarti.

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

Re: Dimensione tendina

Postdi project4 » 15/11/18 16:47

Ti ringrazio.
Ti chiedo ancora per amor di conoscenza questa una cosa che mi lascia strano: se ho capito la macro che mi hai creato, quando esco dall'area "mytarg" in teoria dovrebba lavorare l'istruzione "ComboBox1.Visible = False" e quindi la combobox dovrebbe sparire...

Non lo fa per altri motivi, oppure io ho frainteso il lavoro della macro?
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45

Re: Dimensione tendina

Postdi Anthony47 » 15/11/18 22:56

Hai capito bene la logica del codice; il fatto e' che il combobox "espanso" non accetta comandi fintanto che non viene chiuso (e non esiste un comando per chiuderlo; anche se ho visto che lavorando sulle Api di sistema in un paio di paginate di codice si potrebbe fare). Cosi' e' e ci dobbiamo convivere.
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Dimensione tendina

Postdi project4 » 16/11/18 11:21

Tnk Again
Win10+excel 2010
project4
Utente Junior
 
Post: 30
Iscritto il: 07/11/18 08:45


Torna a Applicazioni Office Windows


Topic correlati a "Dimensione tendina":


Chi c’è in linea

Visitano il forum: Nessuno e 26 ospiti