Macro fusion de plages de cellules

Le
Domi
Bonjour à tous,
Je voudrais via une macro réaliser la chose suivante
A partir de la ligne 41 et jusqu'à la dernière ligne contenant une valeur
dans la colonne A (Max 150)

Pour chaque ligne, si la cellule de la colonne A contient une valeur
Je fusionne la cellule de la colonne A avec la cellule de la colonne B
Je fusionne la cellule de la colonne C avec les cellules des colonnes D, E
et F
Je fusionne la cellule de la colonne G avec la cellule de la colonne H
Je fusionne la cellule de la colonne J avec la cellule de la colonne K

En gros
For Each Cell In Range("A41", Range("A150").End(xlUp)) 'jusque là je pense
que j'ai bon

A partir de là ça marche sans la boucle mais avec la boucle for c'est la
cata !
If Cell.Value <> "" Then
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 0).Offset(0,
1)).Merge 'Fusion de A et B
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1).Offset(0,
3)).Merge 'Fusion de C, D, E et F
Range(ActiveCell.Offset(0, 5), ActiveCell.Offset(0, 5).Offset(0,
1)).Merge 'Fusion de G et H
Range(ActiveCell.Offset(0, 8), ActiveCell.Offset(0, 8).Offset(0,
1)).Merge 'Fusion de J et K
Next

Ca ne marche pas et en plus ça m'a l'air "lourd"
Ex Si A41 contient une valeur, je fusionne A41 et B41, C41 jusqu'à F41, G41
et H41, J41 et J41
Idem sur la ligne 42etc jusqu'à ligne 150 Maxi

Quelqu'un aurait-il une solution efficace à me proposer ?
Merci
Domi
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18768991
Bonjour.
Essaie :

For Each cell In Range("A41", Range("A150").End(xlUp))
If cell.Value <> "" Then
cell.Resize(, 2).Merge 'Fusion de A et B
cell.Offset(, 1).Resize(, 4).Merge 'Fusion de C, D, E et F
cell.Offset(, 5).Resize(, 2).Merge 'Fusion de G et H
cell.Offset(, 8).Resize(, 2).Merge 'Fusion de J et K
End If
Next

Cordialement.
Daniel

Bonjour à tous,
Je voudrais via une macro réaliser la chose suivante
A partir de la ligne 41 et jusqu'à la dernière ligne contenant une valeur
dans la colonne A (Max 150)

Pour chaque ligne, si la cellule de la colonne A contient une valeur
Je fusionne la cellule de la colonne A avec la cellule de la colonne B
Je fusionne la cellule de la colonne C avec les cellules des colonnes D, E et
F
Je fusionne la cellule de la colonne G avec la cellule de la colonne H
Je fusionne la cellule de la colonne J avec la cellule de la colonne K

En gros...
For Each Cell In Range("A41", Range("A150").End(xlUp)) 'jusque là je pense
que j'ai bon...

A partir de là ça marche sans la boucle mais avec la boucle for... c'est la
cata !
If Cell.Value <> "" Then
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 0).Offset(0,
1)).Merge 'Fusion de A et B
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1).Offset(0,
3)).Merge 'Fusion de C, D, E et F
Range(ActiveCell.Offset(0, 5), ActiveCell.Offset(0, 5).Offset(0,
1)).Merge 'Fusion de G et H
Range(ActiveCell.Offset(0, 8), ActiveCell.Offset(0, 8).Offset(0,
1)).Merge 'Fusion de J et K
Next

Ca ne marche pas et en plus ça m'a l'air "lourd"
Ex Si A41 contient une valeur, je fusionne A41 et B41, C41 jusqu'à F41, G41
et H41, J41 et J41
Idem sur la ligne 42...etc jusqu'à ligne 150 Maxi...

Quelqu'un aurait-il une solution efficace à me proposer ?
Merci
Domi


Domi
Le #18771221
Un premier test rapide... ça m'a l'air bon.
Merci ;o)
Domi

"Daniel.C" u3%
Bonjour.
Essaie :

For Each cell In Range("A41", Range("A150").End(xlUp))
If cell.Value <> "" Then
cell.Resize(, 2).Merge 'Fusion de A et B
cell.Offset(, 1).Resize(, 4).Merge 'Fusion de C, D, E et F
cell.Offset(, 5).Resize(, 2).Merge 'Fusion de G et H
cell.Offset(, 8).Resize(, 2).Merge 'Fusion de J et K
End If
Next

Cordialement.
Daniel

Bonjour à tous,
Je voudrais via une macro réaliser la chose suivante
A partir de la ligne 41 et jusqu'à la dernière ligne contenant une valeur
dans la colonne A (Max 150)

Pour chaque ligne, si la cellule de la colonne A contient une valeur
Je fusionne la cellule de la colonne A avec la cellule de la colonne B
Je fusionne la cellule de la colonne C avec les cellules des colonnes D,
E et F
Je fusionne la cellule de la colonne G avec la cellule de la colonne H
Je fusionne la cellule de la colonne J avec la cellule de la colonne K

En gros...
For Each Cell In Range("A41", Range("A150").End(xlUp)) 'jusque là je
pense que j'ai bon...

A partir de là ça marche sans la boucle mais avec la boucle for... c'est
la cata !
If Cell.Value <> "" Then
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 0).Offset(0,
1)).Merge 'Fusion de A et B
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1).Offset(0,
3)).Merge 'Fusion de C, D, E et F
Range(ActiveCell.Offset(0, 5), ActiveCell.Offset(0, 5).Offset(0,
1)).Merge 'Fusion de G et H
Range(ActiveCell.Offset(0, 8), ActiveCell.Offset(0, 8).Offset(0,
1)).Merge 'Fusion de J et K
Next

Ca ne marche pas et en plus ça m'a l'air "lourd"
Ex Si A41 contient une valeur, je fusionne A41 et B41, C41 jusqu'à F41,
G41 et H41, J41 et J41
Idem sur la ligne 42...etc jusqu'à ligne 150 Maxi...

Quelqu'un aurait-il une solution efficace à me proposer ?
Merci
Domi






Publicité
Poster une réponse
Anonyme