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 :

Recherche d'analogies dans une chaîne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2009
    Messages : 19
    Par défaut Recherche d'analogies dans une chaîne
    Bonjour,

    Je souhaiterais trouver dans une colone toutes les cellules qui contiennent le mot suivant:

    Bxxf, avec xx etant un nombre (26,40,...)

    Voici quelques examples de cellules:

    Cor. CTA 1.0 B36f 60%

    Cor. CTA 1.0 B30f 300ms

    Il faut certainement utiliser la commande find(.,.,.), mais je ne sais pas comment formuler la condition.

    Toute suggestion est la bienvenue!

    Merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Compte tenu de tes explications :
    Abandonne l'idée d'utiliser la fonction Find et prépare-toi à celle d'une boucle (pour parcourir toutes les cellules de ta plage) et de l'utilisation de l'opérateur Like.
    C'est d'ailleurs ce que préconise Microsoft et que tu vois dans ton aide en ligne (ouverte sur le mot Find) :

    Pour effectuer des recherches plus complexes, utilisez une instruction For Each...Next avec l'opérateur Like. Par exemple, le code suivant effectue une recherche dans toutes les cellules de la plage A1:C5 qui utilise une police dont le nom commence par les lettres Cour. Lorsque Microsoft Excel trouve une cellule correspondante, il lui affecte la police Times New Roman.

    For Each c In [A1:C5]
    If c.Font.Name Like "Cour*" Then
    c.Font.Name = "Times New Roman"
    End If
    Next
    Travaille donc dans ce sens et reviens vers nous, en cas de difficulté, en l'isolant et en l'exprimant.

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Tu peux essayer de voir du côté des filtres automatiques aussi (avec un titre à ta colonne), c'est très très rapide par rapport à des boucles du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Atester()
        Columns("C:C").Select
        Selection.AutoFilter ' nu déselectionne les filtres
        Selection.AutoFilter Field:=1, Criteria1:="=*b**f*", Operator:=xlAnd
    End Sub
    et tu exploites le résultat .. cf aide vba et tutos sur le forum,

    cordialement,

    Didier

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut mapotam et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim Cel As Range, Plage As Range
    Set Plage = Range([A1], [A65536].End(xlUp))
    For Each Cel In Plage
        If Cel Like "*B##f*" Then
            'traitement
            MsgBox Cel.Address(0, 0)
        End If
    Next Cel
    End Sub
    A+

  5. #5
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2009
    Messages : 19
    Par défaut
    Ok, ca marche!
    Je suis un peu novice en Excel, je ne connaissais que les commandes basics.
    Merci a tous pour votre aide!

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

Discussions similaires

  1. Recherche de valeurs dans une chaîne de caractères
    Par julieng31 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/08/2009, 15h43
  2. Recherche de caractère dans une chaîne
    Par vva dans le forum ASP
    Réponses: 2
    Dernier message: 24/09/2008, 21h02
  3. Recherche dans une chaîne de caractères
    Par fasyr dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 25/02/2008, 19h33
  4. Réponses: 16
    Dernier message: 10/01/2008, 15h12
  5. [RegEx] Recherche et Remplacement d'une chaîne dans un fichier
    Par jpascal dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2007, 19h35

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