1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Sub Fusion()
Dim Tablo
Dim TabMotif()
Dim i As Integer
Dim j As Integer
Dim k As Integer
' ici le tableau avec les motifs modifiables
TabMotif = Array("R", "CP", "CIF", "RTT")
' adapter le nom de la feuille
With Worksheets("Planning")
' chargement de la plage dans un tableau
Tablo = .Range("G15:T184")
' boucle à l'envers sur les lignes
For i = UBound(Tablo, 1) To LBound(Tablo, 1) Step -1
' boucle à l'envers sur les colonnes
For j = UBound(Tablo, 2) To LBound(Tablo, 2) Step -1
' boucle sur les motifs
For k = LBound(TabMotif) To UBound(TabMotif)
' si la cellule ne contient pas d'erreur sur une formule
If Not IsError(Tablo(i, j)) Then
' si la cellule contient le motif
' et qu'elle n'est pas fusionnées
' et que sa voisine de droite non plus
If Tablo(i, j) = TabMotif(k) _
And .Cells(i + 14, j + 6).Address = .Cells(i + 14, j + 6).MergeArea.Address _
And .Cells(i + 14, j + 7).Address = .Cells(i + 14, j + 7).MergeArea.Address Then
Application.DisplayAlerts = False
' on les fusionne
.Range(.Cells(i + 14, j + 6), .Cells(i + 14, j + 7)).Merge
Application.DisplayAlerts = True
End If
End If
Next k
Next j
Next i
End With
End Sub |
Partager