Récupérer le N° de ligne de la dernière occurrence d'un doublon
evilrico
Messages postés33Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention 9 août 2011
-
30 déc. 2009 à 08:55
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
30 déc. 2009 à 09:27
Bonjour à toutes et à tous
récupérer le N° de ligne de la dernière occurrence d'un doublon
je précise :
sur la colonne A par exemple, j'ai
A1=test1
A2=test1
A3=test1
A4=test1
A5=test1
A5=test1
A6=test1
A7=test1
A8=test1
A9=test1
A10=test1 ==>dans la fonction je dois récupérer :10 pour l'occurence test1
A11=test3
A12=test3
A13=test3
A14=test3
A15=test3 ==>dans la fonction je dois récupérer :15 pour l'occurence test3
A16=test2
A17=test2
A18=test2
A19=test2
A20=test2 ==>dans la fonction je dois récupérer :20 pour l'occurence test2
la fonction ci dessous me permet de connaitre le nombre de fois que revient une occurence dans la colonne,
mais je n'arrive pas à récupérer le n° de ligne de la dernière occurrence
si quelqu'un voit ou se trouve mon erreur dans le code si dessous
ou une autre proposition, je suis prenneur, et je lui serai infiniment reconnaissant.
merci d'avance et bonne fête de fin d'année
à savoir 'MsgBox Item.Row, me renvoie la ligne de chaque occurence
Function total()
Dim Spinner As Integer
Dim totaligne As Integer
Dim i As Integer
Dim tabl() As Integer
Spinner = 0
Set plageCherche = Worksheets("feuil1").Range("H2:H" & totalignes(Worksheets("feuil1").Range("B65536")))
ReDim tabl(Worksheets("feuil40").Range("M1").Value)
For i = 1 To Worksheets("feuil40").Range("M1").Value
ValCherchee = Worksheets("feuil40").Range("M" & i + 1).Text
For Each Item In plageCherche
If (StrComp(Item.Value, ValCherchee, vbTextCompare) 0) Then Spinner Spinner + 1
'MsgBox Item.Row
Next Item
tabl(i) = CStr(Spinner)
Spinner = 0
Next i
total = tabl
End Function
A voir également:
Récupérer le N° de ligne de la dernière occurrence d'un doublon
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 déc. 2009 à 09:06
Public Function GetLastOccurrence(ByRef vsWhat As String, Optional ByVal vnInColumn As Long = 1) As Range
Dim oRange As Range
Set oRange = Cells(1, vnInColumn)
Do Until Nothing Is oRange
If StrComp(oRange.Text, vsWhat, vbTextCompare) = 0 Then
Set GetLastOccurrence = oRange
ElseIf Not Nothing Is GetLastOccurrence Then
Exit Do
End If
If oRange.Row = &H10000 Then
Exit Do
End If
Set oRange = oRange.Offset(1)
Loop
End Function
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 30 déc. 2009 à 09:24
Bonjour,
et en allant du bas vers le haut ? (on éviterait alors de boucler jusqu'à plus là..., le premier trouvé étant le dernier présent)
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.