maurogsc.eu
mauro gamberini


home ==> Excel: articoli ==> Convalida - Più convalide sulla stessa riga

Convalida - Più convalide sulla stessa riga

Situazione.
Potremmo trovarci nella necessità di avere più convalide sulla stessa riga. Ad esempio, selezionare in colonna A una Regione e avere in Colonna B la possibilità di selezionare le relative provincie. Vediamo come possiamo fare.

Nota.
Il codice dell’esempio, scaricabile a questo link, è commentato e nella cartella in formato .zip è contenuto un file di Excel i formato .xls. Il codice ed il file sono forniti *così come sono* e l’autore declina ogni responsabilità su eventuali problemi causati dal codice o dal file se usati impropriamente. Utilizzate gli esempi forniti o files di test per le vostre prove. Codice e file sono stati testati con(e quindi validi per) Excel 2000/Xp(2002)/2003/2007/2010.

1 - Creiamo gli elenchi.
Nel foglio che ho chiamato Elenchi creiamo i nostri elenchi. In questo caso alcune regioni d'Italia e le relative provincie.

2 - Assegniamo un nome ai nostri elenchi.


    a - Selezioniamo la scheda: Formule e facciamo click sul pulsante: Gestione nomi

    b - Nella finestra che appare(Gestione nomi) facciamo click sulpulsante: Nuovo

    c - Nella nuova finestra(Nuovo nome), inseriamo il nome per il nostro elenco, nel caso specifico: Regioni. I nomi non devono avere spazi o caratteri particolari. Ad esempio Emilia-Romagna o Tentino Alto Adige non sono nomi corretti. Per lo stesso motivo nell'elenco delle Regioni in colonna A, ad esempio, EmiliaRomagna non ha spazi.

    d - Nella parte bassa della stessa finestra(Nuovo nome) facciamo click sul pulsante a dx della TextBox di Riferito a

    e - La finestra adesso si presenta così

    f - Selezioniamo con il mouse l'intervallo di celle a cui vogliamo che il nome faccia riferimento. Nel caso specifico A2: A9.

    g - Controlliamo che il Range sia quello voluto e facciamo ancora click sul pulsantino a dx della TextBox Riferito a

    h - Controlliamo che nome e riferimento siano corretti e facciamo click su Ok

    i - Ci troviamo nuovamente nella finestra Gestione nomi che adesso ha questo aspetto

    l - Ripetiamo da b a l per ciascuno dei nostri elenchi, ricordando quanto detto al punto 2c.

    m - Se vogliamo che cancellando o modificando il valore in colonna A nel foglio Convalida venga automaticamente aggiornata la colonna B delo stesso foglio, inseriamo questo codice nel modulo di codice del foglio Convalida:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    
    If Target.Cells.Count > 1 Then Exit Sub
    
    Set rng = Me.Range("A2:A11")
    
    If Not Intersect(Target, rng) Is Nothing Then
        With Target
            .Offset(0, 1).Value = ""
        End With
    End If
    
    Set rng = Nothing
    
  End Sub

3 - Andiamo a mettere le convalide nel Range A2:A11 e B2:B11.  

     a - Selezioniamo le celle A2:A11 nel foglio: Convalida

    b - Selezioniamo la scheda Dati e facciamo click sul pulsante: Convalida dati

    c - In Consenti selezioniamo: Elenco

    d - In Origine scriviamo: =Regioni  compreso il simbolo di uguale  (ricordo che Regioni è il nome che abbiamo assegnato all'elenco regioni nel foglio Elenchi) 

    e - Ok

    f - Selezioniamo adesso le celle B2:B11 nel foglio Convalida

    g - In Consenti selezioniamo: Elenco 

    h - In Origine scriviamo: =INDIRETTO(A2)   compreso il simbolo di uguale

    i - Ok

Non ci resta che provare....

Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads


Ultimo aggiornamento di questa pagina: 21/03/2011 - mauro gamberini