Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 trouver la dernière ligne de la valeur "x"

lesoldat9

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite trouver une formule vba qui m'indique la dernière ligne où se trouve ma valeur "X".

exemple:
a
b
c
x
x
x
x

x=ligne 7

Merci à vous
 
Solution
une formule vba
Oups !!! C'est comme à l'école : quand tu lis mal la consigne tu te plantes.
Une fonction perso :
VB:
Function TrouverDernier(Plage, C$)
    tablo = Plage
    For i = 1 To UBound(tablo)
        If tablo(i, 1) = C Then TrouverDernier = i
    Next i
End Function
Syntaxe dans la feuille :
Code:
=TrouverDernier(Plage de recherche;Chaine à trouver)
par exemple
=TrouverDernier(B1:B16;"x")
ou encore en module :
Code:
Sub TrouverDernierOccurence()
    Chaine = "x"
    tablo = Sheets("Feuil2").Range("B1:B20")
    For i = 1 To UBound(tablo)
        If tablo(i, 1) = Chaine Then L = i
    Next i
    MsgBox "Dernier " & Chaine & " trouvé en ligne " & L
End Sub

chaelie2015

XLDnaute Accro
Bonsoir
Voici une formule VBA qui peut trouver la dernière ligne où se trouve votre valeur « X » dans la colonne A :
VB:
Function FindLastRow(ByVal searchValue As String) As Long
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    For i = lastRow To 1 Step -1
        If Cells(i, "A").Value = searchValue Then
            FindLastRow = i
            Exit For
        End If
    Next i
End Function
Pour utiliser cette formule, il suffit de la copier dans le module VBA de votre feuille de calcul et d’appeler la fonction en passant la valeur « X » en argument :

Dim lastRow As Long
lastRow = FindLastRow("X")

La variable contiendra alors la dernière ligne où se trouve votre valeur « X ».lastRow
A+
 

chaelie2015

XLDnaute Accro
Bonsoir patricktoulon
Merci ,Voici une autre formule VBA qui est plus rapide que la première
VB:
Function FindLastRow(ByVal searchValue As String) As Long
    FindLastRow = Cells.Find(What:=searchValue, After:=Range("A1"), _
                             LookIn:=xlValues, LookAt:=xlWhole, _
                             SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End Function
A+
 

Discussions similaires

Réponses
33
Affichages
964
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…