Macro permanente pour recopier une ligne dans une autre feuille
Résolu/Fermé
Phildemarseille
Messages postés
17
Date d'inscription
jeudi 30 mai 2013
Statut
Membre
Dernière intervention
29 avril 2014
-
30 mai 2013 à 17:16
Phildemarseille Messages postés 17 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 - 3 juin 2013 à 10:22
Phildemarseille Messages postés 17 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 - 3 juin 2013 à 10:22
A voir également:
- Macro permanente pour recopier une ligne dans une autre feuille
- Aller à la ligne dans une cellule excel - Guide
- Apparaitre hors ligne instagram - Guide
- Vente en ligne particulier - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
6 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié par eriiic le 30/05/2013 à 18:40
Modifié par eriiic le 30/05/2013 à 18:40
Bonjour,
Si j'ai bien compris ton soucis, le plus simple serait que tu ajoutes une colonne ou la macro met un x lorsque la ligne a été copiée.
Au passage suivant tu testes cette colonne pour ne copier que les nouvelles lignes.
Tu peux masquer cette colonne.
Exemple sur N :
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Si j'ai bien compris ton soucis, le plus simple serait que tu ajoutes une colonne ou la macro met un x lorsque la ligne a été copiée.
Au passage suivant tu testes cette colonne pour ne copier que les nouvelles lignes.
Tu peux masquer cette colonne.
Exemple sur N :
.... If .Cells(Lig, Col).Value = "640" And .Cells(Lig, "N").Value = "" Then .Cells(Lig, "N") = "x" .Cells(Lig, Col).EntireRow.Copy ....
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Phildemarseille
Messages postés
17
Date d'inscription
jeudi 30 mai 2013
Statut
Membre
Dernière intervention
29 avril 2014
2
31 mai 2013 à 08:58
31 mai 2013 à 08:58
Bonjour Eriiic,
j'ai intégré tes lignes dans la macro mais elle recopie toujours l'intégralité des lignes marquées 640, y compris celles comportant un "x" dans la colonne N (que j'ai rajouté) ??
Je n'ai peut être pas inséré au bon endroit ? :
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("Patrimoine").Activate
Col = "M"
NumLig = 3
With Sheets("Général")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 4 To NbrLig
If .Cells(Lig, Col).Value = "640" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("Patrimoine").Cells(NumLig, 1).Insert Shift:=xlDown
If .Cells(Lig, Col).Value = "640" And .Cells(Lig, "N").Value = "" Then .Cells(Lig, "N") = "x"
End If
Next
End With
End Sub
j'ai intégré tes lignes dans la macro mais elle recopie toujours l'intégralité des lignes marquées 640, y compris celles comportant un "x" dans la colonne N (que j'ai rajouté) ??
Je n'ai peut être pas inséré au bon endroit ? :
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("Patrimoine").Activate
Col = "M"
NumLig = 3
With Sheets("Général")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 4 To NbrLig
If .Cells(Lig, Col).Value = "640" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("Patrimoine").Cells(NumLig, 1).Insert Shift:=xlDown
If .Cells(Lig, Col).Value = "640" And .Cells(Lig, "N").Value = "" Then .Cells(Lig, "N") = "x"
End If
Next
End With
End Sub
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié par eriiic le 31/05/2013 à 09:50
Modifié par eriiic le 31/05/2013 à 09:50
Bonjour,
dés que tu auras mis un petit fichier de tester on pourra regarder.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
dés que tu auras mis un petit fichier de tester on pourra regarder.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié par eriiic le 31/05/2013 à 15:12
Modifié par eriiic le 31/05/2013 à 15:12
Re,
essaie avec :
eric
PS: en début de macro ajoute :
application.screenupdating=false
ça fera plus joli et ça ira plus vite
Remettre avec application.screenupdating=true en fin de macro
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
essaie avec :
For Lig = 4 To NbrLig If .Cells(Lig, Col).Value = "640" And .Cells(Lig, "N") = "" Then .Cells(Lig, Col).EntireRow.Copy Sheets("Patrimoine").Cells(NumLig, 1).Insert Shift:=xlDown .Cells(Lig, "N") = "x" NumLig = NumLig + 1 End If Next Lig
eric
PS: en début de macro ajoute :
application.screenupdating=false
ça fera plus joli et ça ira plus vite
Remettre avec application.screenupdating=true en fin de macro
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Phildemarseille
Messages postés
17
Date d'inscription
jeudi 30 mai 2013
Statut
Membre
Dernière intervention
29 avril 2014
2
31 mai 2013 à 14:55
31 mai 2013 à 14:55
Eriiic bonjour,
https://www.cjoint.com/?3EFo03GcIx1
Voilà le fichier en question.
Merci de ta patience !
Phil
https://www.cjoint.com/?3EFo03GcIx1
Voilà le fichier en question.
Merci de ta patience !
Phil
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phildemarseille
Messages postés
17
Date d'inscription
jeudi 30 mai 2013
Statut
Membre
Dernière intervention
29 avril 2014
2
31 mai 2013 à 16:02
31 mai 2013 à 16:02
Super, ça marche !
Seul hic, ça me colle les nouvelles lignes en haut du tableau, alors qu'elles devraient venir à la suite, les dates de la colonne "A" étant chronologiques ...
As-tu encore un peu de patience à me consacrer ?
Seul hic, ça me colle les nouvelles lignes en haut du tableau, alors qu'elles devraient venir à la suite, les dates de la colonne "A" étant chronologiques ...
As-tu encore un peu de patience à me consacrer ?
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
31 mai 2013 à 17:06
31 mai 2013 à 17:06
Elles sortent tel que tu l'as réalisé ;-)
Termine par tri à ce moment là :
[A2].CurrentRegion.Sort Key1:=Range("A3"), Order1:=xlDescending, Header:=xlYes
(ou xlAscending)
eric
Termine par tri à ce moment là :
[A2].CurrentRegion.Sort Key1:=Range("A3"), Order1:=xlDescending, Header:=xlYes
(ou xlAscending)
eric
Phildemarseille
Messages postés
17
Date d'inscription
jeudi 30 mai 2013
Statut
Membre
Dernière intervention
29 avril 2014
2
3 juin 2013 à 10:22
3 juin 2013 à 10:22
Merci beaucoup Eric !
Tout fonctionne parfaitement.
Il ne me reste plus qu'à créer un bouton à l'usage de mes collègues pour remplacer le "Ctrl + f" mais je ne vais pas t'embêter avec ça, je vais certainement trouver la formule au coin du net ...
Merci encore de ton aide précieuse.
Phil
Tout fonctionne parfaitement.
Il ne me reste plus qu'à créer un bouton à l'usage de mes collègues pour remplacer le "Ctrl + f" mais je ne vais pas t'embêter avec ça, je vais certainement trouver la formule au coin du net ...
Merci encore de ton aide précieuse.
Phil