| | Post: 1 | Registrato il: 16/08/2017
| Città: MILANO | Età: 33 | Utente Junior | Excell 2013 | | OFFLINE | |
|
16/08/2017 11:02 | |
Buongiorno a Tutti
ho realizzato un file excell in cui diverse schede (fogli) contengono elementi a discesa (in formato testo), che vengono presi da una tabella (1°foglio della cartella),
Il problema si verifica quando per vari motivi devo modificare la descrizione di un elemento, che faccio nella tabella.
...
Nelle schede i dati Testo prima colonna , non si aggiornano, nè in automatico e neppure manualmente, unico modo x aggiornare è andare in TUTTE le schede, selezionare nuovamente il campo con elementi a discesa e scegliere di nuovo l'elemento che è stato modificato , i dati collegati (altre colonne della scheda ) cambiano i riferimenti in modo scorretto.
Ho allegato il file "Elenchiprova" di esempio.
Se qualcuno è cosi gentile da darmi una mano .... Grazie |
|
| | Post: 5.230 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
16/08/2017 13:06 | |
Ciao Con la convalida non è possibile farlo, in quanto una volta scritto l'elemento resta fisso.
per fare quello che dici si dovrebbe fare un collegamento alla cella della tabella, in questo modo, una volta che cambi il dato nella tabella cambia in tutti i posti dove ci sta il riferimento, aggiornando tutto.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 450 | Registrato il: 29/03/2012
| Città: VARESE | Età: 68 | Utente Senior | 2010 | | OFFLINE | |
|
16/08/2017 15:16 | |
Ciao Adepto.2017,
guarda se l'allegato va bene.
peppo
Excel 2010 |
| | Post: 5.231 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
16/08/2017 16:29 | |
Ciao Peppo credo che non vada bene, in quanto non vuole aggiornare la convalida con nuove voci, oltre quello credo.
ma vuole che se cambia una descrizione nel foglio Dati, ad esempio "Vernice Bianca" in "Vernice Rossa" tutte le schede dei fogli dove esiste la voce "Vernice Bianca" venga trasformata la Voce in "Vernice Rossa".
come ho detto con la convalida non è possibile, perche ogni tabella non dovrebbe avere più la convalida, ma il riferimento alla cella del foglio "DATI"
Comunque una soluzione esiste, usare il VBA, che ho applicato al file di "Adepto".
Allego il file con la soluzione, in effetti se cambia una descrizione nel foglio "DATI" aggiorna anche tutti gli altri fogli, sostituendo la descrizione con il nuovo nome.
Ho anche fatto in modo che si aggiorni in automatico la convalida all'aggiunta di nuovi elementi.
si deve solo ricordare che i nuovi elementi vanno prima inseriti nel Foglio dati, poi possono essere scritti nei fogli Schede, altrimenti non riporta le varie Cerca.Vert().
un altra cosa importante non cambiare il nome al foglio "DATI", in quanto viene gestito dalle macro.
Ciao By Sal [Modificato da by sal 16/08/2017 16:35] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 1 | Registrato il: 16/08/2017
| Città: MILANO | Età: 33 | Utente Junior | Excell 2013 | | OFFLINE | |
|
16/08/2017 19:23 | |
by sal, 16/08/2017 16.29:
Ciao Peppo credo che non vada bene, in quanto non vuole aggiornare la convalida con nuove voci, oltre quello credo.
ma vuole che se cambia una descrizione nel foglio Dati, ad esempio "Vernice Bianca" in "Vernice Rossa" tutte le schede dei fogli dove esiste la voce "Vernice Bianca" venga trasformata la Voce in "Vernice Rossa".
come ho detto con la convalida non è possibile, perche ogni tabella non dovrebbe avere più la convalida, ma il riferimento alla cella del foglio "DATI"
Comunque una soluzione esiste, usare il VBA, che ho applicato al file di "Adepto".
Allego il file con la soluzione, in effetti se cambia una descrizione nel foglio "DATI" aggiorna anche tutti gli altri fogli, sostituendo la descrizione con il nuovo nome.
Ho anche fatto in modo che si aggiorni in automatico la convalida all'aggiunta di nuovi elementi.
si deve solo ricordare che i nuovi elementi vanno prima inseriti nel Foglio dati, poi possono essere scritti nei fogli Schede, altrimenti non riporta le varie Cerca.Vert().
un altra cosa importante non cambiare il nome al foglio "DATI", in quanto viene gestito dalle macro.
Ciao By Sal
Ciao By Sal, ho scaricato il file che mi hai allegato ed ho aperto con alt+f11 il visual basic, ho provato a copiare ed incollare i due codici sul mio progetto (il foglio è chiamato DATI anche li) tuttavia non funziona, forse sto sbagliando il metodo in cui copio e inserisco il codice. |
| | Post: 5.232 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
16/08/2017 20:40 | |
Ciao Francesco, guarda che le macro sono i 2 moduli distinti, il modulo del foglio "DATI" queste 2 macro, per l'evento "Change" e "Selection_Change", "Selection" serve a prendere il valore precedente la modifica, "Change" invece serve a far partire la macro del Modulo1 per modificare tutte le voci uguali.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Row = 1 Then Exit Sub
Call cambia(Target)
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A:A]) Is Nothing Then
If Target.Row = 1 Then Exit Sub
Dato = Target
End If
End Sub
ed un altra macro nel "Modulo1" questo che serve per riscrivere la nuova voce in tutti i fogli
Option Explicit
Public Dato
Sub cambia(dd)
Dim r, x, y, n, sh
n = Sheets.Count
For x = 1 To n
sh = Sheets(x).Name
If sh = "DATI" Then GoTo 1 Else Sheets(sh).Select
For y = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(y, 1) = Dato Then Cells(y, 1) = dd
Next y
1 Next x
Sheets("DATI").Select
Cells(1, 1).Select
End Sub
nel tuo file oltre il Foglio "DATI" tutti gli altri fogli sono schede?, altrimenti può darsi che ti cancella qualche dato non voluto in un foglio diverso dalle schede.
N.B. le macro servono solo in questi due Moduli i fogli scheda non hanno macro.
Ciao By Sal
[Modificato da by sal 16/08/2017 20:42] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
|
|