Fusionner 5 cellules par 5 cellules sur une colonne

isazz

XLDnaute Nouveau
Bonsoir,

Voilà je sais que la fusion de cellules est surtout de l'ordre de l'esthétique mais il me faut absolument trouver une solution à mon problème.
Je dois préparer 34 tableaux ayant un nombre de ligne variable (min:500 max:3500) pour ma chef de service.

Mon problème est le suivant, j'ai 4 colonnes qui devront rester indépendantes.
Dans chacune de ces colonnes, je dois fusionner horizontalement 5 cellules par 5 cellules, la première cellule ayant une saisie.

Exemple:

Colonne A Colonne B Colonne C Colonne D
Nom Prénom Date de naissance Type de logement
Vide Vide Vide Vide
Vide Vide Vide Vide
Vide Vide Vide Vide
Vide Vide Vide Vide
Nom" Prénom" Date de naissance" Type de logement" Vide" Vide" Vide" Vide"
Vide" Vide" Vide" Vide"
Vide" Vide" Vide" Vide"
Vide" Vide" Vide" Vide"

etc....

Je sais saisir les macro/VBA dans excel mais malgré de nombreux efforts je n'arrive pas à en créer une adaptée à mon problème.
Si quelqu'un peut m'aider ? Je l'en remercie d'avance énormément. :D

Ps: en pièce jointe un tableau avec 3 lignes.

Je vous souhaite une bonne soirée
 

Pièces jointes

  • Test fusion lgt.xlsx
    4.8 KB · Affichages: 41

gosselien

XLDnaute Barbatruc
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonjour,

pas sur de t'aider en VBA mais tu appelles quoi "fusionner ? Parce que dans Excel, fusionner c'est faire une cellule avec plusieurs autres qui sont alors "noyées" dans la première, voir Format de cellule/alignement/fusionner les cellules , c'est ça la fusion, ton terme est il bien adapté ?

P.
 

laurent950

XLDnaute Accro
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonsoir

A toute hazar c'est peux être cela ? pas en horizontal car (j'ai 4 colonnes qui devront rester indépendantes)
mais les fusionner en verticale ?

voici le code en VBA :
VB:
Sub Macro1()
'
' Macro1 Macro
For i = 2 To Cells(65536, 1).End(xlUp).Row Step 5
    For j = 1 To 4
        With Range(Cells(i, j), Cells(i + 4, j))
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = True
        End With
    Next j
Next i
End Sub
laurent
 

isazz

XLDnaute Nouveau
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonjour,

pas sur de t'aider en VBA mais tu appelles quoi "fusionner ? Parce que dans Excel, fusionner c'est faire une cellule avec plusieurs autres qui sont alors "noyées" dans la première, voir Format de cellule/alignement/fusionner les cellules , c'est ça la fusion, ton terme est il bien adapté ?

P.

Bonjour,

Oui il s'agit bien de fusionner cellule 1,2,3,4,5 ensembles tout en conservant les données de la cellule 1.

Merci
 

isazz

XLDnaute Nouveau
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonsoir

A toute hazar c'est peux être cela ? pas en horizontal car (j'ai 4 colonnes qui devront rester indépendantes)
mais les fusionner en verticale ?

voici le code en VBA :
VB:
Sub Macro1()
'
' Macro1 Macro
For i = 2 To Cells(65536, 1).End(xlUp).Row Step 5
    For j = 1 To 4
        With Range(Cells(i, j), Cells(i + 4, j))
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = True
        End With
    Next j
Next i
End Sub
laurent

Bonjour,

Merci de votre aide, mais cela marche à moitié.
Je m'explique, quand je rentre la macro cela fonctionne mais dès que j'appuie sur ok du message de fusion cela me fusionne les 5 cellules du dessous....

Ci joint une capture du problème.
 

Pièces jointes

  • FUSION pb1.xlsx
    11.2 KB · Affichages: 34
  • FUSION pb1.xlsx
    11.2 KB · Affichages: 39
  • FUSION pb1.xlsx
    11.2 KB · Affichages: 45

laurent950

XLDnaute Accro
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonjour,

vous parler de :
- j'ai 4 colonnes qui devront rester indépendantes.

et dans votre fichier excel il y en a une 5 éme ?

Il faudrait la structure de la feuilles Original et le résultat voulu cela serait plus simple
et éviterais de deviner

au plaisir de vous aider si je peux

laurent
 

isazz

XLDnaute Nouveau
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Bonjour,

vous parler de :
- j'ai 4 colonnes qui devront rester indépendantes.

et dans votre fichier excel il y en a une 5 éme ?

Il faudrait la structure de la feuilles Original et le résultat voulu cela serait plus simple
et éviterais de deviner

au plaisir de vous aider si je peux

laurent

Re-Bonjour,

Autant pour moi je ne fais que des bétises.

Voici le tableau complet.

Merci d'avance
 

Pièces jointes

  • FUSION pb1.xlsx
    35.6 KB · Affichages: 37
  • FUSION pb1.xlsx
    35.6 KB · Affichages: 157
  • FUSION pb1.xlsx
    35.6 KB · Affichages: 91

laurent950

XLDnaute Accro
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Re,

Vous dite :

- Dans chacune de ces colonnes, je dois fusionner horizontalement 5 cellules par 5 cellules, la première cellule ayant une saisie.

Mais c'est de 6 cellules par 6 cellules, voir votre fichier excel qui correspond pas au premier.

VB:
Sub Macro1()
'
' Step = nombre de saut de dans la boucle
' ici le i saute de 6 en 6
' exemple i pour premier tour de boucle = 2
'         i pour le deuxieme tour de boucle = 8
' grace au step qui vaut 6
' je mais 6 dans une variable
Dim saut As Integer
 saut = 6

' Macro1 Macro
For i = 2 To Cells(65536, 1).End(xlUp).Row Step saut
    For j = 1 To 4
        With Range(Cells(i, j), Cells(i + (saut - 1), j))
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = True
        End With
    Next j
Next i

' Nota : pour le premier tour de boucle i à la valeur de cf ci-dessous
' Cells(i + (saut - 1), j))
' i = 2 (Numéro de ligne)
' saut = 6 (Numéro de ligne)
' je dois fusioner 6 cellule verticallement dont
' i = 2 + (saut = 6) = 8 (Numéro de ligne)
' C'est trop je dois enlever une ligne
' saut - 1 donc saut = 5
' et i = 2 + (saut = 5) = 7 (Numéro de ligne)
' donc fusion de la ligne i = 2 à 7
' FIN
End Sub

laurent
 
Dernière édition:

isazz

XLDnaute Nouveau
Re : Fusionner 5 cellules par 5 cellules sur une colonne

Re,

Vous dite :

- Dans chacune de ces colonnes, je dois fusionner horizontalement 5 cellules par 5 cellules, la première cellule ayant une saisie.

Mais c'est de 6 cellules par 6 cellules, voir votre fichier excel qui correspond pas au premier.

VB:
Sub Macro1()
'
' Step = nombre de saut de dans la boucle
' ici le i saute de 6 en 6
' exemple i pour premier tour de boucle = 2
'         i pour le deuxieme tour de boucle = 8
' grace au step qui vaut 6
' je mais 6 dans une variable
Dim saut As Integer
 saut = 6

' Macro1 Macro
For i = 2 To Cells(65536, 1).End(xlUp).Row Step saut
    For j = 1 To 4
        With Range(Cells(i, j), Cells(i + (saut - 1), j))
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = True
        End With
    Next j
Next i

' Nota :
' Cells(i + (saut - 1), j))
' i = 2 (Numéro de ligne)
' saut = 6 (Numéro de ligne)
' je dois fusioner 6 cellule verticallement dont
' i = 2 + (saut = 6) = 8 (Numéro de ligne)
' C'est trop je dois enlever une ligne
' saut - 1 donc saut = 5
' et i = 2 + (saut = 5) = 7 (Numéro de ligne)
' donc fusion de la ligne i = 2 à 7
' FIN
End Sub

laurent

Merci beaucoup !!!! Ca marche !!!!!!!! :D:D:D:D:D:D

Très bonne journée à vous !

Merci merci merci
 

Discussions similaires

Réponses
25
Affichages
673

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia