Condividi tramite

Creazione di un menù a tendina con selezione multipla

Anonimo
2023-07-28T10:34:07+00:00

Buon giorno,

come faccio a creare un menù a tendina che mi permetta di selezionare più elementi contemporaneamente, e che dopo la selezione mi restituisca in un'unica cella gli elementi selezionati separati da virgole?

Ad esempio, nell'immagine in allegato, selezionando Torino e Milano contemporaneamente, mi piacerebbe che excel potesse restituirmi in un'unica cella la seguente dicitura: Torino, Milano.

Se ci fosse un modo per effettuare quanto appena detto, sarei molto grata a chiunque riesca a fornirmi una spiegazione approfondita.

Microsoft 365 e Office | Excel | Per l'istruzione | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2023-07-28T11:41:19+00:00

    Saluto Norman che mi ha preceduto, un altro modo, visto che l'ho scritta:

    Private Sub Worksheet_Change(ByVal Target As Range) 
    
    Dim strDelimiter As String, rngValidation As Range, strOld As String, strNew As String 
    
        strDelimiter = ", " 
    
        If Target.Count > 1 Then Exit Sub 
    
        On Error Resume Next 
    
        Set rngValidation = Cells.SpecialCells(xlCellTypeAllValidation) 
    
        On Error GoTo Esci 
    
        If rngValidation Is Nothing Then GoTo Esci 
    
        If Not Intersect(Target, rngValidation) Is Nothing Then 
    
            Application.EnableEvents = False 
    
            strNew = Target.Value 
    
            Application.Undo 
    
            strOld = Target.Value 
    
            Target.Value = strNew 
    
            If strOld <> "" Then 
    
                If strNew <> "" Then 
    
                    Target.Value = strOld & strDelimiter & strNew 
    
                End If 
    
            End If 
    
        End If 
    
    Esci: 
    
        Application.EnableEvents = True 
    
    End Sub
    

    Da mettere nel codice del foglio e non nel modulo generale,

    ciao.

    La risposta è stata utile?

    9 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2023-07-28T11:37:58+00:00

    Ciao GB,

    Prova qualcosa del genere:

    • Fai clic dx sulla linguetta del foglio di interesse
    • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
    • Incolla il seguente codice:

     '========>>

    Option Explicit

    '<<--------

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Rng As Range 
    
    Dim sOld As String, sNew As String 
    
    Const sCellaConvalida As String = **"D2"                            '&lt;&lt;=== M**odifica 
    
    Set Rng = Intersect(Me.Range(sCellaConvalida), Target) 
    
    On Error GoTo XIT 
    
    If Not Rng Is Nothing Then 
    
        With Rng 
    
            If .SpecialCells(xlCellTypeAllValidation) Is Nothing Or .Value = vbNullString Then 
    
                GoTo XIT 
    
            End If 
    
            Application.EnableEvents = False 
    
            sNew = .Value 
    
            Application.Undo 
    
            sOld = .Value 
    
            If sOld = "" Then 
    
                .Value = sNew 
    
            Else 
    
                If InStr(1, sOld, sNew) = 0 Then 
    
                    .Value = sOld & "," & sNew 
    
                Else 
    
                    .Value = sOld 
    
                End If 
    
            End If 
    
        End With 
    
    End If 
    

    XIT:

    Application.EnableEvents = True 
    

    End Sub

    '<<========  

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
    • Salva il file con l'estensione xlsm.

    Potresti scaricare il mio file di prova GB20230724.xlsm

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni