Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Macro per copiare righe quando cambia il valore delle celle Opzioni
elcalu
Inviato: Monday, January 27, 2014 2:42:48 PM
Rank: Newbie

Iscritto dal : 1/27/2014
Posts: 7
Buongiorno,
sono nuovo mi chiamo Luca. Ho trovato nel forum questo che mi va bene per la cella N7

Private Sub Worksheet_Change(ByVal Target As Range)
Dim riga As Integer
If Target.column = 14 And IsDate(Target.value) Then
riga = 7
With Sheets("Foglio1")
While .Cells(riga, 1).value <> ""
riga = riga + 1
Wend
End With
Target.EntireRow.Copy Destination:=Sheets("foglio1").Cells(riga, 1)
End If
End Sub

però vorrei ampliare la stessa cosa con altre celle. Se cambia N8 copia riga 8 con destinazione foglio2 e se cambia N9 copia riga 9 con destinazione foglio3. Come posso fare? grazie a chi mi può aiutare.

Luca
Sponsor
Inviato: Monday, January 27, 2014 2:42:48 PM

 
a10n11
Inviato: Monday, January 27, 2014 3:14:48 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova questa:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim riga As Integer
Set Rng = Range("n8:n9")
If Not Intersect(Target, Rng) Is Nothing Then
If IsDate(Target.Value) Then
RRiga = Target.Row
If RRiga = 8 Then
riga = 1
With Sheets("Foglio2")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Target.EntireRow.Copy Destination:=Sheets("foglio2").Cells(riga, 1)
ElseIf RRiga = 9 Then
riga = 1
With Sheets("Foglio3")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Target.EntireRow.Copy Destination:=Sheets("foglio3").Cells(riga, 1)
End If
End If
End If
End Sub
saluti
Giap

elcalu
Inviato: Monday, January 27, 2014 3:37:56 PM
Rank: Newbie

Iscritto dal : 1/27/2014
Posts: 7
ciao Giap,
proprio da una tua risposta avevo preso spunto.
Ok va bene il foglio2 e foglio3 ma se lascio la prima parte con riferimento foglio1 mi da errore. Mi puoi implementare N7-N8-N9 su foglio1-foglio2-foglio3.
E' possibile modificare che al variare non mi copi tutta la riga ma solo dalla collona N alla colonna U per entrambe le celle sui relativi fogli?
Grazie Milleeeeeeeeeeeee!!!!!!

Luca
elcalu
Inviato: Monday, January 27, 2014 4:03:53 PM
Rank: Newbie

Iscritto dal : 1/27/2014
Posts: 7
sono riuscito a far funzionare anche il foglio1. l'unica cosa non so come fare è che non mi copi tutta la riga ma solo dalla colonna N alla colonna U. Grazie
Luca
a10n11
Inviato: Monday, January 27, 2014 4:13:10 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
elcalu ha scritto:
sono riuscito a far funzionare anche il foglio1. l'unica cosa non so come fare è che non mi copi tutta la riga ma solo dalla colonna N alla colonna U. Grazie
Luca

salve
vedi questa con questa modifica

Private Sub Worksheet_Change(ByVal Target As Range)
Dim riga As Integer
Set Rng = Range("n7:n9")
If Not Intersect(Target, Rng) Is Nothing Then
If IsDate(Target.Value) Then
RRiga = Target.Row
Select Case RRiga
Case 7
Set area = Range(Cells(7, 14), Cells(7, 21))
riga = 1
With Sheets("Foglio1")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Sh = "foglio1"
Case 8
Set area = Range(Cells(8, 14), Cells(8, 21))
riga = 1
With Sheets("Foglio2")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Sh = "foglio2"
Case 9
Set area = Range(Cells(9, 14), Cells(9, 21))
riga = 1
With Sheets("Foglio3")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Sh = "foglio3"
End Select
area.Copy Destination:=Sheets(Sh).Cells(riga, 1)
Set area = Nothing
End If
End If
End Sub
saluti
Giap

elcalu
Inviato: Monday, January 27, 2014 4:20:57 PM
Rank: Newbie

Iscritto dal : 1/27/2014
Posts: 7
OTTIMO!!!
sei stato molto gentile, grazie mille.

Luca
a10n11
Inviato: Monday, January 27, 2014 4:22:07 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
elcalu ha scritto:
OTTIMO!!!
sei stato molto gentile, grazie mille.

Luca

grazie a te per il riscontro
saluti
Giap

farema21
Inviato: Wednesday, December 17, 2014 3:29:56 PM
Rank: Newbie

Iscritto dal : 12/17/2014
Posts: 2
Ragazzi scusate so che già avete affrontato il discorso , io ho il seguente codice

Private Sub Worksheet_Change(ByVal Target As Range)
Dim riga As Integer
If Target.Column = 7 And Target.Value = "S.L. Da Pianificare" Then
riga = 2
With Sheets("Foglio2")
While .Cells(riga, 1).Value <> ""
riga = riga + 1
Wend
End With
Target.EntireRow.Copy Destination:=Sheets("foglio2").Cells(riga, 1)
End If
End Sub

l'unica cosa che non riesco a fare è che la macro copi solo le celle che dico io ....esempio la A1; F1; H1 e visto che la colonna sette c'è una convalida dei dati (un elenco ) come posso modificare l'evento , perche al momento lui fa la copia solo quando si preme invio
grazie anticipatamente a tutti
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.