Fusion cellules si cellule du bas vide sauf pour la dernière ligne !

samimi94

XLDnaute Occasionnel
Bonsoir,

Je souhaite fusionner les cellules des colonnes S, T, U dès lors que la colonne du dessous est vide, sans fusionner la dernière ligne car par la suite je la complèterai avec de nouvelles données sauf si en colonne A il y a une information.

Ex : Si S3 est pleine et S4 vide, alors fusionner la cellule S3 et S4, et ainsi de suite jusqu'à la dernière ligne pleine.

J'ai trouvé un bout de code sur le site qui devait répondre à mon besoin mais cela ne fonctionne pas.

Code:
Sub fusion()
With Sheets(1)
     lig = .Range("B" & Rows.Count).End(xlUp).Row - 1
     r = 1
     Do
     i = 0
         Do
         If .Cells(r + i + 1, 2) = "" Then i = i + 1
     Loop While .Cells(r + i + 1, 2) = ""
     .Range(.Cells(r, 2), .Cells(r + i, 2)).Merge
     r = r + 1
     Loop While r < lig
End With
End Sub

De plus si je peux abuser, j'ai en colonne A (qui est masqué) le nom des onglets d'où proviennent les données, je souhaiterai, que toutes les lignes qui ont la même informations dans cette colonne soient colorées.

Dans mon exemple, les lignes 3 et 4 ont la même valeur en colonne A, dans ce cas je les colore en gris par exemple.
La ligne 5 serait bleu et la 6 verte.

Je mets en PJ un fichier qui ressemble au mien avec des données bidons.

Merci pour votre aide.

Samimi
 

Pièces jointes

  • test.xlsx
    12.5 KB · Affichages: 39
  • test.xlsx
    12.5 KB · Affichages: 39
  • test.xlsx
    12.5 KB · Affichages: 41

Yaloo

XLDnaute Barbatruc
Re : Fusion cellules si cellule du bas vide sauf pour la dernière ligne !

Re,

Pour info, ce n'est pas ma macro, mais celle que tu as mis au premier post. Macro que j'ai juste modifiée pour coller au mieux à ton fichier :)
Je dois partir donc je regarde en rentrant ou demain matin.

A+
 

Yaloo

XLDnaute Barbatruc
Re : Fusion cellules si cellule du bas vide sauf pour la dernière ligne !

J'avais encore un peu de temps, vois avec la macro ci-dessous.

VB:
Sub MFC()
  With Sheets(1)
    For Each c In .Range("S3:S" & .Range("E" & Rows.Count).End(xlUp).Row - 1)
      If c.Offset(1) = "" Then
        Range(c, c.Offset(1)).Merge
      End If
    Next c
  End With
End Sub

A+
 

samimi94

XLDnaute Occasionnel
Re : Fusion cellules si cellule du bas vide sauf pour la dernière ligne !

Yaloo,

Qu'est ce que j'aurai aimé faire les choses aussi vite que toi en ayant ce savoir.
Ca fonctionne à merveille et le traitement de la tâche est rapide.

Mille mercis à toi et à l'existence de ce forum et tous ceux qui y contribuent.

Passes une bonne soirée.

Samimi.
 

Yaloo

XLDnaute Barbatruc
Re : Fusion cellules si cellule du bas vide sauf pour la dernière ligne !

Re,

Pour faire la même chose dans les colonnes T et U, il suffit de modifier les lettres de colonne dans ta boucle
VB:
Sub MFC()
Dim c As Range
  With Sheets(1)
    For Each c In .Range("S3:U" & .Range("E" & Rows.Count).End(xlUp).Row - 1)
      If c.Offset(1) = "" Then Range(c, c.Offset(1)).Merge
    Next c
  End With
End Sub

A+

Martial
 

Discussions similaires

Statistiques des forums

Discussions
314 634
Messages
2 111 435
Membres
111 136
dernier inscrit
Ahmad Ibnou