Macro copie et colle
Fermé
katial
Messages postés
1
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
10 avril 2008
-
10 avril 2008 à 10:53
pascalouou Messages postés 46 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2008 - 16 avril 2008 à 21:55
pascalouou Messages postés 46 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2008 - 16 avril 2008 à 21:55
A voir également:
- Macro copie et colle
- Copie cachée - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Copie écran samsung - Guide
- Super copie - Télécharger - Gestion de fichiers
1 réponse
pascalouou
Messages postés
46
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
29 novembre 2008
172
16 avril 2008 à 21:55
16 avril 2008 à 21:55
Bonjour
Vous pouvez utiliser la propriété Cells(x,y) : x est la ligne, y la colonne d'une cellule
D'autre part, une fois votre macro créée, vous pouvez la compacter pour un même résultat.
Ainsi, sans la changer, votre macro peut s'écrire
Range("b2").Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Range("b3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Pour faire bien propre, on rajoute le nom du fichier là où il n'est pas, votre macro devient
Windows("transfo sous chargés.xls").Range("b2").Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Range("b3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Et ensuite on utilise la propriété Cells à la place de Range : votre macro devient
x=2
Windows("transfo sous chargés.xls").Cells(x,2).Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Cells(x,3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Après, on fait varier x pour balayer toutes les valeurs à copier b2, c2 etc...
il faut également définir x comme un entier et le faire varier de 2 à .... pour aller de la colonne b à ....
pour faire large, on ira de la colonne b à la colonne 100 : exemple:
Dim x As Integer
For x=2 to 100
Windows("transfo sous chargés.xls").Cells(x,2).Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Cells(x,3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next x
et voili voilou ...
remarque: copier une plage de cellules (J20 à J60) et la coller successivement en b3, c3, etc... est bizarre: vous copiez 40 cellules d'abord de b3 à ...40 colonnes plus loin , puis de C3 à ... 40 colonnes plus loin (ce qui écrase 39 valeurs de votre copie précédente) ... à vérifier !
Cordialement,
Pascal
Vous pouvez utiliser la propriété Cells(x,y) : x est la ligne, y la colonne d'une cellule
D'autre part, une fois votre macro créée, vous pouvez la compacter pour un même résultat.
Ainsi, sans la changer, votre macro peut s'écrire
Range("b2").Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Range("b3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Pour faire bien propre, on rajoute le nom du fichier là où il n'est pas, votre macro devient
Windows("transfo sous chargés.xls").Range("b2").Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Range("b3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Et ensuite on utilise la propriété Cells à la place de Range : votre macro devient
x=2
Windows("transfo sous chargés.xls").Cells(x,2).Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Cells(x,3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Après, on fait varier x pour balayer toutes les valeurs à copier b2, c2 etc...
il faut également définir x comme un entier et le faire varier de 2 à .... pour aller de la colonne b à ....
pour faire large, on ira de la colonne b à la colonne 100 : exemple:
Dim x As Integer
For x=2 to 100
Windows("transfo sous chargés.xls").Cells(x,2).Copy
Windows("Etude mutation.xls").Range("$P$10").Paste
Windows("Etude mutation.xls").Range("$J$20:$J$60").Copy
Windows("transfo sous chargés.xls").Cells(x,3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next x
et voili voilou ...
remarque: copier une plage de cellules (J20 à J60) et la coller successivement en b3, c3, etc... est bizarre: vous copiez 40 cellules d'abord de b3 à ...40 colonnes plus loin , puis de C3 à ... 40 colonnes plus loin (ce qui écrase 39 valeurs de votre copie précédente) ... à vérifier !
Cordialement,
Pascal