MAcro pour Copier&insérer une ligne ailleurs
Résolu/Fermé
Pyvoudelet
Messages postés
166
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
18 mai 2020
-
12 oct. 2010 à 21:36
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 23 nov. 2010 à 08:33
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 23 nov. 2010 à 08:33
A voir également:
- MAcro pour Copier&insérer une ligne ailleurs
- Copier une vidéo youtube - Guide
- Insérer signature word - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer liste déroulante excel - Guide
- Apparaitre hors ligne instagram - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
13 oct. 2010 à 09:03
13 oct. 2010 à 09:03
Bonjour,
Tu créés un bouton dans ta Feuil2, double clic dessus, Visual Basic s'ouvre avec ces deux lignes déjà écrites :
Entre ces deux lignes place le code suivant :
Avant toute chose, sache qu'une modification faite par macro ne peux pas être annulée avec le bouton annulation d'Excel. C'est pourquoi je recommande vivement de toujours travailler sur un classeur "copie" de l'original, et de faire évoluer l'original au fur et à mesure des découvertes sur la copie...
Petite explication nécessaire à l'adaptation du code :
- Remplace Feuil2 et base de données par les noms de tes feuilles (toujours entre guillemets)
- Rows(1) représente la ligne que tu veux couper / coller (à remplacer par Rows(18) si tu veux couper la 18ème ligne de la feuille 2)
- Si tu ne veux pas couper mais copier, remplace cut par copy
N'hésite pas à revenir en cas de besoin...
Tu créés un bouton dans ta Feuil2, double clic dessus, Visual Basic s'ouvre avec ces deux lignes déjà écrites :
Private Sub CommandButton1_Click() End Sub
Entre ces deux lignes place le code suivant :
Sheets("Feuil2").Rows(1).Cut Sheets("base de données").Range("A65536").End(xlUp).Offset(1, 0)
Avant toute chose, sache qu'une modification faite par macro ne peux pas être annulée avec le bouton annulation d'Excel. C'est pourquoi je recommande vivement de toujours travailler sur un classeur "copie" de l'original, et de faire évoluer l'original au fur et à mesure des découvertes sur la copie...
Petite explication nécessaire à l'adaptation du code :
- Remplace Feuil2 et base de données par les noms de tes feuilles (toujours entre guillemets)
- Rows(1) représente la ligne que tu veux couper / coller (à remplacer par Rows(18) si tu veux couper la 18ème ligne de la feuille 2)
- Si tu ne veux pas couper mais copier, remplace cut par copy
N'hésite pas à revenir en cas de besoin...
13 oct. 2010 à 16:02
Sub Bouton2_Clic()
Sheets("COMP.").Range("A4:I4").Copy
Sheets("COMPONENT").Range("A4").End(xlUp).Offset(1, 0)
End Sub
ou COMPONENT= base de donnees et COMP. ma feuille d entree.
MAIs ca me met qu il y a une erreur de syntaxe dans la troisieme ligne. Vois tu l erreur?
autres questions pour info :
je ne vois pas de commande qui indique qu on "colle" est ce normal?
ESt ce possible de dire de coller uniquement les "valeurs" des cellules concernées et non le reste comme la mise en forme. .
merci pour tes conseils.
13 oct. 2010 à 16:11
Range(source).Copy Range(destination)
Avec un espace entre .copy et le range destination...
2- Par conséquent oui c'est normal de ne pas voir apparaitre le "paste". Par défaut, dans cette syntaxe, VBA c'est qu'après l'espace vient le range ou il doit coller...
3- pour faire un copier / collage spécial "valeurs" la syntaxe n'est plus la même :
Ici par contre, tu va à la ligne entre le "copy" du range(source) et le "select" du range(destination)
Ca te va?
13 oct. 2010 à 16:42
Sheets("COMPONENT").Range("A4").End(xlUp).Offset(1, 0).Select
voici pourtant ce que j avais mis :
Sub Bouton2_Clic()
Sheets("COMP.").Range("A4:I4").Select
Selection.Copy
Sheets("COMPONENT").Range("A4").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
MErci pour ta patience!!!
13 oct. 2010 à 16:56
La première cellule vide de la colonne A est :
Range("A65536").End(xlUp).Offset(1, 0)
13 oct. 2010 à 17:14
Sub Bouton2_Clic()
Sheets("COMP.").Range("A4:I4").Select
Selection.Copy
Sheets("COMPONENT").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
au lieu d inserer un ligne à la fin du tableau, est il possible de l'insérer au début, ainsi les nouvelles valeurs seront rajouter dans la plage nommée....