Risultati da 1 a 23 di 23

Discussione: convalida dati



  1. #1
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    convalida dati

    Buonasera,
    ho il grosso problema: ho creato una convalida dati su oltre 200 celle che si riferisce ad un elenco di oltre 200 nomi, è possibile trovare il modo che inserendo l'iniziale di un nome mi appaiano solo i nomi con quell'iniziale o in alternativa una tenda che contenda più nomi, grazie in anticipo e mi scuso nuovamente per aver postato la domanda nella presentazione.

  2. #2
    L'avatar di Berna11
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Latina
    Età
    62
    Messaggi
    2290
    Versione Office
    Excel 2010
    Likes ricevuti
    910
    Likes dati
    450

    Re: convalida dati

    Ti ho risposto nell'altro post

  3. #3
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    [QUOTE=Berna11;28716]
    Grazie, ma mi serve la convalida dati e non una combobox.

  4. #4
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: convalida dati

    Citazione Originariamente Scritto da Berna11 Visualizza Messaggio
    Ti ho risposto nell'altro post
    SArebbe interessante avere anche un link all "altro post" :172:

    Rieditando: ho trovato la risposta :P :P
    Eccola qui :D :D
    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    Grazie, ma mi serve la convalida dati e non una combobox.
    la combobox sta al regno degli anomali come la convalida dati sta alla specie animale. :244:
    Visto che non mi pare che esista l' oggetto convalida dati (anche se mi hai fatto venir voglia di cercare che non si sa mai) la strada più corta potrebbe anceh esser quella di passare per una combobox ma per quello che credo tu debba fare (credo perchè non vedo un file di tet su cui fare, appunto, qualche test) direi che, senza scomodare l' implementazione in VBA,potresti utilizzare i filtri che sono molto potenti, magari con un foglio d' appoggio da utilizzare come maschera del foglio che contiene i veri dati.

  5. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6797
    Versione Office
    2013
    Likes ricevuti
    719
    Likes dati
    164

    Re: convalida dati

    Ciao Andrea ed un saluto a tutti.

    Quello che chiedi non si può fare con la Convalida Dati e probabilmente neanche con la combobox; quest'ultima non effettua il "filtraggio" dei dati es. se digiti la lettera "n" questa si posizionerà sul primo elemento che inizia per "n" ma non ti visualizzerà tutte e solo le voci che iniziano per "n".

    Bisogna obbligatoriamente, a mio avviso, ricorrere al VBA.

    Se sei interessato ho già fatto una cosa del genere anche se poi bisognerà vedere se e come adattarla al tuo caso.

    Alfredo

  6. #6
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    alfrimpa;28733

    grazie a tutti, non allego il file perché è da 122k, e ho capito che i file devono essere di max 20 k. ho una cartella dove nel primo foglio devo inserire 200 persone che lavorano su più turni, li devo poi inserire quando sono in ferie etc, il foglio ha anche una grafica perché in pdf viene pubblicato sul nostro sito, ho creato un altro foglio "basi elenchi" dove ho diviso i colleghi in gruppi minori a seconda delle mansioni, ha ogni gruppo ho assegnato un nome e questo va bene per un 50% del lavoro, ci sono 200/300 celle che possono essere occupate da tutti e quindi le "tendine" diventano un po scomode, nella cartella ho inserito anche una macro che mi unisce autisti con veicoli ol vba non lo conosco anche se la macro sono riuscito a modificarla . grazie

  7. #7

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6797
    Versione Office
    2013
    Likes ricevuti
    719
    Likes dati
    164

    Re: convalida dati

    Ciao Andrea

    Se non ricordo male il limite dei file è stato portato (da poco) a 400k e poi ci sono gli host esterni.

    Non ho capito se hai risolto o desistito; se alleghi il file si può vedere cosa fare (sempre che sia di tuo interesse).

    Alfredo

  8. #8
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao Andrea ed un saluto a tutti.

    Quello che chiedi non si può fare con la Convalida Dati e probabilmente neanche con la combobox; quest'ultima non effettua il "filtraggio" dei dati es. se digiti la lettera "n" questa si posizionerà sul primo elemento che inizia per "n" ma non ti visualizzerà tutte e solo le voci che iniziano per "n".

    Bisogna obbligatoriamente, a mio avviso, ricorrere al VBA.

    Se sei interessato ho già fatto una cosa del genere anche se poi bisognerà vedere se e come adattarla al tuo caso.

    Alfredo
    Ciao alfrimpa
    credo che qualcosa si possa fare anche senza vba...
    http://www.forumexcel.it/forum/7-dom...ll=1#post10359

    saluti
    GG
    File Allegati File Allegati

  9. I seguenti 2 utenti hanno dato un "Like" a ggratis per questo post:


  10. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4018
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: convalida dati

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    SArebbe interessante avere anche un link all "altro post" :172:
    L'altra discussione dovrebbe essere questa (adesso è chiusa):
    http://www.forumexcel.it/forum/6-dom...menu-a-tendina

    @Andrea66
    evita aprire più discussioni per la stesso problema (anche unendole si creerebbe solo confusione).
    L'altra discussione era già stata spostata nella giusta sezione e stavi già ottenendo delle risposte.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #10
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    ggratis;28746
    Buona sera ggratis, ho visto qualcosa della soluzione da te citata ma ho capito poco, comunque in un altra tua soluzione che non ricordo dove ho letto, mi ero avvicinato alla soluzione solo che con copia incolla ( devo scriverla su molte celle) non mi ha funzionato te la riscrivo =SE(MOD 44!AD197="";SESTO;SCARTO(BASI ELENCHI!$T$2;CONFRONTA(MOD 44!AD197;SINISTRA(SESTO;LUNGHEZZA(MOD 44!AD197));0);;MATR.SOMMA.PRODOTTO((SINISTRA(SESTO;LUNGHEZZA(MOD 44!AD197))=MOD 44!$AD$197)*(SINISTRA(SESTO;LUNGHEZZA(MOD 44!AD197))=MOD 44!$AD$197));1))

    dove SESTO sono le celle del foglio BASE ELENCHI T3:T210, AD197 è una cella del foglio mod 44 , ma la convalida la devo inserire in tante altre caselle .

    ----------Post unito in automatico----------

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    L'altra discussione dovrebbe essere questa (adesso è chiusa):
    http://www.forumexcel.it/forum/6-dom...menu-a-tendina

    @Andrea66
    evita aprire più discussioni per la stesso problema (anche unendole si creerebbe solo confusione).
    L'altra discussione era già stata spostata nella giusta sezione e stavi già ottenendo delle risposte.
    non volevo aprire più discussioni, è la prima volta che scrivo e un altro utente mi ha giustamente indicato che dovevo spostare la discussione.

  12. #11
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: convalida dati

    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    non allego il file perché è da 122k, e ho capito che i file devono essere di max 20 k.
    Bà. questo che allego oltrepassa il limite... ma non mi pare che agl albori del XXI secolo questo possa essere un problema :176:



    filtriAutomatici.xlsm


    Nulla di particolare. semplicemente per lanciare qualche idea.

  13. #12
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    [QUOTE=alfrimpa;28740]



    non ho risolto nulla , purtroppo, il file non lo posso allegare anche per questioni di privacy, la cartella è il servizio giornaliero di un gruppo di Polizia Locale di Roma Capitale al quale io appartengo.

  14. #13
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    [QUOTE=Andrea66;28790]
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio



    non ho risolto nulla , purtroppo, il file non lo posso allegare anche per questioni di privacy, la cartella è il servizio giornaliero di un gruppo di Polizia Locale di Roma Capitale al quale io appartengo.
    ...non potresti riprodurci un file con la stessa struttura dati eliminando tutti i dati sensibili ed aggiungendone altri di fantasia?

  15. #14
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    ggratis;28746
    comunque in un altra tua soluzione che non ricordo dove ho letto, mi ero avvicinato alla soluzione solo che con copia incolla ( devo scriverla su molte celle) non mi ha funzionato
    ho ritrovato la discussione...
    http://www.forumexcel.it/forum/6-dom...ll=1#post25489

  16. #15
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    [QUOTE=ggratis;28811]ho ritrovato la discussione...
    http://www.forumexcel.it/forum/6-domande-su-excel-in-generale/3249-inserimento-nomi-in-menu-a
    Si la discussione è quella ma io non riesco a farla funzionare, tradotta come sopra... allego il file senza nomi se puoi aiutarmi a capire cosa sbaglio
    File Allegati File Allegati

  17. #16
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    [QUOTE=Andrea66;28818]
    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    ho ritrovato la discussione...
    http://www.forumexcel.it/forum/6-domande-su-excel-in-generale/3249-inserimento-nomi-in-menu-a
    Si la discussione è quella ma io non riesco a farla funzionare, tradotta come sopra... allego il file senza nomi se puoi aiutarmi a capire cosa sbaglio
    Buongiorno Andrea66,
    ti ho compilato due celle che ho evidenziato in giallo. Nella parte bassa del foglio mod 44 ho aggiunto delle celle che puoi utilizzare per comporre le formule da assegnare alle convalide.
    Con questo metodo, però, ogni cella necessita della definizione di una variabile nome da assegnare alla convalida; quindi, probabilmente è meglio risolvere con una macro...
    Volendo proseguire per questa strada puoi aiutarti con il comando trova e sostituisci per la creazione delle formule da assegnare ai nomi...

    ...intanto si è fatto un passetto avanti.

    saluti
    gg
    File Allegati File Allegati

  18. #17
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Ciao Andrea66,

    usando il vba, puoi fare così (molto meglio, ti servono solo due nomi di appoggio)
    crei due nomi: convalida e convalidare
    convalida è un nome di appoggio che serve al codice per crearsi la convalida della cella che attiva
    convalidare è l'unione delle celle cui va applicato il criterio di convalida specificato nel codice (che puoi modificare a piacere).

    nel modulo di classe del foglio mod 44:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    If Not (Application.Intersect(Target, ActiveSheet.Range("convalidare")) Is Nothing) Then
        ActiveWorkbook.Names("convalida").Delete
        ActiveWorkbook.Names.Add Name:="convalida", RefersToR1C1:= _
            "=IF('mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & "="""",'BASI ELENCHI'!R3C20:R211C20,OFFSET('BASI ELENCHI'!R2C20,MATCH('mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & ",LEFT('BASI ELENCHI'!R3C20:R211C20,LEN('mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & ")),0),,SUMPRODUCT((LEFT('BASI ELENCHI'!R3C20:R211C20,LEN('mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & "))='mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & ")*(LEFT('BASI ELENCHI'!R3C20:R211C20,LEN('mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & "))='mod 44'!" & Target.Address(ReferenceStyle:=xlR1C1) & ")),1))"
      
        Range(Target.Address).Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=convalida"
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = False
        End With
    End If
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    End Sub
    probabilmente il codice è "sporco" ma funziona ;)
    nelle celle in giallo cui non è presente la convalida, basta fare canc per far scattare l'evento e si crea

    saluti
    gg
    File Allegati File Allegati

  19. I seguenti 2 utenti hanno dato un "Like" a ggratis per questo post:


  20. #18
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    ggratis;28844
    buonasera e mille grazie, credo che la soluzione si avvicini, il vba non lo conosco ma mi pare di capire che devo incollare in vba project, foglio 1 (mod 44), ho notato che anche nel modulo 5 c'è la macro 2 , devo incollare anche quella? Una curiosità i riferimenti:'BASI ELENCHI'!R3C20:R211C20, da cosa nascono?:176:

  21. #19
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    ggratis;28844
    buonasera e mille grazie, credo che la soluzione si avvicini, il vba non lo conosco ma mi pare di capire che devo incollare in vba project, foglio 1 (mod 44), ho notato che anche nel modulo 5 c'è la macro 2 , devo incollare anche quella? Una curiosità i riferimenti:'BASI ELENCHI'!R3C20:R211C20, da cosa nascono?:176:
    Si esatto copia lì il codice e cancella pure il modulo 5.
    Per quanto ai riferimenti per fare prima mi sono aiutato con il registra macro che copiando la formulona ha utilizzato quel tipo di riferimento alle celle, che poi ho mantenuto.
    Domani se ce la faccio provo a dare al codice una sistematina, salvo nel mentre non lo facciano gli altri che saluto ed a spiegarti un po meglio.

    Saluti
    GG

  22. #20
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Ciao Andrea66,
    ti aggiungo qualche altra informazione.
    in merito ai riferimenti in notazione R1C1 leggi questo link
    per quanto al codice te l'ho riscritto in notazione A1
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    If Not (Application.Intersect(Target, ActiveSheet.Range("convalidare")) Is Nothing) Then
        ActiveWorkbook.Names("convalida").Delete
        ActiveWorkbook.Names.Add Name:="convalida", RefersTo:= _
            "=IF('mod 44'!" & Target.Address & "="""",sesto,OFFSET('BASI ELENCHI'!$T$2,MATCH('mod 44'!" & Target.Address & ",LEFT(sesto,LEN('mod 44'!" & Target.Address & ")),0),,SUMPRODUCT((LEFT(sesto,LEN('mod 44'!" & Target.Address & "))='mod 44'!" & Target.Address & ")*(LEFT(sesto,LEN('mod 44'!" & Target.Address & "))='mod 44'!" & Target.Address & ")),1))"
        With Target.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=convalida"
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = False
        End With
    End If
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    End Sub
    Quello che fa questo codice è semplice:
    - Target è il range della cella modificata
    - quando viene modificata una cella della selezione "convalidare" (che è la seconda variabile nome che hai definito)
    - scatta l'evento change che fa eseguire il codice inserito nel modulo di classe del foglio
    - il codice cancella il nome "convalida" e lo ricrea con la formulona scritta da pkrome59 (e precisata da me nel post che hai indicato)
    - quindi, crea una convalida nella cella target assegnando la formulona memorizzata nel nome convalida.

    Il codice può essere generalizzato ma se quanto scritto è sufficiente per risolvere il tuo problema ...lascerei perdere. Diversamente forse è il caso di aprire una nuova discussione nella sezione vba e macro

    fai sapere

    saluti
    gg
    File Allegati File Allegati

  23. I seguenti utenti hanno dato un "Like"


  24. #21
    L'avatar di Andrea66
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Roma
    Età
    51
    Messaggi
    10
    Versione Office
    2007
    Likes ricevuti
    0
    Likes dati
    3

    Re: convalida dati

    ggratis

    Mille grazie, il link è molto istruttivo, tutto funziona in maniera perfetta, aggiungere convalide è facilissimo.
    Ora posso chiudere la discussione, se ci riesco.
    Buona domenica

  25. #22
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati

    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    ggratis

    Mille grazie, il link è molto istruttivo, tutto funziona in maniera perfetta, aggiungere convalide è facilissimo.
    Ora posso chiudere la discussione, se ci riesco.
    Buona domenica
    Grazie per il riscontro.
    Buona domenica anche a te.

    Saluti
    GG

    Ps: per chiudere la discussione in alto a dx c'è un menù a tendina.

  26. #23
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: convalida dati - generalizzazione

    Citazione Originariamente Scritto da Andrea66 Visualizza Messaggio
    ggratis

    Mille grazie, il link è molto istruttivo, tutto funziona in maniera perfetta, aggiungere convalide è facilissimo.
    Ora posso chiudere la discussione, se ci riesco.
    Buona domenica
    Ciao Andrea66 una piccola precisazione,
    nel caso in cui si cerchi un nome non presente in elenco, il codice va in errore...
    per risolvere questa cosa basta inserire l'istruzione evidenzia in blu On Error Resume Next quella in verde Target.Select serve soltanto per fare in modo che dando invio rimanga selezionata la cella in cui si sta inserendo il nome.

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    On Error Resume Next
    If Not (Application.Intersect(Target, ActiveSheet.Range("convalidare")) Is Nothing) Then
        ActiveWorkbook.Names("convalida").Delete
        ActiveWorkbook.Names.Add Name:="convalida", RefersTo:= _
            "=IF('mod 44'!" & Target.Address & "="""",sesto,OFFSET('BASI ELENCHI'!$T$2,MATCH('mod 44'!" & Target.Address & ",LEFT(sesto,LEN('mod 44'!" & Target.Address & ")),0),,SUMPRODUCT((LEFT(sesto,LEN('mod 44'!" & Target.Address & "))='mod 44'!" & Target.Address & ")*(LEFT(sesto,LEN('mod 44'!" & Target.Address & "))='mod 44'!" & Target.Address & ")),1))"
        With Target.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=convalida"
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = False
        End With
    End If
        Target.Select
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    End Sub
    ho provato a generalizzare il metodo:
    in un modulo standard:

    Codice: 
    Sub convalidate(convalidare As String, rngElenco As String, Target As Range)
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Dim wksElenchi As Worksheet
    Dim etichetta As String, Trgt As String, wksAttivo As String
    Set wksElenchi = Worksheets("BASI ELENCHI")
    'rngElenco = "sesto"
    etichetta = "'" & wksElenchi.Name & "'!" & wksElenchi.Range(rngElenco).Offset(-1, 0).Resize(1, 1).Address
    Trgt = Target.Address
    wksAttivo = Chr(39) & ActiveSheet.Name & Chr(39) & "!"
    On Error Resume Next
    If Not (Application.Intersect(Target, ActiveSheet.Range(convalidare)) Is Nothing) Then
        ActiveWorkbook.Names("convalida").Delete
        ActiveWorkbook.Names.Add Name:="convalida", RefersTo:= _
            "=IF(" & wksAttivo & Trgt & "=""""," & rngElenco & ",OFFSET(" & etichetta & ",MATCH(" & wksAttivo & Trgt & ",LEFT(" & rngElenco & ",LEN(" & wksAttivo & Trgt & ")),0),,SUMPRODUCT((LEFT(" & rngElenco & ",LEN(" & wksAttivo & Trgt & "))=" & wksAttivo & Trgt & ")*(LEFT(" & rngElenco & ",LEN(" & wksAttivo & Trgt & "))=" & wksAttivo & Trgt & ")),1))"
        With Target.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=convalida"
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = False
        End With
    End If
    Target.Select
    Set wksElenchi = Nothing
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    End Sub
    nel modulo di classe del foglio:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not (Application.Intersect(Target, ActiveSheet.Range("convalidate_sesto")) Is Nothing) Then
    Call convalidate("convalidate_sesto", "sesto", Target)
    End If
    If Not (Application.Intersect(Target, ActiveSheet.Range("convalidate_pol.s.e.")) Is Nothing) Then
    Call convalidate("convalidate_pol.s.e.", "pol.s.e.", Target)
    End If
    End Sub

    dove sono state definite le variabili nome "convalida" e nell'esempio anche le variabili nome "convalidate_sesto" e "convalidate_pol.s.e." che rappresentano l'unione delle celle da convalidare con "sesto" e "pol.s.e." che chiaramente vanno sostituiti con quelli effettivi: conviene prima creare le variabili nome e poi inserire le istruzioni nel modulo di classe del foglio; e procedere al contrario in caso si voglia eliminare la convalida.

    saluti
    gg
    File Allegati File Allegati

  27. I seguenti utenti hanno dato un "Like"


Discussioni Simili

  1. Convalida Dati
    Di RAFVEC nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 12/12/16, 15:21
  2. [Risolto] Convalida Dati
    Di Domdef nel forum Domande su Excel in generale
    Risposte: 10
    Ultimo Messaggio: 29/11/16, 12:43
  3. convalida dati
    Di Emilio62 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 25/11/16, 19:33
  4. convalida dati
    Di Zampa nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 29/01/16, 12:50
  5. Convalida dati da elenco per dati univoci dinamica
    Di tsunami1978 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 27/08/15, 00:52

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •