IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur sur la première occurence trouvée avec Find [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut Erreur sur la première occurence trouvée avec Find
    Bonjour à tous,

    J'ai une feuille dont la 2ème colonne contient des valeurs dont je recherche la première occurrence.
    AAA
    AAA
    AAA
    BBB
    BBB
    CCC
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function FirstOccur(SearchStr as String, ColNo as Integer) as Long 
    Dim Rang as Range
      Set Rang = ActiveSheet.Columns(ColNo)
      FirstOccur  = Rang.Find(SearchStr).Row
    end Function
    FirstOccur("BBB", 2) me renvoie la valeur 4. Exact.
    Mais FirstOccur("AAA", 2) me renvoie la valeur 2. Erreur

    La valeur en première ligne est ignorée.

    Le code donné est un extrait. En réalité elle me renvoie la première et la dernière occurrence avec des Findnext utilisée pour tester une valeur dans une deuxième colonne.
    Avec "BBB", les valeurs sont 4 et 5. Exact.
    Avec "AAA", les valeurs sont 2 et 1. Erreur.

    J'ai essayé de paramétrer find avec SearchDirection mais cela devient tordu comme solution.

    Quelqu'un pourrait-il m'éclairer sur cette anomalie ?

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Il faut préciser la cellule de départ de la recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function FirstOccur(SearchStr As String, ColNo As Integer) As Long
    Dim Rang As Range
      Set Rang = ActiveSheet.Columns(ColNo)
      FirstOccur = Rang.Find(SearchStr, Cells(Rows.Count, ColNo)).Row
    End Function

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Bonjour Daniel

    J'avais essayé avec row = 1 parce que cela me semblait logique.
    Mais cela ne marchait pas alors que Rows.Count fonctionne effectivement.

    Merci à toi

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour defluc,

    Oui, parce que la recherche commence après la cellule indiquée. Si tu indiques la ligne 1, elle commence en ligne 2. Si tu indique la dernière, il commence à la première ligne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Erreur sur mon code envoi mail avec fichier joint
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2014, 18h08
  2. [XL-2003] Erreur sur formule avec SI et Cherche si résultat non trouvé
    Par tarah01 dans le forum Excel
    Réponses: 2
    Dernier message: 18/01/2011, 11h10
  3. Erreur sur une declaration de class avec un extends
    Par kkt8 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 18/11/2010, 16h40
  4. Problème avec .Find sur la première case
    Par Cipollini dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2010, 15h29
  5. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo