Macro pour copier/insérer des lignes
Résolu/Fermé
lienlien34
Messages postés
5
Date d'inscription
jeudi 18 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
-
18 avril 2013 à 15:43
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 avril 2013 à 17:01
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 avril 2013 à 17:01
A voir également:
- Macro pour copier/insérer des lignes
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
- Copier une vidéo youtube - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
Modifié par pijaku le 18/04/2013 à 16:17
Modifié par pijaku le 18/04/2013 à 16:17
Bonjour,
1- r étant une variable, on ne l'entoure pas de guillemets
2- Rows("r:r") n'existe pas, il convient d'utiliser Rows(r)
3- Eviter les .Select et les copy paste.
La syntaxe pour un copié-collé dans une même feuille est :
Range(machin).Copy Range(truc)
Donc :
remplacer :
Cordialement,
Franck P
1- r étant une variable, on ne l'entoure pas de guillemets
2- Rows("r:r") n'existe pas, il convient d'utiliser Rows(r)
3- Eviter les .Select et les copy paste.
La syntaxe pour un copié-collé dans une même feuille est :
Range(machin).Copy Range(truc)
Donc :
remplacer :
Rows("r:r").Select Selection.Copy Rows("r+1:r+1").Select etc...par :
Rows(r).Copy Rows(r+1)
Cordialement,
Franck P
lienlien34
Messages postés
5
Date d'inscription
jeudi 18 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
18 avril 2013 à 16:26
18 avril 2013 à 16:26
Merci pour ta réponse, j'essaye ça :
Sub Duplicate()
Dim r As Integer
Dim c As Integer
Sheets("Feuil1").Select
For r = 17 To ActiveSheet.UsedRange.Rows.Count
If Cells(r, 3) <> "" Then
Rows(r).Copy Rows(r + 1)
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next r
End Sub
Mais le pb est que quand je la lance, rien ne se passe :/
Sub Duplicate()
Dim r As Integer
Dim c As Integer
Sheets("Feuil1").Select
For r = 17 To ActiveSheet.UsedRange.Rows.Count
If Cells(r, 3) <> "" Then
Rows(r).Copy Rows(r + 1)
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
End If
Next r
End Sub
Mais le pb est que quand je la lance, rien ne se passe :/
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
18 avril 2013 à 16:34
18 avril 2013 à 16:34
Je n'ai fait que te donner des pistes.
Tu dis :
Si j'ai quelque chose en colonne C, je copies la ligne et l'insères en dessous. Donc la ligne suivante contient quelque chose en colonne C et donc on réinserre.....
C'est pas bon tout ça.
Si tu veux réaliser ce que tu souhaites, il convient de boucler de la dernière à la première ligne.
Essaye quelque chose comme ceci :
ps : à quoi te sert c As Integer???
Tu dis :
Si j'ai quelque chose en colonne C, je copies la ligne et l'insères en dessous. Donc la ligne suivante contient quelque chose en colonne C et donc on réinserre.....
C'est pas bon tout ça.
Si tu veux réaliser ce que tu souhaites, il convient de boucler de la dernière à la première ligne.
Essaye quelque chose comme ceci :
Sub Duplicate() Dim r As Integer Dim c As Integer Sheets("Feuil1").Select For r = ActiveSheet.UsedRange.Rows.Count To 17 Step -1 If Cells(r, 3) <> "" Then Rows(r).Copy Rows(r + 1).Insert Shift:=xlDown End If Next r End Sub
ps : à quoi te sert c As Integer???
lienlien34
Messages postés
5
Date d'inscription
jeudi 18 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
18 avril 2013 à 16:42
18 avril 2013 à 16:42
j'avais fait une double boucle pour essayer de réaliser la manip, puis je l'avais enlever mais j'ai oublié de virer le c as integer (variable de ma deuxieme boucle)
lienlien34
Messages postés
5
Date d'inscription
jeudi 18 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
18 avril 2013 à 16:56
18 avril 2013 à 16:56
bon je l'ai adapté et ça marche niquel !! merci beaucoup pour ta réactivité !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
18 avril 2013 à 17:01
18 avril 2013 à 17:01
de rien.
A+
A+