Recherche de la position d’une cellule avec une donnée définie
Résolu
mijean94
Messages postés
417
Statut
Membre
-
mijean94 Messages postés 417 Statut Membre -
mijean94 Messages postés 417 Statut Membre -
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
A voir également:
- Recherche de la position d’une cellule avec une donnée définie
- Comment faire une recherche à partir d'une photo - Guide
- Ma position - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Aller à la ligne dans une cellule excel - Guide
- Je recherche une chanson - Guide
1 réponse
Bonjour,
Essaies :
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
Après mise en place du code dans mon programme ça fonctionne nickel.
Un grand merci.
j'ai juste remplacer la ligne,
)
Par ,
pour utiliser mes variables.
Bien cordialement
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
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
Encore merci pour la réponse.
Bien cordialement