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 :

extraction de caractères [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 783
    Points : 179
    Points
    179
    Par défaut extraction de caractères
    Bonjour.

    Je n’arrive pas a extraire les caractères « (A2;'[Adhérents.xls]BD Adhérents!$A:$A; » :

    de la chaîne suivante
    « RECHERCHE(A2;'[Adhérents.xls]BD Adhérents!$A:$A;'[Adhérents.xls]BD Adhérents!$D:$D) »

    ou de la chaîne
    « SI(A2=0;"";RECHERCHE(A2;'[Clients.xls]BD CLIENTS'!$A:$A;'[Clients.xls]BD CLIENTS'!$D:$D)) ».

    Après plusieurs recherches sur les forums, j’ai essayé le code suivant, mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlFormulas)
        Mid(c.Formula, InStrRev(c.Formula, "(") , InStrRev(c.Formula, ","))
    Next
    Une erreur de syntaxe sans doute.

    Pourriez-vous m’aider SVP, je ne trouve pas de solution.

    Merci d’avance.

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Pourrais tu expliquer ce que tu cherches a réaliser exactement, il existe peut être une méthode "conventionnelle" pour le faire.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour uniquement répondre à ta question et sur les exemples donnés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlFormulas)
       MsgBox Mid(c.Formula, InStrRev(c.Formula, "(") + 1, InStrRev(c.Formula, ",") - InStrRev(c.Formula, "("))
    Next c
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 783
    Points : 179
    Points
    179
    Par défaut
    Bonsoir mercatog

    Cela fonctionne nickel chrome, mais j'aimerai une petite explication sur le principe.

    Je plane un peu.

    Merci

  5. #5
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=InStrRev(c.Formula, "(")  'la position du dernier (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b=InStrRev(c.Formula, ",")  'la position du dernier ,
    On veut récupérer le texte entre ces 2 positions ("("non compris mais "," comprise)
    C'est à dire x étant la longueur du texte final
    x=b-a
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 783
    Points : 179
    Points
    179
    Par défaut
    Bonjour mercatog

    J'ai compris, maintenant c'est clair comme de l'eau de roche.

    Merci à toi et à Qwazerty.

    Cordialement modus57.

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

Discussions similaires

  1. [en cours] Extraction de caractères d'un fichier texte
    Par corab500 dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 09/03/2009, 18h52
  2. Réponses: 8
    Dernier message: 02/09/2008, 14h28
  3. Extraction de caractères pour contrôle des minutes!
    Par js8bleu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/07/2008, 23h30
  4. [Shell] Extraction chaîne caractère
    Par tonio45312 dans le forum Linux
    Réponses: 4
    Dernier message: 29/05/2008, 09h45
  5. [Requête]extraction de caractères d'enregistrements d'un champ
    Par BORDEAUX4 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/03/2007, 13h18

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