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+
 

patricktoulon

XLDnaute Barbatruc
re
oui donc 8 ou 10 c'est un juste milieu
apres chez moi je suis toujours a 0.000
difficile d'aller plus loin

/1 ca donne
1675468346835.png


/4 ca donne
1675468544496.png
 

Discussions similaires

Réponses
10
Affichages
206
Réponses
3
Affichages
248

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin