Voci menu a discesa...
 
Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

[Risolto] Voci menu a discesa piccole e poco visibili

51 Post
3 Utenti
1 Reactions
2,193 Visualizzazioni
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Salve,

Ho creato un menu a discesa dinamico in un foglio Excel

Poi l'ho collegato tramite convalida dati in un altro foglio. A funzionare funziona ma la voci del menu a discesa sono troppo piccole anche se una volta selezionata la voce desiderata la formattazione si imposta su quella scelta per le celle.

È possibile ingrandire il testo delle voci del menu a tendina?

Grazie

Versione di Excel
Sistema operativo
 
Postato : 24/02/2023 18:54
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

Con una Convalida, che io sappia, NO.

Potresti utilizzare una ComboBox e intervenire su di essa.

 

Ciao,

Mario

 
Postato : 25/02/2023 07:59
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Possono essere aggiunti elementi alla ComboBox dinamicamente, in modo da avere la lista aggiornata delle voci da inserire nelle celle? Insomma come si può fare con la convalida dati. Grazie

 
Postato : 25/02/2023 09:17
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

Certamente. Se fai una ricerca in rete avrai milioni di risposte sia per quanto riguarda l'aggiunta di elementi sia per quanto riguarda l'autocompletamento.

Se hai difficoltà, prova ad allegare il tuo file (senza dati sensibili) e si cercherà di trovare la soluzione.

Ciao,

Mario

 
Postato : 25/02/2023 16:11
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Ciao Mario,

Allora ci sono riuscito a metà. Ho creato il Combobox, ma non so come aggiungere gli elementi dinamicamente. Un altro problema è che non ho capito come copiare le combobox sulle celle sottostanti (per un intervallo di 50 riga diciamo) come invece faccio con i menu a discesa.

Allego il file excel. A sinistra uso il metodo dei menu a discesa a destra le combobox.

Grazie per l'aiuto.

 
Postato : 26/02/2023 11:39
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

lo facciamo con il vba

è assurdo creare 50/60 combo

ho sfruttato la tabella a sinistra per i dati

 

doppio click sulla colonna B

si apre la form

scegli la marca e si scrive sulla cella attiva

chiude il form

 

ho messo CALIBRI 12

ma puoi personalizzarti i colori e il font

se Marius la vuole migliorare mi fa un piacere

io mastico poco il VBA 

sul foglio

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
    Application.EnableEvents = False
UserForm1.Show
  Application.EnableEvents = True
  End If
End Sub

sull form

Private Sub ComboBox1_Click()
ActiveCell = ComboBox1.Text
Unload Me
ActiveCell.Offset(0, 1).Select
End Sub

Private Sub UserForm_Activate()
UserForm1.ComboBox1.RowSource = "Tabellacars"
End Sub

 
Postato : 26/02/2023 14:12
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Ti ringrazio Gianfranco. Funziona, anche se avrei voluto fare a meno di usare il VBA.

Ci sono però un paio di cosette che vorrei rifinire. Lo so che forse in parte avrei dovuto pensarci prima di creare il ComboBox o il menu a discesa.

1) È possible far ordinare la tabella in ordine alfabetico automaticamente? In modo che quando si utilizza un menu a discesa o una combobox la lista risulti già in ordine ogni volta che si aggiunge una voce alla tabella.

2) Il comboxbox si apre troppo lontano dalla cella interessata. È possibile avvicinarlo?

3)Quando si clicca su una cella per aprire il combobox, il cursore si sposta sulla cella immediatamente a destra  una volta chiuso. È possible farlo posizionare altrove, tipo sotto?

 

Grazie

 
Postato : 26/02/2023 14:47
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

se filtri la tabella da a a Z  avrai la combo in ordine alfabetico. mica la cambi ogni trenta secondi vero?

2) Il comboxbox si apre troppo lontano dalla cella interessata. È possibile avvicinarlo?

si poi ci provo a mettere le coordinate Marius sarebbe più veloce

3)Quando si clicca su una cella per aprire il combobox, il cursore si sposta sulla cella immediatamente a destra  una volta chiuso. È possible farlo posizionare altrove, tipo sotto?

certo

Private Sub ComboBox1_Click()
ActiveCell = ComboBox1.Text
Unload Me
ActiveCell.Offset(1, 0).Select
End Sub
 
Postato : 26/02/2023 15:14
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ok

 

li vedi quei +210 e +30

non so nel tuo schermo siano validi

giocaci fin che trovi la posizione che vuoi

Private Sub ComboBox1_Click()
ActiveCell = ComboBox1.Text
Unload Me
ActiveCell.Offset(1, 0).Select
End Sub

Private Sub UserForm_Activate()
UserForm1.ComboBox1.RowSource = "Tabellacars"
End Sub

Private Sub Userform_Initialize()
    With ActiveCell
        Me.Top = .Top + .Height + 210
        Me.Left = .Left + .Width + 30
    End With

End Sub
 
Postato : 26/02/2023 15:33
Marius44
(@marius44)
Post: 0
Moderatore
 

Salve a tutti

Non vi si può lasciare soli un momento che ... create meraviglie!!!

Mi scuso per il ritardo ma sono stato impegnato.

per Gianfranco55

Troppo buon per i complimenti ma li meriti tu per intero. Ottimo lavoro.

Alcuni piccoli miglioramenti:

a) modificare la proprietà Caption della UserForm1 in "Scegli la marca" (oppure la casa)

b) la macro del doppio click va modificata così

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
    Application.EnableEvents = False
UserForm1.Left = Cells(Target.Row, 3).Left + 20  'xxxxxxxxxx aggiunta
UserForm1.Top = Cells(Target.Row, 3).Top + 40    'xxxxxxxxxx aggiunta
    UserForm1.Show
    Application.EnableEvents = True
  End If
End Sub

da notare le righe che ho aggiunto. In questo modo la UserForm si allinea sempre alla cella selezionata

c) se si vuole l'ordinamento alfabetico la macro dell'attivazione della UserForm va cambiata così

Private Sub UserForm_Activate()
Application.ScreenUpdating = False
Application.Goto Reference:="Tabellacars"
ActiveWorkbook.Worksheets("liste").ListObjects("Tabellacars").Sort.SortFields. _
    Clear
ActiveWorkbook.Worksheets("liste").ListObjects("Tabellacars").Sort.SortFields. _
    Add Key:=Range("B2"), SortOn:=xlSortOnValues, Order:=xlAscending, _
    DataOption:=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("liste").ListObjects("Tabellacars").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Range("C1").Select
Sheets("Foglio1").Select
Application.ScreenUpdating = True
UserForm1.ComboBox1.RowSource = "Tabellacars"
End Sub

Fate sapere. Ciao,

Mario

 
Postato : 26/02/2023 17:47
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Fantastico.

Non ci capisco niente di VBA e ne volevo far a meno per evitare rogne, ma vale la pena usarlo se si ha questa possibilità di modificare i comportamenti degli oggetti.

Unica cosa il ComboBox appare ancora troppo lontano. Non ho capito come avvicinarlo alla cella in cui inserire la marca selezionata. Ho provato a spippellare con i valori ma niente.

Allego di nuovo il file con glia ggiornamenti. Grazie di tutto!

 
Postato : 26/02/2023 19:24
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

Hai ragione! Una mia deprecabile dimenticanza.

Cambia la proprietà StartUpPosition della UserForm1 da 1 - CenterOwner a 0 - Manual

 

Ciao,

Mario

 
Postato : 26/02/2023 19:54
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

e leva questa

nel file è ancora presente

Private Sub Userform_Initialize()
    With ActiveCell
        Me.Top = .Top + .Height + 210
        Me.Left = .Left + .Width + 30
    End With
 
Postato : 27/02/2023 09:03
Ronny
(@ronny)
Post: 0
New Member
Avviatore di Topic
 

Un paio di problemi.

Il ComboBox si visualizza ancora distante dalla cella interessata e se si clicca su una più in basso nella colonna quasi scompare. Ho provato dalla cella 39i e addiritura si è bloccato il foglio, forse perché il Combo era scomparso e non era possible selezionare niente o chiuderlo. Non so se il fatto che abbia settato la protezione foglio e bloccato di conseguenza alcune celle abbia qualcosa a che fare con quest'ultimo problema. Ho aggiunto qualcosa poii al progetto.

Allego il file con gli ultimi aggiornamenti, anche quello indicato da gianfranco.

Grazie

 
Postato : 27/02/2023 09:48
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

prova così

ma ti ripeto giocaci fino a che non trovi quello che ti piace

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("B3:B100")) Is Nothing Then
    Application.EnableEvents = False
UserForm1.Left = Cells(Target.Row, 3).Left + 20  'xxxxxxxxxx aggiunta
UserForm1.Top = Cells(Target.Row, 3).Top + 200  'xxxxxxxxxx aggiunta
    UserForm1.Show
    Application.EnableEvents = True
  End If
End Sub
 
Postato : 27/02/2023 10:27
Pagina 1 / 4
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download