Code boucle VBA simple copier coller

Guitl

XLDnaute Nouveau
Bonjour,

j'ai deux feuilles, une intitulée "csv" (récupération de données) et une intitulée "Web" (traitement des données). Ma feuille "csv" contient entre 500 et 2000 lignes. Pour chaque ligne, les données vont de "A1;BF1".

Mon objectif est de copier la ligne A1:BF1 et de faire un collage spécial dans la feuille "web" en cellule G2 puis de faire un "collage transposé" avant d'activer une autre macro.

Cela ne me pose pas de problème particulier sur une macro "manuelle". Mais je souhaiterai créer une "boucle automatique" qui me permettrait d'avoir un tout petit code plutot que ceci, ci dessous...

Sheets("csv").Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Web").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.Run _
"'test macro 360 - traitement et restitution v2.xls'!Coller_dans_Base.Coller_dans_Base"

Sheets("csv").Select
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Web").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.Run _
"'test macro 360 - traitement et restitution v2.xls'!Coller_dans_Base.Coller_dans_Base"


Et ainsi jusqu'à la ligne ... 2000 (je vous rassure je me suis arreter à 75...)

Je bloque donc la dessus, merci par avance de votre aide...

Guitl
 

Guitl

XLDnaute Nouveau
Re : Code boucle VBA simple copier coller

Bonjour,

j'ai en effet déjà essayer par enregistrement marco, ce qui me permet de comprendre le code pour copier/collage/transposé. Ce que je souhaite, c'est qu'une fois qu'il a finit la ligne 2, il passe tout seul à la ligne 3, puis 4 ....

Ci joint mon exemple de fichier.



Merci

Guitl
 

Pièces jointes

  • test macro.zip
    42.1 KB · Affichages: 203
  • test macro.zip
    42.1 KB · Affichages: 210
  • test macro.zip
    42.1 KB · Affichages: 221

pierrejean

XLDnaute Barbatruc
Re : Code boucle VBA simple copier coller

bonjour Guitl

Salut said (a propos moi c'est pierrejean)

A tester:

Code:
For n = 2 To 256
Range(Sheets("csv").Range("A" & n), Sheets("csv").Range("A" & n).End(xlToRight)).Copy
Sheets("Web").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.Run _
"'test macro 360 - traitement et restitution v2.xls'!Coller_dans_Base.Coller_dans_Base"
Next n

nb : j'ai limité a 256 parceque le transpose met en colonne et qu'en principe Excel (du moins avant 2007) n'a que 256 colonnes
Je presume egalement qu'une cellule est selectionnée par la macro de l'autre fichier

En cas de difficulté reviens avec plus d'infos
 

Guitl

XLDnaute Nouveau
Re : Code boucle VBA simple copier coller

Bonjour,

merci pour l'info, car cela fonctionne presque parfaitement. Je vais juste trouver le moyen de lui dire de s'arreter lorsqu'il trouve qu'un ligne est vide. En effet, j'ai tenter de mettre 1500 à la place de 256, avec uniquement 75 lignes de remplies, et du coup il me fait les 1500 lignes...

Mais ce n'est pas grave, il me suffit de changer le paramétrage quand je lance la macro.

Merci pour votre aide, je gagne un temps précieux !

Guitl
 

Guitl

XLDnaute Nouveau
Re : Code boucle VBA simple copier coller

Merci pour votre aide, mon fichier est ainsi bouclé !

Voici le code final

Sub csv_base_auto()

For n = 2 To Range("A65536").End(xlUp).Row
Range(Sheets("csv").Range("A" & n), Sheets("csv").Range("A" & n).End(xlToRight)).Copy
Sheets("Web").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.Run _
"'360 - traitement et restitution v2.xls'!Coller_dans_Base.Coller_dans_Base"
Next n

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi