Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione di dati
Ciao prova a scaricare questo file: File Esempio modificato
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Buongiorno,
ho un problema di cui non riesco a venirne a capo e online non trovo nulla a riguardo, quindi confido in voi!
ho due fogli di cui mi interesserebbe "collegare" tra loro due colonne, di queste colonne le celle in esse contenute devono avere lo stesso dato presente in un menu a cascata, e indipendentemente dal foglio in cui lavoro, cambiando il dato, venga riportato sull'altro foglio.
Per intenderci: la cella in K3 ha dato "IN ELABORAZIONE", è nella colonna "STATO", del foglio "ATTIVE"; nel foglio "ARCHIVIO" vorrei ci fosse una colonna paritetica al foglio "ATTIVE", che però per esigenza posiziono nella colonna "S", di cui andando a cambiare un dato mi cambi contemporaneamente anche quella nel foglio "ATTIVE", pariteticamente nel caso volessi cambiare dato nel foglio "ATTIVE" me lo cambi anche nel foglio "ARCHIVIO". I dati di queste celle sono contenuti in menu a tendina (non so se cambi qualcosa per la risoluzione).
Vi ringrazio anticipatamente!
Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione di dati
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.
Risposta accettata dall'autore della domanda
Risposta accettata dall'autore della domanda
Ciao,
nel modulo del foglio "ATTIVE" elimina il codice legato all'evento change.
Nel modulo della cartella di lavoro sostituisci il precedente codice con il seguente:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rngSTATO As Range
Dim r As Range
Dim sColSTATO As String
Dim wsDest As String
Dim sColDest As String
Application.EnableEvents = False
Select Case Sh.Name
Case "ATTIVE"
sColSTATO = "K"
wsDest = "ARCHIVIO"
sColDest = "S"
Case "ARCHIVIO"
sColSTATO = "S"
wsDest = "ATTIVE"
sColDest = "K"
End Select
Set rngSTATO = Intersect(Sh.UsedRange, Sh.Columns(sColSTATO))
For Each r In Target
If r.Row > 2 Then
If Not Intersect(r, rngSTATO) Is Nothing Then
Worksheets(wsDest).Range(sColDest & r.Row) = r.Value
If Sh.Name = "ATTIVE" Then
If UCase(r.Value) = "CONCLUSA" Then
With r
.EntireRow.Hidden = True
.Offset(1).Activate
End With
End If
End If
If Sh.Name = "ARCHIVIO" Then
With Worksheets(wsDest).Rows(r.Row).EntireRow
If UCase(r.Value) <> "CONCLUSA" Then
.Hidden = False
Else
.Hidden = True
End If
End With
End If
End If
End If
Next r
Application.EnableEvents = True
End Sub
In questo modo se il foglio attivo è "ATTIVE" e inserisci "CONCLUSA", oltre a compilare il foglio "ARCHIVIO" con il medesimo valore, la riga viene nascosta.
Se compili il foglio "ARCHIVIO" oltre a venir compilato il foglio "ATTIVE", la riga viene nascosta o visualizzata a seconda che il contenuto sia uguale a "CONCLUSA" o, per scoprire le righe, sia inserito un qualsiasi altro valore diverso da "CONCLUSA".
Ciao
Risposta accettata dall'autore della domanda
Ciao,
sarebbe preferibile avere il file ma proviamo così.
Nel modulo della cartella di lavoro (nel progetto VBA "Questa cartella di lavoro" inserisci questo codice:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rngSTATO As Range
Dim r As Range
Dim sColSTATO As String
Dim wsDest As String
Dim sColDest As String
Application.EnableEvents = False
Select Case Sh.Name
Case "ATTIVE"
sColSTATO = "K"
wsDest = "ARCHIVIO"
sColDest = "S"
Case "ARCHIVIO"
sColSTATO = "S"
wsDest = "ATTIVE"
sColDest = "K"
End Select
Set rngSTATO = Intersect(Sh.UsedRange, Sh.Columns(sColSTATO))
For Each r In Target
If r.Row > 2 Then
If Not Intersect(r, rngSTATO) Is Nothing Then
Worksheets(wsDest).Range(sColDest & r.Row) = r.Value
End If
End If
Next r
Application.EnableEvents = True
End Sub
Qui trovi un file di esempio dove potresti fare qualche test per capire se è quello che potrebbe fare al caso tuo (magari copiando i dati dal tuo file originario)
ciao
sopra riportati avete i due fogli: il primo "ATTIVE" in alto e sotto "ARCHIVIO"
Gentilmente condividi il file, con le informazioni e le sole immagini è difficile darti una esauriente risposta.
Grazie.