Recherche de la position d’une cellule avec une donnée définie
Résolu
mijean94
Messages postés
413
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 413 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 413 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
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
1 réponse
-
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-
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 -
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 -
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
-