Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Copia in tripla convalida a condizione

Ultimo Aggiornamento: 01/07/2017 13:37
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

Re:
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 [SM=x423063]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:36. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com