Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel2003 convalide successive

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

excel2003 convalide successive

Postdi wallace&gromit » 17/11/12 18:06

ciao,
c'è già un topic su questo tema, fa già più o meno quello che serve a me, ma con una conformazione dei dati molto diversa e non sono riuscito ad adattarla, quindi chiedo il vostro aiuto.
Sto preparando un nuovo modello per la contabilità di casa, composta dai singoli movimenti e da un foglio riepilogo.
Nella pagina dei movimenti ho un elenco composto da: no. ID, data, pagamento (mezzo usato), categoria, importo e motivo.
Quello che vorrei è che inserendo la data in una nuova riga la cella accanto diventasse una convalida con le quattro possibilità di scelta di pagamento.
Successivamente, scegliendo categoria vorrei che apparisse una convalida con l'elenco ristretto delle categorie legate al tipo di pagamento. L'elenco e le relative associazoni tra pagamento e categoria sono nella pagina di riepilogo.
Tra l'altro ho anche già dato il nome al range che contiene le categorie definendo il nome = al pagamento possibile.
Allego qui un esempio:
https://rapidshare.com/files/1665743463/Contabilit%C3%A0%20di%20casa%202013%20prova2.xls
Nella riga che ho già compilato c'è un esempio di un pagamento con EC, quindi la convalida per la categoria è già ristretta al range "EC" del foglio di riepilogo.

P.S. prego astenersi da commenti sull'ordinamento del foglio di riepilogo o sul fatto che sarebbe meglio fare il tutto in access (se la moglie lo vuole così....)
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: excel2003 convalide successive

Postdi ricky53 » 17/11/12 19:14

Ciao,
mi astengo da commenti ma una frase me la devi far scrivere:
il "cliente" (moglie in questo caso) va educato e gli ("le" in questo caso) si deve spiegare sempre le potenzialità di altre soluzioni ...

Al momento non riesco a scaricare il tuo file ma penso di aver capito (la spiegazione mi è sembrata chiara), ti faccio solo una domanda:
i livelli di collegamento delle convalide sono solo DUE ?

Puoi fare un esempio di alcune categorie della prima convalida e alcune di quelle della seconda associate alla prima.
Mi aiuterebbe a proporti una soluzione.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi wallace&gromit » 17/11/12 23:52

Sì le convalide sono solo due.
La prima (nella colonna C) ha solo quattro possibilità (diretti/EC/fatture/contanti).
Ho pensato che sarebbe bello attivare la convalida solo al momento in cui si inserisce la data nella nuova riga, ma di per sé si potrebbe anche già prevederla per tutta la colonna C.
La seconda (nella colonna D) è quella che deve variare a seconda della scelta in C.
Le possibilità di scelta vanno ricercate nella colonna B del foglio "riepilogo", oppure facendo riferimento ai nomi che ho creato e che riportano esattamente le quattro diciture di prima.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: excel2003 convalide successive

Postdi ricky53 » 17/11/12 23:59

Ciao,
se operiamo con il codice attivare la convalida in colonna "C" solo dopo aver inserito la data è fattibile ma mi chiedo
Vale la pena di mettere in piedi del codice quando la convalida a due colonne è fattibile con delle formule?

Io per iniziare partirei con le formule e con i nomi che hai definito

Per ogni scelta della colonna "C" assumiamo dei valori di esempio tanto per poter andare avanti poi li sistemerai bene tu.

Sono appena rientrato sono un po' stanco ma vorrei proporti qualcosa ... ci provo e ... in caso domani.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi wallace&gromit » 18/11/12 00:10

con le formule ci ho provato (nella seconda convalida fare riferimento alla cella adiacente che contiene il nome giusto), ma forse mi sfugge qualcosa perchè non riesco a prendere i riferimenti definiti così.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: excel2003 convalide successive

Postdi ricky53 » 18/11/12 00:25

Ciao W&G,
descrivo quanto ho fatto:
nel foglio2 ho inserito i Tipi di pagamento ed i sottotipi (li ho chiamati così, tu poi li cambi)

nel foglio1 in "A2" scegli il tipo di pagamento tra i 4 che hai indicato tu, automaticamente in "B2" la convalida verrà adattata in base alla scelta fatta in "A2" ... al momento cambiando il valore di "A2" rimane impostato il valore precedente in "B2", dovrai essere tu a cambiarlo manualmente, appena posso con del codice lo sistemo.


Le convalide sono così costitute:
in "A2" c'è "=Tipo" dove Tipo è un nome il cui intervallo è "A1:D1 del foglio2 (sono i 4 tipi di pagamento)
in "B2" c'è "=INDIRETTO(A2)" in questo modo punta al valore presente in "A2" che essendo un Nome Elenco, a sua volta punterà ai valori corrispondenti alla sua definizione come nome elenco (è complesso da descrivere ma facile da capire controllando il file allegato).

Il file di esempio è QUI

Prova e ... sono QUI per altri chiarimenti
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi ricky53 » 18/11/12 00:58

Ciao,
ho fatto la piccola modica descritta nel precedente intervento, ossia se viene cambiato il contenuto di "A2", viene automaticamente cancellato il contenuto di "B2".
Per farlo ho scritto tre righe di codice in VBA che vengono automaticamente richiamate se cambia il valore della cella "A2".

il file aggiornato lo trovi QUI


Dopo le prove dovrai inserire nel tuo file i nomi elenco che ho definito io con i tuoi intervalli e inserire le due convalide come ho fatto io nelle due celle "A2" e "B2".

A ritrovarci QUI
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi wallace&gromit » 18/11/12 14:15

ciao ricky,
grazie per le dritte, alla semplice formula INDIRETTO per aggiornare la seconda convalida non ci avevo pensato!
ho ancora due cosette da risolvere:
vorrei che la macro aggiornasse le convalide su tutte le righe della colonna (tu hai usato la A e B, io uso C e D, ma quello lo adatto io), ho provato ad inserire "C:C" al posto di "$C$2" ma non succede niente.
Inoltre, ma questo è solo uno sfizio, mi piacerebbe non dovere già riempire il foglio di convalide ma fare in modo che ogni volta che inserisco un valore nella colonna B si creino le convalide su quella stessa riga nelle colonne C e D.

EDIT: nel frattempo sono riuscito a risolvere il punto 1 scopiazzando i codici che avevo in altri file:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "c" & Target.Row
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
    Target.Offset(0, 1) = ""
End Sub
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: excel2003 convalide successive

Postdi ricky53 » 18/11/12 17:00

Ciao W&G,

prova questo codice che risolve i tuoi due punti
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then
        Application.EnableEvents = False
        Target.Offset(0, 1) = ""
        On Error Resume Next
        If Target <> "" Then
            Application.ScreenUpdating = False
            Range(Target.Address, Target.Offset(0, 1).Address).Copy Destination:=Target.Offset(1, 0)
            Target.Offset(1, 0) = ""
            Application.CutCopyMode = False
            Application.ScreenUpdating = True
        End If
        Application.EnableEvents = True
    End If
End Sub


Sostituisci il codice che hai già con questo che ti ho inviato e ... VAI !!!


Attenzione: il voler avere la "Convalida" impostata automaticamente, sulla cella posta sotto a quella attiva (colonne C:D), comporta la perdita dei dati presenti nella cella di destinazione (colonne "C:D") !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi ricky53 » 18/11/12 17:21

Ciao W&G,

volendo si può utilizzare questa variante che copia i formati e la convalida ma NON altera i dati presenti nelle celle di destinazione
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then
        Application.EnableEvents = False
        Target.Offset(0, 1) = ""
        On Error Resume Next
        If Target <> "" Then
            Application.ScreenUpdating = False
            Range(Target.Address, Target.Offset(0, 1).Address).Copy ' <<===== Modificata
            Target.Offset(1, 0).Select' <<===== Aggiunta
            Selection.PasteSpecial Paste:=xlPasteFormats ' <<===== Modificata
            Selection.PasteSpecial Paste:=xlPasteValidation' <<===== Aggiunta
            Target.Offset(0, 1).Select' <<===== Aggiunta
            Application.CutCopyMode = False
            Application.ScreenUpdating = True
        End If
        Application.EnableEvents = True
    End If
End Sub


Sostituisci il codice che hai già con questo che ti ho inviato e ... sono QUI !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi wallace&gromit » 18/11/12 21:32

grazie mille ricky, c'è ancora qualcosina che non gioca, ma adesso dovrei avere tutti gli elementi in mano per gestire la cosa.
Provo un po' e in questi giorni scriverò la versione definitiva.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: excel2003 convalide successive

Postdi ricky53 » 18/11/12 23:51

Ciao,
cosa
wallace&gromit ha scritto:non gioca
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel2003 convalide successive

Postdi wallace&gromit » 19/11/12 22:17

ritiro tutto, è PERFETTA!
semplicemente mi aspettavo che creasse la nuova convalida scrivendo la data ed invece ne crea una nuova, una riga sotto, ogni volta che seleziono un valore nella prima convalida. Va benissimo così.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: excel2003 convalide successive

Postdi ricky53 » 20/11/12 01:07

Ciao,
BENE.
Mi fa piacere esserti stato utile.

Alla prossima.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "excel2003 convalide successive":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti

cron