OVH Cloud OVH Cloud

macro commande de copie de cellules

6 réponses
Avatar
fox
J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox

6 réponses

Avatar
isabelle
bonjour Fox,

en suposant que le tableau commence à la ligne 2,

Sub Macro1()
For i = 2 To Range("A65536").End(xlUp).Row Step 2
Range("A" & i & ":D" & i).Copy Range("A" & i + 1 & ":D" & i + 1)
Application.CutCopyMode = False
Next
End Sub

isabelle

J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox


Avatar
lSteph
Bonsoir,
j'en déduis qu'il y a actuellement un trou de 4 cellules une ligne sur deux
si c'est ainsi:

Sélectionne les 4 colonnes concernées depuis la ligne 2 de ton tableau
à la ligne ultime sur laquelle il faut recopier.

Edition atteindre cellules
cellules vides
Ok
tapes puis pointes la cellule juste au dessus de la cellule de référence (a priori
la première en haut du tableau)

CTRL+Entrée
Edition Copier/Collage Spécial valeurs.

Cordialement.

lSteph


"fox" a écrit dans le message de news:

J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox


Avatar
Papy Jean
Bonsoir

Voici une solution, parmi de nombreuses autres
en supposant que ligne 2 = copie de ligne 1

Dim Ligne as integer, K as integer

For Ligne= 2 to DernièreLigne step 2
For K= 1 to 4: Cells(Ligne,K)Îlls(Ligne-1,K) : Next K
Next Ligne

Salutations
Papy Jean


"fox" a écrit dans le message de news:

J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox


Avatar
lSteph
Re, ..oui zappé par macro sur sélection de la plage des 4 colonnes du
tableau :

Sub zzz()

Dim c as range
For each c in selection.cells
if isempty(c) then c=c.offset(-1,0)
next
end sub

'lSteph


"fox" a écrit dans le message de news:

J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox


Avatar
marianne puget
(Dans cet exemple de code D1 est la cellule de départ), tu veuxsélectionner
en bas de la colonne et au droit, essayes d'utiliser le code suivant si tu
connais la cellule de départ :
Sub RangeFromStart()
Range("d1", Range("d1").End(xlDown).End(xlToRight)).Select
End Sub
"fox" a écrit dans le message de
news:
J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox


Avatar
fox
Merci pour vos réponses. Cela m'enlève une belle épine du pied.
J'ai choisi la solution d'Isabelle.
Fox


J'ai un fichier très long.
Les 4 premières colonnes d'une ligne sur deux sont à copier sur la ligne
d'en dessous qui est vierge, et ainsi de suite 500 fois.
Je souhaiterai faire une macro, car la manipulation manuelle est très
fastidieuse.
Quelqu'un aurait il une idée?
Merci.

Fox