M
mélissa
Guest
Bonjour à tous,
Dans ma feuille excel j'ai rentré des valeurs dans certaines case et d'autres sont vides. Je souhaiterai créer une macro qui parcourt ma feuille et qui fusionne les cellules si les cellules suivantes sont vides: Dès qu'une case est remplie regarder les cases suivantes et si elles sont vides fusionner avec la case remplie. Si la case suivante n'est pas vide recommencer une nouvelle fusion.( s'arreter en bout de ligne) Pour l'instant j'ai essayé de fusionner des cellules en partant d'une case remplie que je selectionne moi même, mais cela ne fonctionne pas. Je crois que le bug vient de ma méthode While. Quelqu'un pour m'aider?
merci
mélissa
Dim adresse As String
Dim adressetmp As String
adresse = Selection.Address
Dim ligne As String
Dim colonne As String
Dim nbcolonnes As Variant
nbcolonnes = 1
ligne = Selection.Row
colonne = Selection.Column
tmp = Range(adresse).Next
If IsEmpty(Range(adresse).Next) = True Then
While Range(Range(adresse).Next.Address).Row = ligne Or IsEmpty(Range(Range(adresse).Next.Address).Value) Or Range(Range(adresse).Next.Address).Column < 46
Range(adresse).Next = Range(Range(adresse).Next.Address).Next
'nbcolonnes = nbcolonnes + 1
Wend
Selection.Resize(1, nbcolonnes + 1).Select
'Wend
Range(Selection.Address).Merge
End If
Dans ma feuille excel j'ai rentré des valeurs dans certaines case et d'autres sont vides. Je souhaiterai créer une macro qui parcourt ma feuille et qui fusionne les cellules si les cellules suivantes sont vides: Dès qu'une case est remplie regarder les cases suivantes et si elles sont vides fusionner avec la case remplie. Si la case suivante n'est pas vide recommencer une nouvelle fusion.( s'arreter en bout de ligne) Pour l'instant j'ai essayé de fusionner des cellules en partant d'une case remplie que je selectionne moi même, mais cela ne fonctionne pas. Je crois que le bug vient de ma méthode While. Quelqu'un pour m'aider?
merci
mélissa
Code:
Dim adressetmp As String
adresse = Selection.Address
Dim ligne As String
Dim colonne As String
Dim nbcolonnes As Variant
nbcolonnes = 1
ligne = Selection.Row
colonne = Selection.Column
tmp = Range(adresse).Next
If IsEmpty(Range(adresse).Next) = True Then
While Range(Range(adresse).Next.Address).Row = ligne Or IsEmpty(Range(Range(adresse).Next.Address).Value) Or Range(Range(adresse).Next.Address).Column < 46
Range(adresse).Next = Range(Range(adresse).Next.Address).Next
'nbcolonnes = nbcolonnes + 1
Wend
Selection.Resize(1, nbcolonnes + 1).Select
'Wend
Range(Selection.Address).Merge
End If
Code: