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 :

Rechercher un mot VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut Rechercher un mot VBA
    Bonsoir, c'est moi encore une fois
    J'ai lancé un code pour rechercher un mot sur ma feuille et j'ai remarqué que lorsqu'il détecte une ligne vide il arrête la recherche genre il ne saute pas la ligne vide pour continuer la recherche jusqu’à la fin de la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Rechercher()
     
        'Procédure permettant de réaliser une recherche que la colonne Nom
        Columns("B:B").Select
        Selection.Find(What:=Feuil1.Range("Nom"), After:=ActiveCell, LookIn:=xlValues, _
            Lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Select
     
    End Sub

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour l'utilisation de la méthode find, il est préférable de procéder comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Recherche()
    Dim N As Long
    Dim c As Range
    Dim Nom As String
     
    Nom = Feuil1.Range("Nom").Value
    If Nom <> "" Then
        With Worksheets("nom de ta veuille")
            N = .Cells(.Rows.Count, 2).End(xlUp).Row
            Set c = .Range("B2:B" & N).Find(Nom, LookIn:=xlValues, Lookat:=xlPart)
            If Not c Is Nothing Then
                MsgBox c.Address
                'suite de ton code
            End If
        End With
    End If
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut
    Bonsoir, ça donne toujours le même résultat, le code ignore les valeurs stocké après une ligne vide

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu as une seule valeur trouvée ou plusieurs?

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut
    Plusieurs valeurs, je les classe sous format fe tableau sur l'interface

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Find trouve uniquement la première occurrence trouvée selon les paramètres.

    Regarde l'aide sur Range.Find, tu trouves un exemple explicite pour trouver toutes les occurrences.

  7. #7
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonsoir,
    Citation Envoyé par Sa Mariam Voir le message
    j'ai remarqué que lorsqu'il détecte une ligne vide il arrête la recherche genre il ne saute pas la ligne vide pour continuer la recherche jusqu’à la fin de la page.
    Je pense que tu as mal "remarqué" car tu peux même rechercher les lignes vides.

    Par contre ta procédure est brute et elle plante si tu n'as pas de résultat. Comme ceci cela serait plus propre même si ton activecell risque de te poser des soucis et il vaudrait mieux le remplacer par [B1]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Rechercher()
     
    'Procédure permettant de réaliser une recherche que la colonne Nom
    Dim pos As Range
    Set pos = Columns("B:B").Find(What:=Feuil1.Range("Nom"), After:=ActiveCell, LookIn:=xlValues, _
        Lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If pos Is Nothing Then
        MsgBox "nom inexistant"
    Else
        pos.Activate
        ' ton traitement
    End If
    End Sub

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

Discussions similaires

  1. [XL-2013] Rechercher un mot prédéfini dans une chaine de caractères (VBA)
    Par VincentOz dans le forum Excel
    Réponses: 5
    Dernier message: 18/08/2020, 14h35
  2. [XL-2010] Rechercher un mot dans le code VBA de plusieurs classeurs fermés ?
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 12/11/2016, 01h00
  3. Réponses: 3
    Dernier message: 23/05/2014, 00h19
  4. Réponses: 33
    Dernier message: 22/08/2011, 15h33
  5. [XL-2003] Recherche un mot dans un autre fichier excel avec vba
    Par alaoui_nizar dans le forum Excel
    Réponses: 5
    Dernier message: 19/04/2010, 18h37

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