Copier coller ensemble cellules paires vers colonne adjacente.

Résolu/Fermé
bo456 Messages postés 1 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 19 mai 2016 - 19 mai 2016 à 16:15
 bo456 - 23 mai 2016 à 15:06
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,


A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
22 mai 2016 à 08:58
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
0
Parfait merci frenchie83, j'ai un peu changé cette partie pour que ça corresponde à ce dont j'ai besoin :
Cells(i - 1, 5) = Cells(i, "D").Bonne journée
0
Utilisateur anonyme
23 mai 2016 à 13:30
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.  😊
 
0