Valori celle sincronizzate
Hai un problema con Excel? 
Valori celle sincronizzate
di Mimmo (utente non iscritto) data: 02/04/2017 10:32:59
Salve a tutti, premetto che ho scoperto da poco il mondo del vba, e mi sto sempre più appassionando,
cerco una soluzione per questo mio problema :
ho un file di excel con 3 fogli, nella cella C10 di tutti e tre viene inserita manualmente una data,
vorrei automatizzare, in modo che dopo l'inserimento del dato, a caso in una delle tre celle, anche le altre due celle, si aggiornino con lo stesso valore .
grazie.
di alfrimpa data: 02/04/2017 12:13:39
Mimmo allega un file di esempio inserendo a mano il risultato desiderato.
Alfredo
di Minno (utente non iscritto) data: 02/04/2017 13:49:00
Intanto grazie per la risposta alfrimpa,
ti allego il file_esempio per meglio spiegare il problema.
Leggendo nel Forum, penso di aver capito che devo sfruttare l'evento Worksheet_Change(ByVal Target As Range) di ogni foglio per lanciare una macro che legga la data scritta manualmente e la inserisca nelle altre due celle data,
ma qui mi perdo ....
di Romano (utente non iscritto) data: 02/04/2017 15:03:33
In effetti puoi fare come dici.
All'interno dell'evento change di ogni foglio puoi inserire del codice che trascrive il valore che hai appena scritto nella cella C10 del foglio x nelle altre due celle C10 dei fogli y e z.
Scritto al volo
Romano
55
' scrivi questo codice nell'evento Chang
' di ogni foglio
Valore = Cells (10,3)
If Valore <>"" Then
Worksheets ("y").Cells (10,3)=Valore
Worksheets ("x").Cells (10,3)=Valore
End if |
di Romano (utente non iscritto) data: 02/04/2017 15:07:04
Scusa
Mi sono reso conto dopo che come suggerito il codice va in loop e non si ferma
Occorre riflettere neglio
di alfrimpa data: 02/04/2017 17:18:16
Mimmo non ho capito quello che vuoi fare.
Se sul foglio1 in C10 inserisci la data cosa deve succedere sugli altri fogli?
Alfredo
di Mimmo (utente non iscritto) data: 02/04/2017 18:55:44
Grazie comunque Romano, o provato il suggerimento e come avevi previsto non funziona, anche se la strada penso sia giusta .
Ciao alfrimpa, provo a spiegare:
in pratica le celle C10 di tutti e tre i fogli devono essere valorizzate con la stessa data, che viene digitata indifferentemente in una delle tre celle C10
Percui se inserisco 02/04/2015 nella cella C10 del foglio1, in automatico deve essere inserita la stessa data nelle celle C10 nel foglio2 e nel foglio3, lo stesso se inserisco la data nella cella C10 del foglio2.
Riassumendo digitando una data in una delle tre celle C10 dei fogli 1-2-3 questa deve essere aggiornata su tutti e tre i fogli.
di alfrimpa data: 02/04/2017 19:40:10
Allora è molto semplice
Per ogni foglio devi scrivere una procedura Worksheet_Cange delimitata alla cella C10 che vada a valorizzare con il target le celle C10 degli altri due fogli.
Dai anche uno sguardo al metodo Intersect.
Fai attenzione a disabilitare/riabilitare gli eventi.
Ti ho dato degli spunti; un piccolo sforzo e vedrai che ce la fai
Alfredo
di romano (utente non iscritto) data: 02/04/2017 20:59:36
Per evitare il loop dobbiamo agire diversamente;
in ogni foglio all'interno dell'evento SelectionChange fai partire la una sub che ho chiamato "sincronizza" ma puoi cambiare;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sincronizza
End Sub
Public Sub sincronizza()
Dim i as Integer
Dim Fgl As String
Dim Valore As Date
Foglio = ActiveSheet.Name
Valore = Worksheets(Fgl).Cells(10, 3)
For i = 1 To 3
If Worksheets("Foglio" & i).Cells(10, 3) <> Valore Then
Worksheets("Foglio" & i).Cells(10, 3) = Valore
End If
Next
End Sub |
di romano (utente non iscritto) data: 02/04/2017 21:03:23
scusa ma oggi non ne azzecco una
sostituisci la riga dove rilevo il foglio attivo con :
fgl=Activesheet.Name
di Mimmo (utente non iscritto) data: 02/04/2017 22:44:31
x Romano : sii questa volta il codice funziona alla grande ...,
ti ringrazio per il tempo che mi hai dedicato. ciao.
x alfrimpa ho apprezzato molto il tuo voler farmi arrivare da solo alla soluzione, infatti non ho abbandonato il tuo suggerimento anzi sto leggendo sul metodo suggerito e proverò ( ottimista ) a ottenere lo stesso automatismo con del codice diverso .
grazie. ciao .
saluti a tutto il forum
Vuoi Approfondire?