Copier coller ensemble cellules paires vers colonne adjacente.
Résolu
bo456
Messages postés
1
Statut
Membre
-
bo456 -
bo456 -
Bonjour à tous,
Je cherche à copier toutes les cellules ayant un numéro de ligne paire d'une colonne pour les coller vers la colonne adjacente en appliquant un retrait de 1 cellule vers le haut via VBA sous excel 2013.
Concrètement mon tableau est le suivant :
... C D E
1 ...x y z
2 .... n
3 ...x y z
4 .... n
5 ...x y z
6 .... n
7 ...x y z
8 .... n
Tous les x et les z ont été fusionnés, et j'aimerai mettre les n dans une nouvelle colonne entre D et E pour arriver à ce résultat :
... C D E F
1 ...x y n z
2 ....
3 ...x y n z
4 ....
5 ...x y n z
6 ....
7 ...x y n z
8 ....
Le code que j'ai trouvé me permet de sélectionner et copier les n mais en collant manuellement tous mes n sont resserrés d'un bloc :
Sub copiercol()
Dim i As Long
Dim rng As Range
'
'
'Mettre les valeurs correctes de iMin et iMax
'
Const iMin As Long = 4
Const iMax As Long = 378
Set rng = Range("D" & iMin & ":" & "D" & iMin)
For i = iMin + 2 To iMax Step 2
Set rng = Union(rng, Range("D" & i & ":" & "D" & i))
selection.Copy
Next i
rng.Select
End Sub
Cordialement,
Je cherche à copier toutes les cellules ayant un numéro de ligne paire d'une colonne pour les coller vers la colonne adjacente en appliquant un retrait de 1 cellule vers le haut via VBA sous excel 2013.
Concrètement mon tableau est le suivant :
... C D E
1 ...x y z
2 .... n
3 ...x y z
4 .... n
5 ...x y z
6 .... n
7 ...x y z
8 .... n
Tous les x et les z ont été fusionnés, et j'aimerai mettre les n dans une nouvelle colonne entre D et E pour arriver à ce résultat :
... C D E F
1 ...x y n z
2 ....
3 ...x y n z
4 ....
5 ...x y n z
6 ....
7 ...x y n z
8 ....
Le code que j'ai trouvé me permet de sélectionner et copier les n mais en collant manuellement tous mes n sont resserrés d'un bloc :
Sub copiercol()
Dim i As Long
Dim rng As Range
'
'
'Mettre les valeurs correctes de iMin et iMax
'
Const iMin As Long = 4
Const iMax As Long = 378
Set rng = Range("D" & iMin & ":" & "D" & iMin)
For i = iMin + 2 To iMax Step 2
Set rng = Union(rng, Range("D" & i & ":" & "D" & i))
selection.Copy
Next i
rng.Select
End Sub
Cordialement,
2 réponses
-
Bonjour
Pas sûr d'avoir tout compris si au départ, "xyz" sont dans des cellules séparées ou dans une seule cellule et qu'en sortie tout doit être fusionné en une seule cellule.
J'ai compris ceci
Sub Copier() Application.ScreenUpdating = False For i = 2 To [D10000].End(xlUp).Row Step 2 If i = "" Then Exit Sub Cells(i - 1, 6) = Cells(i - 1, "C") & Cells(i - 1, "D") & Cells(i, "D") & Cells(i - 1, "E") Next i End Sub
A tester
Cdlt -
Bonjour bo456,
Peut-être que je me trompe, mais j'ai compris l'énoncé de ton problème
d'une façon différente de celle de Frenchie83 (que je salue en passant).
Aussi, je te propose la solution suivante :
Fichier Excel 2003 : Exercice Vers colonne adjacente
Je compte sur toi pour me dire ce que tu en penses.
Cordialement. 😊