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

Résolu/Fermé
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 1 nov. 2016 à 19:01
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 10 nov. 2016 à 09:11
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
1 nov. 2016 à 19:52
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 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
1 nov. 2016 à 21:52
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 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
9 nov. 2016 à 21:52
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 9/11/2016 à 23:03
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 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
10 nov. 2016 à 09:11
Bonjour,

Encore merci pour la réponse.

Bien cordialement
0