cs_cobra2008
Messages postés25Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention27 août 2010
-
26 août 2010 à 14:17
cs_cobra2008
Messages postés25Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention27 août 2010
-
27 août 2010 à 08:52
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
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