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 :

Selon la version, la fonction Mid, right, left ne fonctionne pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 237
    Par défaut Selon la version, la fonction Mid, right, left ne fonctionne pas
    Bonjour,
    Selon la version que j’utilise, sur mon pc la version 2010, chez moi une 2007et mes collègues des 2003, la fonction Mid, right, left ne fonctionne pas,
    Il me demande de vérifier les références, et elles sont pourtant toutes bien là
    J’ai lus des commentaires là-dessus, mais je ne peux par remettre les retrouver,

    Quelqu’un a une idée ou a déjà rencontré ce problème ?

    Merci par avance de vos réponses

    Henri

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est très curieux ce que tu racontes là parce-que j'utilise ces fonctions sans problèmes peu importe les versions .
    Peux-tu publier le code, le problème vient sans doute d'ailleurs,
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 237
    Par défaut
    Par exemple :
    Avec ce chemin de répertoire dans une cellule de Worksheets("Parametrage").Range("D1 »)
    \\stg01\DSIDoc\03 - Systèmes Applicatifs\08 CTI\00 A Classer\40-Projets\CTIv2-EC-2012-StatsMatin\zip_matin\Stats_Matin_TEL_Appels_20120927.csv

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     long_chemin = InStrRev(Worksheets("Parametrage").Range("D1"), Chr(92))                  'Me donne la position du dernier slash
    chemin_zip = Left(Worksheets("Parametrage").Range("D1"), long_chemin - 1)               'Me donne le chemin du repertoire distant
    'nom_fichier = Trim(Mid(Worksheets("Parametrage").Range("D1"), long_chemin + 1, 100))   'Me donne le nom du fichier
    'fichier 1
    nom_fichier = Trim(Mid(Worksheets("Parametrage").Range("D1"), long_chemin + 1, 100))    'Me donne le nom du fichier
    FileCopy Worksheets("Parametrage").Range("D1"), chemin_zip & "\tmp\" & nom_fichierMerci par avance de vos réponses
    Sur mon 2010 c’a fonctionne et ailleurs non, et pas de référence manquante !

    Merci de votre aide,

    Henri

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suppose que tu as utilisé le débogueur.
    A quelle ligne se situe le problème ?
    A la ligne 2 avec l'instruction Left ou à la ligne 5 avec Mid.
    A propos de l'instruction Mid une petite remarque et le problème vient peut-être de là si le nombre de caractères du chemin + non de fichier est supérieur à 100 dans une des version il y aura un problème.
    L'instruction Mid dans VBA n'a pas tout à fait le même comportement que la formule Mid dans Excel
    Dans Excel, il faut préciser le nombre de caractères que l'on prend (3ème argument) alors que dans VBA, le 3ème argument est facultatif et prend tous les caractères qui suivent si ignoré. C'est bizarre mais voilà, les développeurs de chez Microsoft n'harmonise pas leurs produits (Comme OuiNon dans Access au lieu de SI).
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 237
    Par défaut
    Bien sûr j’ai utilisé le débugger et je me casse les dents sur le premier Mid(xxx trouv, mais si c’a avait été un Right ou un left, j’aurai eu le même problème,
    Bien plus surprenant encore, quand je fais F2 dans l’environnement de dev VBA je retrouve bien ces fonctions et je peux les remplacer par ce que j’avais écrit à la main
    Comme je le dis plus haut, mid, rigth et left me font le même problème, sous 2007 et 2003 et pas mon 2010

    J’ai 1300 lignes dans mon module et j’utilise ces fonctions une vingtaine de fois
    Quand j’ecris 100 dans << Trim(Mid(Worksheets("Parametrage").Range("D1"), long_chemin + 1, 100)) >> c’est pour avoir de la marge, alors que c’a ne dépasse pas 30 char, et c’est pour ça que j’ai mis un trim devant,

    A suivre !

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Alors je ne comprends pas. Comme je l'ai précisé dans mon premier post, j'ai beaucoup de procédures qui tourne avec ces fonctions aussi bien en 2003, qu'en 2007 et 2010. Par contre toutes mes versions sont en 32 bits, je ne sais pas si c'est le cas chez toi.
    Qu'est-ce qui ne vas pas en fait, il coupe plus de caractères dans une version que dans l'autre ?
    Y a-t-il un message d'erreur ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    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
    Citation Envoyé par Henri-gp Voir le message
    Il me demande de vérifier les références, et elles sont pourtant toutes bien là

    Bonjour,

    Le souci n'est pas celles qui sont là mais celles qui seraient manquantes, donc dans outils Références, si tu as sur le poste xx des références manquantes, décoches les ! C'est une des raisons de ce phénomène....

    cordialement,

    Didier

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

Discussions similaires

  1. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09
  2. La fonction eye (512*512) ne fonctionne pas
    Par Verboz dans le forum MATLAB
    Réponses: 6
    Dernier message: 01/03/2007, 00h26
  3. La fonction "source" de MySQL ne fonctionne pas
    Par muad'dib dans le forum JDBC
    Réponses: 14
    Dernier message: 15/01/2007, 17h25
  4. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  5. fonctions remove et rename ne fonctionnent pas ?
    Par FamiDoo dans le forum MFC
    Réponses: 29
    Dernier message: 30/06/2006, 17h02

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