Recherche de la position d’une cellule avec une donnée définie

Résolu
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   -  
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je recherche un code (VBA) qui me permette de retrouver dans une colonne la cellule ou il y a « fin » pour la N éme fois et mémoriser les coordonnées de cette cellule.

Le paramètre N sera défini dans une variable NOMBRE par exemple.

Pouvez-vous m’orienter vers une solution.

Mercie d’avance

Bien cordialement
A voir également:

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Essaies :
Option Private Module
Option Explicit
Public Sub Utilisation()
Dim cel As Range
  Set cel = NièmeCel("Fin", 4, Worksheets(1).Columns("D"))
  If cel Is Nothing Then
    MsgBox "La 4ème cellule contenant ""Fin"" n'a pas été trouvée"
  Else
    MsgBox "La 4ème cellule contenant ""Fin"" est " & cel.Address
  End If
End Sub
Public Function NièmeCel(s As String, n As Integer, r As Range) As Range
' Renvoie la nième cellule contenant la valeur s
' Arguments : s                   [in]  Chaine de caractères cherchée
'             n                   [in]  Numèro de cellule (Nième)
'             r                   [in]  Plage de la recherche
' Retour    : Range               Cellule trouvée ou Nothing
Dim ctr As Integer
Dim adr As String
  Set NièmeCel = r.Find(what:=s, LookIn:=xlValues, lookat:=xlWhole)
  adr = NièmeCel.Address
  If Not NièmeCel Is Nothing Then
    For ctr = 2 To n
      Set NièmeCel = r.Find(what:=s, After:=NièmeCel, _
                            LookIn:=xlValues, lookat:=xlWhole)
      If NièmeCel.Address = adr Then
        Set NièmeCel = Nothing
        Exit For
      End If
    Next ctr
  End If
End Function
0
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

Après mise en place du code dans mon programme ça fonctionne nickel.

Un grand merci.

j'ai juste remplacer la ligne,

Set cel = NièmeCel("Fin", 4, Worksheets(1).Columns("D")
)

Par ,

Set cel1 = NièmeCel((recherche), (position), Worksheets(1).Columns(co))


pour utiliser mes variables.

Bien cordialement
0
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

J’ai ajouté une feuille dans mon tableau et depuis le code du post1 ne fonctionne plus ou plutôt il y a l’erreur :

Variable objet ou variable bloc With non définie (erreur 91)

Sur : adr = NièmeCel.Address dans la partie Public Function

Information importante, bien sur je ne trouve pas pourquoi, mais :

a) L’erreur est là depuis que j’ai ajouté une nouvelle feuille en position 1dans le classeur.

b) Si je place la nouvelle feuille à une autre position dans le classeur le code fonctionne correctement ???

Y a-t-il une solution pour faire fonctionner le code même avec ma nouvelle feuille en position 1 dans le classeur ???

Merci pour l’aide

Bien cordialement
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Remplaces :
  Set cel = NièmeCel("Fin", 4, Worksheets(1).Columns("D"))
Par :
  Set cel = NièmeCel("Fin", 4, Worksheets(2).Columns("D"))
Ou plutôt par :
  Set cel = NièmeCel("Fin", 4, Worksheets("NomFeuille").Columns("D"))
en remplaçant NomFeuille par le véritable nom de la feuille : la feuille pourra ainsi se trouver n'importe où dans le classeur.

Cordialement
Patrice
0
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   11 > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Encore merci pour la réponse.

Bien cordialement
0