[résolu]dernière occurence dans une feuille

dernière occurence dans une feuille [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 22-09-2005 à 17:06:38    

Bonjour,
 
Je suis en train de faire une macro et je voulais savoir si il existait une méthode pour trouver la dernière occurence d'une chaine de caractère dans une feuille Excel.
Par avance merci.


Message édité par mirascheat le 27-09-2005 à 13:57:28
Reply

Marsh Posté le 22-09-2005 à 17:06:38   

Reply

Marsh Posté le 25-09-2005 à 14:53:30    

T'as pas un exemple pour être plus clair !
 
Chaine dans une cellule ?
Que veux tu récupérer dans cette chaine ? etc...

Reply

Marsh Posté le 26-09-2005 à 11:20:29    

Oui il y a des chaines de caracteres dans les cellules ...
Et j'ai une chaine qui apparait plusieurs fois dans differentes cellules ... je voudrais recuperer la ligne de la premiere occurence de cette chaine (pas de problème) et la ligne de la derniere occurence ...
Merci

Reply

Marsh Posté le 26-09-2005 à 11:29:35    

ben si tu sais faire la première occurence tu sais faire la dernière vu que c'est la première en patant de la fin non ?
 
Si tu donnes le code que tu as fais pour la première occurence, on devrait pouvoir te guider pour la dernière.
 
;)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 26-09-2005 à 11:46:17    

Ok j'utilise simplement la fonction find :
 

Code :
  1. row_number = Cells.Find(What:="toto", After:=ActiveCell, LookIn:=xlFormulas _
  2.                 , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
  3.                 MatchCase:=True, SearchFormat:=False).Row


 

Reply

Marsh Posté le 26-09-2005 à 12:19:33    

Donc voilà, en modifiant un peu ton find et en insérant une boucle, tu obtiens ceci :
 

Code :
  1. Sub trouve()
  2. Dim row_number1, row_number2, c
  3. With Worksheets(4).Range("A1:F5000" )
  4.     Set c = .Find(What:="toto", After:=ActiveCell, LookIn:=xlFormulas _
  5.                 , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
  6.                 MatchCase:=True, SearchFormat:=False)
  7.     If Not c Is Nothing Then
  8.         row_number1 = c.Row
  9. 'ici la boucle pour trouver la dernière occurence
  10.         Do
  11.             row_number2 = c.Row
  12.             Set c = .FindNext(c)
  13.             Loop While Not c Is Nothing And c.Row <> row_number1
  14.     End If
  15. End With
  16. MsgBox ("Première occurence : " & row_number1 & vbCrLf & "Dernière occurence : " & row_number2)
  17. End Sub


Dis moi si c'est bon chez toi ;)
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 27-09-2005 à 12:41:14    

merci après adaptation à ma macro ca marche nickel ;)

Reply

Marsh Posté le 27-09-2005 à 13:34:36    

cool !
 
si tu marque résolu en titre de sujet, d'autres pourront s'en inspirer ;)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed