[VBA Excel] comment reconnaitre les cellules

chercheur92 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour !
je veux faire une procedure qui me renvoie la ligne de la cellule selectionnée dans une colonne bien définie.
" msgbox selection.row " renvoie juste la ligne de la premiere cellule sélectionnée.
que faut il rajouter pour que j'ai la ligne de toutes les cellules sélectionnées d'une colonne donnée ?
je compte sur votre aide et merci d'avance.
A voir également:

1 réponse

Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
salut chercheur92,

moi, je suis dans le 91, et peut-être que j'ai trouvé ce qu'il te faut ;-)
Sub NumerosDeLignes()
    Dim rngPlage        As Range
    Dim lngIndex        As Long
    Dim lng1            As Long
    Dim lng2            As Long
    Dim blnAsc          As Boolean
    Dim lngLigne(65536) As Long
    Dim lngRow          As Long
    Dim strMessage      As String
    
    ' récupération des numéros de ligne
    ' si une même ligne est sélectionnée sur plusieurs colonnes, 
    ' il y aura des doublons dans la liste...
    lngIndex = 0    ' premier élément du tableau = 0
    For Each rngPlage In Selection.Cells
        lngLigne(lngIndex) = rngPlage.Row
        lngIndex = lngIndex + 1
    Next
    ' dernier élément du tableau = n-1
    lngIndex = lngIndex - 1
    
    ' tri des numéros de ligne
    blnAsc = True       ' tri ascendant, remplacer True par False pour un tri descendant
    For lng1 = 0 To lngIndex
        For lng2 = lng1 + 1 To lngIndex
            lngRow = lngLigne(lng2)
            If blnAsc Then
                If lngRow < lngLigne(lng1) Then
                    lngLigne(lng2) = lngLigne(lng1)
                    lngLigne(lng1) = lngRow
                End If
            Else
                If lngRow > lngLigne(lng1) Then
                    lngLigne(lng2) = lngLigne(lng1)
                    lngLigne(lng1) = lngRow
                End If
            End If
        Next
    Next
    
    ' création du message à afficher dans le msgbox
    For lng1 = 0 To lngIndex
        strMessage = strMessage & lngLigne(lng1) & ", "
    Next
    strMessage = Left(strMessage, Len(strMessage) - 2)
    
    MsgBox strMessage, vbInformation, "Numéros de lignes"
End Sub
0