XL 2016 Adresse d'une cellule fusionnée

ZAJNI

XLDnaute Nouveau
Bonjour à tous,

J'ai un soucis avec les cellules fusionnées.
En gros, j'essaye de faire un macro qui me récupère la ligne de début du cellule fusionnée et la ligne de fin.
Sauf que cela ne marche pas avec les fonction InStrRev qui à partir de l'adresse d'une cellule fusionnée : $A$22:$A$38 par exemple me renvoie après des manipulation la ligne de début 2 (alors que réellement il s'agit de la ligne 22) et la ligne de fin 38
VB:
    If ct.MergeCells Then
        adresse = ct.MergeArea.Address
        'Découper l'adresse pour retrouver les numéros de colonnes
        tmp = InStrRev(adresse, ":")
        cellule1 = Left(adresse, Len(adresse) - tmp)
        celdeb = Replace(cellule1, "$", "")
        celdeb1 = Replace(celdeb, "A", "")
        cellule2 = Right(adresse, Len(adresse) - tmp)
        cellule = Replace(cellule2, "$", "")
        cmpt = Replace(cellule, "A", "")
    End If

Quelqu'un pourrait-il m'aider à récupérer les lignes de début et de fin à partir de adresse = ct.MergeArea.Address svp ?

Merci beaucoup pour votre aide.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,
ct étant un objet range et ligneDebut et LigneFin déclarés en Long:
VB:
If ct.MergeCells Then
     LigneFin = ct.Cells(ct.MergeArea.Rows.Count,1).Row
     ligneDebut = ct.Cells(1, 1).Row
End If
Debug.Print ligneDebut, LigneFin

A la prochaine
 

ZAJNI

XLDnaute Nouveau
Là j'ai une cellule fusionnée, et je veux récupérer la colonne de début et de fin
Voici mon code
VB:
If r.MergeCells Then
    'Récupérer l'adresse de la cellule fusionnée détectée
    adresse_deb = r.MergeArea.Address
    'Découper l'adresse pour retrouver les numéros de colonnes
    tmp_deb = InStrRev(adresse_deb, ":")
    cellule1_deb = Left(adresse_deb, Len(adresse_deb) - tmp_deb - 1)
    cellule_deb = Replace(cellule1_deb, "$", "")
    cmpt_deb = Replace(cellule_deb, "2", "")
    'Appel à la fonction qui permet de convertir le nom de la colonne en nombre
    col_deb = NumeroDeColonne(cmpt_deb)
End If

Public Function NumeroDeColonne(NomDeColonne As String) As Integer
On Error GoTo NumeroDeColonneErreur
    NumeroDeColonne = CInt(Range(NomDeColonne & "1").Column)
Exit Function
NumeroDeColonneErreur:
    NumeroDeColonne = CVErr(xlErrNA)
End Function
 

Discussions similaires

Réponses
3
Affichages
288
Réponses
2
Affichages
110

Statistiques des forums

Discussions
312 082
Messages
2 085 172
Membres
102 806
dernier inscrit
rle