| | Post: 50 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
21/06/2017 15:53 | |
buongiorno a tutti
ho allegato un file contenente una (doppia) tripla convalida con una macro che al doppio clic nelle celle incluse nel range J20:J42 , inserisce “COPIA” fino qui tutto bene :-)
quello che però vorrei ottenere è che una volta inserita la parola ”COPIA”
e scelto un valore dal menù convalida 1 posizionato sulla stessa riga ( uguale se dal lato A o B ) copi lo stesso valore scelto anche nella convalida 1 posizionata sulla stessa riga al lato opposto ! e così via anche per le convalide 2 e 3 come da esempio riga 20
( nel file definitivo i lati A e B saranno sullo stesso foglio ma distanziati di circa 200 colonne uno dall’altro )
un caloroso grazie viste le temperature :-)
saluti a tutti
Marilena
[Modificato da Mary-92 21/06/2017 15:53] |
|
| | Post: 3.293 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
21/06/2017 16:35 | |
Scusa Marilena riesci a fare un esempio pratico sul file di quello che chiedi?
La copia deve avvenire sempre in seguito al doppio clic? [Modificato da alfrimpa 21/06/2017 16:38]
Alfredo |
| | Post: 50 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
21/06/2017 18:11 | |
Ciao Alfredo grazie per essere intervenuto in mio aiuto :-)
No il doppio clic serve solo nel range J20:J42 per fare apparire la parola “copia”
invece la copia del valore contenuto nella convalida se è possibile dovrebbe attivarsi con un selection change direttamente dalla convalida selezionata
si capisce cosa intendo?
saluti
Marilena |
| | Post: 3.294 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
21/06/2017 18:52 | |
Non capisco cosa vuoi copiare e dove lo vuoi incollare.
Forse è meglio che ti spieghi con un esempio. [Modificato da alfrimpa 21/06/2017 19:23]
Alfredo |
| | Post: 536 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
30/06/2017 00:15 | |
Ciao a tutti,
se ho capito bene, prova con questo codice (sempre nel modulo del foglio1):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LatoA As Range, LatoB As Range, Scarto As Integer
Set LatoA = Range("G20:I42")
Set LatoB = Range("K20:M42")
If Target.Count = 1 Then
Application.EnableEvents = False
If Not Intersect(Target, LatoA) Is Nothing Then
Scarto = 4
Target.Offset(0, Scarto).Value = Target.Value
ElseIf Not Intersect(Target, LatoB) Is Nothing Then
Scarto = -4
Target.Offset(0, Scarto).Value = Target.Value
End If
Application.EnableEvents = True
End If
Set LatoA = Nothing
Set LatoB = Nothing
End Sub
Ti riallego il file...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 51 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
30/06/2017 14:48 | |
Grazie mille cromagno,
la funzione copia va benissimo. Sarebbe però possibile che venga eseguita solo quando é presente la parola copia nella stessa riga della colonna “J” ? In modo che senza funzionino normalmente indipendenti una dall'altra?
saluti
Marilena |
| | Post: 539 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
30/06/2017 15:13 | |
Mary-92, 30/06/2017 14.48:
Grazie mille cromagno,
la funzione copia va benissimo. Sarebbe però possibile che venga eseguita solo quando é presente la parola copia nella stessa riga della colonna “J” ? In modo che senza funzionino normalmente indipendenti una dall'altra?
saluti
Marilena
Ciao,
ti basta aggiungere questa condizione:
And Range("J" & Target.Row).Value = "COPIA"
quindi il codice completo sarebbe:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LatoA As Range, LatoB As Range, Scarto As Integer
Set LatoA = Range("G20:I42")
Set LatoB = Range("K20:M42")
If Target.Count = 1 And Range("J" & Target.Row).Value = "COPIA" Then
Application.EnableEvents = False
If Not Intersect(Target, LatoA) Is Nothing Then
Scarto = 4
Target.Offset(0, Scarto).Value = Target.Value
ElseIf Not Intersect(Target, LatoB) Is Nothing Then
Scarto = -4
Target.Offset(0, Scarto).Value = Target.Value
End If
Application.EnableEvents = True
End If
Set LatoA = Nothing
Set LatoB = Nothing
End Sub
Ciao
Tore
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 52 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
01/07/2017 13:37 | |
GRAZIE TORE ora è perfetta (risolto)
saluti
Marilena |
|
|