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 :

comparaison et nombre de caractères [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Par défaut comparaison et nombre de caractères
    Bonjour,
    Dans une macro, je compare des cellules de 2 feuilles différentes qui comportent des noms de fichiers du type:

    nomdefichier1_V1.00.xls

    afin de reporter des informations.

    Mon problème est le suivant: ces feuilles ne sont pas parfaitement à jour, et parfois le matching ne se fait pas dans des situations du type:

    nomdefichier1_V1.01.xls avec nomdefichier1_V1.00.xls

    ou encore

    nomdefichier1_V1.00.xlsx et nomdefichier1_V1.00.xls

    j'utilise simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Worksheets("1").Cells(k, 1) = Worksheets("2").Cells(i, 14) Then
    et j'aimerais que la comparaison se fasse uniquement sur la partie "nomdefichier1", sachant que le nombre de caractère de "nomdefichier1" n'est pas fixe.

    Auriez-vous une idée pour limiter le comparaison à ce préfixe ?

    Merci d'avance,

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    si je comprend dans le nom du fichier il y a toujours le caracrtère "_".
    Si c'est le cas tu cherche la position de ce caractère dans ta chaine (fonction INSTR) et tu renles caractère qui sont a gauche de "_" avec la fonction LEFT un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fichier As String, i As Byte
    fichier = "nomdefichier1_V1.01.xls"
    i = InStr(fichier, "_") - 1
    fichier = Left(fichier, i)
    MsgBox fichier
    tu fais ceci pour les deux fichiers à comparer. Adapte cette exemple à ce que tu souhaites faire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Par défaut
    Merci beaucoup pour cette réponse qui me met sur la bonne voie.
    En revanche, le caractère "_" revient plusieurs fois dans le nom du fichier.
    Est-il possible de lui faire chercher le dernier "_" ?

    Edit: En fait, je pense que la solution pour moi serait d'aller récupérer ce qui se situe avant le dernier "V".

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    je pense que la solution pour moi serait d'aller récupérer ce qui se situe avant le dernier "V".
    ou alors avant "_V1" exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fichier As String, i As Byte
    fichier = "nom_de_fichier_1_V1.01.xls"
    i = InStr(fichier, "_V1") - 1
    fichier = Left(fichier, i)
    MsgBox fichier

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Si tu veux trouver le dernier caractère dans chaîne, utilise la fonction 'InstrRev()' :
    MsgBox InStrRev(nom_de_fichier1_V1.01.xls, "_")

    Hervé.

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bravo Hervé,
    je ne connaissais pas "InstrRev".
    juste une remarque il faut mettre le nom_de_fichier etc... entre "".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox InStrRev("nom_de_fichier1_V1.01.xls", "_")
    .

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Par défaut
    OK, ça marche bien, merci beaucoup

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

Discussions similaires

  1. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  2. Réponses: 7
    Dernier message: 16/11/2004, 15h45
  3. Réponses: 2
    Dernier message: 21/09/2004, 19h01
  4. [JTextField] Limiter le nombre de caractères
    Par thomas_strass dans le forum Composants
    Réponses: 2
    Dernier message: 08/09/2004, 14h06
  5. nombre de caractère retourné...
    Par sonialem2000 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/08/2004, 04h06

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