Copier une plage et la coller via une macro
Résolu/Fermé
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
-
8 oct. 2014 à 17:27
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 oct. 2014 à 16:43
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 oct. 2014 à 16:43
A voir également:
- Copier une plage et la coller via une macro
- Comment copier une vidéo youtube - Guide
- Copier coller pdf - Guide
- Historique copier-coller android - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Copier-coller - Accueil - Windows
4 réponses
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
8 oct. 2014 à 20:39
8 oct. 2014 à 20:39
Maurice,
Ton code marche bien. Mais j'aimerais avoir le résultat avec ma méthode (cf. sujet).
Serait-il possible d'utiliser ma méthode pour y arriver?
En parallèle, c'est quoi la signification des ,,,,, dans vos macros?
ex.: dans (Nlig = Cells.Find("*", , , , , xlPrevious).Row)
J'aimerais comprendre la signification des ,,,,,,,,
En effet, votre méthode est intéressant et ça pourrait me servir dans l'avenir!
Merci pour votre aide!
Ton code marche bien. Mais j'aimerais avoir le résultat avec ma méthode (cf. sujet).
Serait-il possible d'utiliser ma méthode pour y arriver?
En parallèle, c'est quoi la signification des ,,,,, dans vos macros?
ex.: dans (Nlig = Cells.Find("*", , , , , xlPrevious).Row)
J'aimerais comprendre la signification des ,,,,,,,,
En effet, votre méthode est intéressant et ça pourrait me servir dans l'avenir!
Merci pour votre aide!
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
8 oct. 2014 à 17:36
8 oct. 2014 à 17:36
Bonjour,
Range("B") n'est pas une référence valide.
Range("B2") oui, columns(2) oui.
eric
Range("B") n'est pas une référence valide.
Range("B2") oui, columns(2) oui.
eric
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
8 oct. 2014 à 20:33
8 oct. 2014 à 20:33
Bonjour Ecri,
J'ai corrigé la référence Range("B2").
En lançant la macro, elle ne planque pas mais c'est une seule cellule est est copiée au lieu toute la plage. Je te joins le code de ma macro:
________________________________________________________________________________
Sub test()
Dim ilignecourante, icolonnnecourante, lignefin, colonnefin As Long
ilignecourante = 2
icolonnecourante = 2
lignefin = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
colonnefin = Sheets("Feuil1").Range("B2").End(xlToRight).Column
Do While Sheets("Feuil1").Range("B" & ilignecourante) <> ""
For ilignecourante = 2 To colonnefin
Sheets("Feuil1").Cells(ilignecourante, icolonnecourante).Select
Next
Loop
Selection.Copy Destination:=Sheets("Feuil2").Range("B2")
End Sub
----------------------------------------------------------------------------------------------------------------------------------------------------
Merci pour ton aide!
J'ai corrigé la référence Range("B2").
En lançant la macro, elle ne planque pas mais c'est une seule cellule est est copiée au lieu toute la plage. Je te joins le code de ma macro:
________________________________________________________________________________
Sub test()
Dim ilignecourante, icolonnnecourante, lignefin, colonnefin As Long
ilignecourante = 2
icolonnecourante = 2
lignefin = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
colonnefin = Sheets("Feuil1").Range("B2").End(xlToRight).Column
Do While Sheets("Feuil1").Range("B" & ilignecourante) <> ""
For ilignecourante = 2 To colonnefin
Sheets("Feuil1").Cells(ilignecourante, icolonnecourante).Select
Next
Loop
Selection.Copy Destination:=Sheets("Feuil2").Range("B2")
End Sub
----------------------------------------------------------------------------------------------------------------------------------------------------
Merci pour ton aide!
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
8 oct. 2014 à 22:46
8 oct. 2014 à 22:46
Tu lui reproches quoi à la proposition de maurice ?
Les , sont juste là pour ne pas à avoir à nommer le xième paramètre. Il est à sa place et ceux qui ne sont pas utilisés ne sont pas saisis, c'est tout.
eri
Les , sont juste là pour ne pas à avoir à nommer le xième paramètre. Il est à sa place et ceux qui ne sont pas utilisés ne sont pas saisis, c'est tout.
eri
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
9 oct. 2014 à 11:35
9 oct. 2014 à 11:35
Bonjour Eiiic,
Je ne reproche rien à la méthode de maurice qui me servira sans doute dans l'avenir.
Seulement, je souhaiterais appliquer ma méthode que j'avais commencée.
J'ai essayé de corriger le code mais la macro tourne tourne en boucle et rien n'est copié.
voir: https://www.cjoint.com/c/DJjlM1tdjh0
Pourriez-vous, s'il vous plait, m'aider à résoudre le problème?
Merci d'avance
Je ne reproche rien à la méthode de maurice qui me servira sans doute dans l'avenir.
Seulement, je souhaiterais appliquer ma méthode que j'avais commencée.
J'ai essayé de corriger le code mais la macro tourne tourne en boucle et rien n'est copié.
voir: https://www.cjoint.com/c/DJjlM1tdjh0
Pourriez-vous, s'il vous plait, m'aider à résoudre le problème?
Merci d'avance
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 9/10/2014 à 16:44
Modifié par eriiic le 9/10/2014 à 16:44
Bonjour,
Si, qq chose est copié, mais toujours au même endroit : Sheets("Feuil2").Range("B2")
D'ailleurs on se demande pourquoi tu le fais une 2nde fois en sortie du next.
Pour déboguer faire en pas à pas avec F8.
A chaque do while regarde la valeur de ilignecourante.
En approchant le curseur dessus un popup apparait. Ou bien tu double-cliques dessus et tu fais glisser le nom (ou une expression complète si tu veux) dans la fenêtre espion (menu affichage si tu ne l'as pas).
https://www.commentcamarche.net/contents/1381-debogage
eric
Si, qq chose est copié, mais toujours au même endroit : Sheets("Feuil2").Range("B2")
D'ailleurs on se demande pourquoi tu le fais une 2nde fois en sortie du next.
Pour déboguer faire en pas à pas avec F8.
A chaque do while regarde la valeur de ilignecourante.
En approchant le curseur dessus un popup apparait. Ou bien tu double-cliques dessus et tu fais glisser le nom (ou une expression complète si tu veux) dans la fenêtre espion (menu affichage si tu ne l'as pas).
https://www.commentcamarche.net/contents/1381-debogage
eric
Bonjour
pour copier une Plage
Sub Test()
Feuil1.Select
Nlig = Cells.Find("*", , , , , xlPrevious).Row
Col = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
Range(Cells(2, 2), Cells(Nlig, Col)).Copy
Feuil2.Range("B2").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
A+
Maurice
pour copier une Plage
Sub Test()
Feuil1.Select
Nlig = Cells.Find("*", , , , , xlPrevious).Row
Col = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
Range(Cells(2, 2), Cells(Nlig, Col)).Copy
Feuil2.Range("B2").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
A+
Maurice
Bonsoir
regarde sur le site
https://forums.commentcamarche.net/forum/affich-37622001-vba-detection-de-cellule-vide-ligne-colonnne
A+
Maurice
regarde sur le site
https://forums.commentcamarche.net/forum/affich-37622001-vba-detection-de-cellule-vide-ligne-colonnne
A+
Maurice