XL 2016 Fusionner des cellules

jymathieu

XLDnaute Nouveau
Bonjour,
Le document ci-joint doit être protéger afin d'éviter que les utilisateurs qui vont avoir ce fichier ne puissent pas supprimer ou modifier les titres de A3 en N3.
Ci-joint un tableau dans lequel je voudrais pourvoir fusionner les cellules des colonnes A jusque E.
Comme on le voit, dans les colonnes F4 à M12 les utilisateurs vont entrer des données différentes.
Dans les colonnes A4 a E4, les utilisateurs rentrent une seule donnée par cellule.
Ensuite A13 à E13, une seule donnée par cellule et de F13 a M15 différentes données.
Et ainsi de suite comme le montre le fichier
Je voudrais pouvoir fusionner les cellules de A13 à A15, B13 à A15, etc...
Chaque fois que j'ai une donnée suivi de blanc dans les cellules de A à E, les fusionner.
Merci d'avance
 

Pièces jointes

  • merge cellules.xlsm
    35.2 KB · Affichages: 12
Solution
Bonjour jymathieu,

Voyez le fichier joint et la macro affectée au bouton :
VB:
Sub Fusion()
Dim col As Range, a As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'si aucune SpecialCell
With Sheets("Form")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .Range("A4:E" & .Range("H" & .Rows.Count).End(xlUp).Row)
        If .Row < 4 Then Exit Sub
        .UnMerge 'défusionne
        For Each col In .Columns
            For Each a In col.SpecialCells(xlCellTypeBlanks).Areas
                If a(0).Row > 3 Then Union(a(0), a).Merge 'fusionne
        Next a, col
    End With
End With
End Sub
A+
Bonjour jymathieu,

Voyez le fichier joint et la macro affectée...

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour tous
@jymathieu
Ci joint un 1er jet , je propose déclenchement car je ne vois pas autre ?
On doit se baser sur les dernières saisies sinon beaucoup plus complexe
Les cellules A3 N3 sont protégées , les autres sont libres ( feuille protégée sans MdP)
 

Pièces jointes

  • merge cellules.xlsm
    78.5 KB · Affichages: 5
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour jymathieu,

Voyez le fichier joint et la macro affectée au bouton :
VB:
Sub Fusion()
Dim col As Range, a As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'si aucune SpecialCell
With Sheets("Form")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .Range("A4:E" & .Range("H" & .Rows.Count).End(xlUp).Row)
        If .Row < 4 Then Exit Sub
        .UnMerge 'défusionne
        For Each col In .Columns
            For Each a In col.SpecialCells(xlCellTypeBlanks).Areas
                If a(0).Row > 3 Then Union(a(0), a).Merge 'fusionne
        Next a, col
    End With
End With
End Sub
A+
 

Pièces jointes

  • merge cellules(1).xlsm
    39.4 KB · Affichages: 13

jymathieu

XLDnaute Nouveau
Bonjour jymathieu,

Voyez le fichier joint et la macro affectée au bouton :
VB:
Sub Fusion()
Dim col As Range, a As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'si aucune SpecialCell
With Sheets("Form")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .Range("A4:E" & .Range("H" & .Rows.Count).End(xlUp).Row)
        If .Row < 4 Then Exit Sub
        .UnMerge 'défusionne
        For Each col In .Columns
            For Each a In col.SpecialCells(xlCellTypeBlanks).Areas
                If a(0).Row > 3 Then Union(a(0), a).Merge 'fusionne
        Next a, col
    End With
End With
End Sub
A+
Bonjour jymathieu,

Voyez le fichier joint et la macro affectée au bouton :
VB:
Sub Fusion()
Dim col As Range, a As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next 'si aucune SpecialCell
With Sheets("Form")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .Range("A4:E" & .Range("H" & .Rows.Count).End(xlUp).Row)
        If .Row < 4 Then Exit Sub
        .UnMerge 'défusionne
        For Each col In .Columns
            For Each a In col.SpecialCells(xlCellTypeBlanks).Areas
                If a(0).Row > 3 Then Union(a(0), a).Merge 'fusionne
        Next a, col
    End With
End With
End Sub
A+
Merci cela fonctionne bien mais je voudrais, si c'est possible, ôter la protection du fichier tourner la macro pour fusionner et reprotéger le fichier.
Est-ce possible
 

Discussions similaires

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 681
dernier inscrit
racsam77