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 :

Trouver une chaîne de caractères dans une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 57
    Par défaut Trouver une chaîne de caractères dans une feuille
    Bonjour,

    J'ai créé une ListBox avec comme choix des chaînes de caratères du type "Nom_Feuille Mot". Je voudrais maintenant que mon code trouve ce Mot dans la Feuille (sachant que ce même mot peut se trouver aussi dans d'autres feuilles). Je n'arrive pas trop à me débloquer... Auriez-vous des idées ? Merci d'avance

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Comment peut-on, à partir de la chaine de caractère, savoir quel est le mot et quel est le nom de la feuille ?
    Pour trouver un mot dans une plage de cellule, utilise Find.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 57
    Par défaut
    Justement, c'est là que je bloque, la première partie est le nom de la feuille, la deuxième le mot... mais le nombre de caractères pouvant varier suivant les noms et les mots recherchés, c'est pas evident...

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Il faut quelque chose qui permet de détecter qu'est-ce qui est le nom de la feuille et qu'est-ce qui est le mot. VBA ne peut pas "deviner" pour toi. Il faut trouver une logique.
    Est-ce que le nom de la feuille est toujours composé d'un seul mot ? Ou est-ce que le mot est toujours composé d'un seul mot (pas d'espaces) ?
    Si en tout il n'y a qu'un seul espace (entre le nom de la feuille et le mot), tu peux utiliser Split.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Split("nom_feuille mot", " ")(0)     'renvoie "nom_feuille"
    Split("nom_feuille mot", " ")(1)     'renvoie "mot"
    S'il y a plusieurs espace, mais que le nom de la feuille ou le mot ne contient pas d'espace, tu peux utiliser
    • InStr pour trouver la position du premier espace
    • Left ou Right pour récupérer es deux chaines de caractères en fonction de leurs position par rapport à l'espace

    Attention si c'est le mot qui ne contient pas d'espace, il faudra trouver le dernier espace --> soit le premier espace de la chaine de caractère inversée.
    Mais il y a peut-être une autre logique que celle des espace ...
    Tu peux travailler aussi sur les noms des feuilles : tu créés une fonction qui te permet de repérer si un des noms d'onglets est dans la chaine de caractère. Tu fais une bouclé sur les feuilles. A chaque fois tu récupères la taille de la chaine de caractère représentant le nom de ta feuille (Len). Puis en utilisant Left, tu récupères le même nombre de caractères de la chaine à analyser. Tu compares ceci au nom de la feuille.
    Attention au cas où ta chaine à analyser aurait un nombre de caractères inférieur à celui du nom de la feuille.
    Est-ce que tu comprends ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 57
    Par défaut
    Wow, super, merci pour tous ces conseils, je vais tenter de me creuser les méninges avec ca déjà. Je reviendrai sur cette discussion si je bloque à nouveau... Merci beaucoup !

Discussions similaires

  1. [MySQL] Remplacer une chaîne de caractères dans une base de données
    Par Furius dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/11/2013, 21h06
  2. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51
  3. Réponses: 7
    Dernier message: 14/12/2005, 09h53
  4. Remplacer une chaîne de caractères dans une base
    Par Furius dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/10/2005, 23h03
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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