Récupérer la taille d'un Merge sous Excell VBA ?

Résolu
Signaler
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,

pour une application j'ai besoin de savoir si certaine cellules sont mergées en ligne et de savoir la taille du merge.

J'ai réussi à savoir si oui ou non les cellules étaient mergé mais si j'ai des merges différent qui se suivent (par exemple sur la colonne B les lignes 2 à 4 sont mergées et les lignes 5 à 8 selon 2 merges. Ma fonction elle trouve les cellules 2 à 8 mergées), ma fonction ne marche plus. en fait il faudrait que je puisse récupérer la taille exacte des cellules mergées

merci d'avances



voici mon code :
Private Sub CommandButton1_Click()
Dim etat As Variant
Dim i As Integer
Dim sRange As String
Dim iLigneSave As Integer
Dim bTrouveMerge As Boolean
Dim iCouleur As Integer
Dim iLigne As Integer
Dim iColonne As Integer
Dim iLastColonne As Integer

etat = False
iLigneSave = 0
iLigne = 1
bTrouveMerge = False
iCouleur = COULEUR_GRISE
iLastColonne = Range("IV1").End(xlToLeft).Column

For iLigne = 1 To Range("A65536").End(xlUp).Row
For iColonne = 1 To Range("IV1").End(xlToLeft).Column
etat = ThisWorkbook.Sheets("Feuil1").Cells(iLigne, iColonne).MergeCells
If (etat = True) Then
i = iLigne - 1
While (etat = True)
i = i + 1
etat = ThisWorkbook.Sheets("Feuil1").Cells(i, iColonne).MergeCells
Wend
If (i > iLigneSave) Then
iLigneSave = i - 1
End If
bTrouveMerge = True
End If
Next iColonne
If (iCouleur = COULEUR_GRISE) Then
iCouleur = COULEUR_BLEU
Else
iCouleur = COULEUR_GRISE
End If
If (bTrouveMerge = True) Then
bTrouveMerge = False
sRange = "A" + CStr(iLigne) + ":" + TransFormColumnNumberToColumnChar(iLastColonne) + CStr(iLigneSave)
iLigne = iLigneSave
Else
sRange = "A" + CStr(iLigne) + ":" + TransFormColumnNumberToColumnChar(iLastColonne) + CStr(iLigne)
End If
Call SetCouleur(ThisWorkbook.Name, "Feuil1", sRange, iCouleur)
Next iLigne
End Sub

2 réponses

Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
8 juin 2012
4
Bonjour,

ThisWorkbook.Sheets("Feuil1").Cells(iLigne, iColonne).MergeArea.Address

renvoie l'adresse de la cellule ou de la plage si la cellule est fusionnée.

ctac
Messages postés
25
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
27 août 2010

merci.
cela fonctionne.