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 :

Problème de répertoire dans Excel [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut Problème de répertoire dans Excel
    Bonjour,

    Je suis actuellement sur un cas que je n'arrive pas à expliquer, dans un classeur Excel.
    Le contexte est le suivant :
    1 fichier A créé, à partir d'un autre fichier modèle BModèle, plusieurs fichiers B.
    Chaque fichier B est utilisé sur un poste différent, sous une version d'Excel et Windows différents (environ 130 fichiers utilisés) et ce, depuis quelques années, à l'intérieur desquels j'enregistre des adresses de fichiers pour récupérer des données.

    Aujourd'hui, j'ai 1 fichier B pour qui, les adresses de répertoires sont converties de la manière suivante :
    Adresse à copier : \\192.1.1.1\x\y\z.txt
    Adresse affichée dans la cellule : \192.1.1.1\x\y\z.txt
    Adresse affichée dans la barre de formule : '\192.1.1.1\x\y\z.txt ou \\192.1.1.1\x\y\z.txt

    Le problème étant que dans la donnée finale que je récupère est du format : \192.1.1.1\x\y\z.txt. De ce fait, le répertoire n'existe pas...

    Auriez-vous une idée de la source du problème ?

    Cordialement,

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    bonjour

    aurais tu le code qui execute ce que tu decris ?

    david

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    utilises tu ceci comme code pour récupérer ton chemin ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    répertoire = ActiveWorkbook.Path
        Fichier = Mid(ActiveWorkbook.Name, 1, InStrRev(ActiveWorkbook.Name, ".") - 1)
    range("a1")=répertoire & "/" & Fichier

  4. #4
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Bonjour,

    Merci pour l'intérêt que tu portes sur le sujet.

    Je ne pense pas que cela vienne du code, car j'ai plus de 130 fichiers qui utilises ce code, cette semaine et là, j'en ai qu'un avec ce cas. D'autant plus que lorsque je fais la manipulation manuellement, la conversion est faite également.

    Sinon, le code est le suivant (version très simplifiée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     ' Lecture de l'information dans Excel
    sub test
    If ExistFile(activesheet.Cells(1, 1).Offset(0, 1)) Then
    msgbox "Hello"
    end if
    end sub
     
    Function ExistFile(strFile As String, Optional strMessage As String = "", Optional strTitle As String = "", Optional bMessage As Boolean = True) As Boolean
        If strMessage = "" Then strMessage = "Le fichier suivant n'existe pas ou est mal renseigné : #ReplacestrFile#"
        If strTitle = "" Then strTitle = "Mercuriale - Erreur"
        Dim objFSO  As Object
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        If objFSO.fileexists(strFile) = True Then
            ExistFile = True
        Else
            ExistFile = False
            If bMessage Then MsgBox Replace(strMessage, "#ReplacestrFile#", strFile), vbExclamation, strTitle
        End If
        Set objFSO = Nothing
    End Function
     
    ' Ecriture de l'information dans Excel
    sub Alpha()
    activecell.Value = tabImport(1, 3) ' tabImport est de Type variant
    end sub
    Il s'agit d'informations que je récupère depuis un fichier Txt, que j'importe dans Excel.

    Cordialement,

  5. #5
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Non, c'est un chemin inscrit dans une cellule Excel.
    Elle renseigne l'emplacement, sur le réseau utilisé, d'un fichier Txt.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    désolé
    cela dépasse mes compétences.....

  7. #7
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Les miennes aussi pour le coup xd

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Comment le nom du fichier arrive-t-il dans la cellule? C'est ce code-là qui est intéressant.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    un fichier ouvert n'importe où ou bien un poste précis ?
    Je pensais éventuellement au correcteur orthographique à contrôler.
    eric

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    C'est lié à une cellule bien précise?

    Si tu saisis ce texte dans une autre cellule de la feuille, d'une autre feuille, d'un autre classeur, ... le phénomène est le même?

    Est-ce toujours avec le même nom de fichier ou est-ce aléatoire?
    As-tu un xlam actif? As-tu des compléments installés qui te semblent douteux?

    Sais-tu mettre le fichier qui pose problème en pièce jointe?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Non, c'est lié à tout le classeur et je commence à penser que d'autres classeurs vont avoir le même problème sur le poste en question.

    Pour vous donner une idée de ce qu'il se passe, vous avez ci-dessous des impressions écrans exemple (en saisie manuelle) :
    Intégration du chemin (saisie normale) :
    Nom : img01.png
Affichages : 154
Taille : 54,0 Ko

    Suppression du lien hypertexte :
    Nom : img02.png
Affichages : 141
Taille : 18,5 Ko

    Vous pourrez, du coup, noter la différence entre la valeur de la cellule et la valeur affichée. Le code me retourne la valeur affichée et le format de la cellule n'y change rien du tout.

    Cordialement,

    Gaëtan

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ton illustration montre que la valeur de la cellule commence bien par \\ (barre de formule)
    Ce qui est affiché dans la cellule dépend du format de ladite cellule mais n'impacte pas la valeur, qui est ce qui sera utilisé par VBA. Du coup, je ne comprends pas comment tu récupères une valeur avec un seul \

    A toutes fins utiles, utilise plutôt la propriété .Value de la cellule dans le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ExistFile(activesheet.Cells(1, 1).Offset(0, 1)).Value
    Et vérifie en pas-à-pas ce qui est réellement passé à ta fonction ExistFile

    Question subsidiaire: Il semble que ce soit l'ajout puis la suppression du lien hypertexte qui transforme la valeur => pourquoi supprimer le lien hypertexte? De mon côté, je n'ai pas cette bizarrerie lors de la saisie du chemin. Le lien hypertexte est bien affiché avec les deux \ dans la cellule également.

    Si le chemin est envoyé par code dans la cellule, il n'y a pas de lien hypertexte créé et, forcément, la valeur correspond à ce qui est envoyé.

    Question: As-tu une fonction/procédure qui ajoute le lien lors de l'affectation du nom de fichier à la cellule?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Bonjour,

    En fait, l'exemple que je vous ai montré n'est qu'un exemple.
    La récupération du chemin vient ma procédure habituelle (issue d'un txt passé dans un tableau numérique etc) ne mets pas de lien hypertexte.

    J'ai testé le range, le range.text, le range.value et il me ressort avec un seul "\". Et le format appliqué est de type standard ou texte, ne change rien non plus.

    Ma fonction ExistFile est basée sur une valeur de type Texte. C'est donc cette valeur qui influence toute la fonction et celle-ci est incohérente par rapport à ce que je souhaite avoir.

    Je comprends bien qu'il y a une différence entre la valeur affichée et la valeur réelle et c'est bien ce qui me pose problème. Il me récupère une valeur affichée et me corrige une valeur réelle.

    En fait, pour moi, cela ne vient pas du code lui-même mais d'Excel associé au poste directement. Sinon, j'aurais déjà eu 150 mails me disant que ça ne fonctionne pas.

    Je vais appliquer le mini correctif sur le nom du fichier à sa lecture. C'est une solution que je n'aime pas trop mais à l'état actuel des choses, je n'ai pas vraiment le choix...

    Cordialement,

    EDIT : Je n'ai pas précisé mais non, je ne peux pas fournir le fichier en question car il s'agit de données sensibles pour l'entreprise en question.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    quelle est la version d'excel ?
    le problème ne serait il pas apparu après les fameuses mise à jour windows ?
    si je resume
    si tu prends ta valeur que tu colles dans ton explorateur windows, il trouve le répertoire
    si tu le fais directement depuis excel, il te mets game over ?

  15. #15
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Ma valeur issue du Txt est correcte. Elle trouvera le répertoire et même mieux, le Txt associé.

    C'est une version 2013 ou 2016 d'Excel sous W7.

    Je ne suis pas au courant des dernières Windows mais je serais surpris que cela vienne de là.

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu pourrais essayer le code suivant en remplaçant a1 par l'adresse de cellule qui pose problème et \\192.1.1.1\x\y\z.txt par le nom du fichier qui pose problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RAnge("a1").value = "\\192.1.1.1\x\y\z.txt"
    et voir ce qui se passe
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    tu es sûr d'avoir bien contrôlé le correcteur orthographique sur le poste ?
    Dans les 'Vérification / Options de correction... / Correction automatique' saisir \\ dans Remplacer: et regarde si Par: ne se remplit pas avec \.
    Idem pour 'Vérification / Options de correction... / AutoMath'

    L'utilisateur n'a-t-il pas installé un utilitaire externe pouvant avoir cet effet là ?
    eric ?

  18. #18
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Eric,

    Oui, j'ai fait la vérification 2 fois mais rien qui ne concerne "\".

    En fait, en faisant le test conseillé par Pierre, je me suis rendu compte qu'un format était appliqué sur le poste au moment de l'écriture des informations : le format Alignement Horizontal = Recopié.
    L'affichage bizarre qu'il y a s'explique à cause de cela (et je suspecte que cela affecte la donnée elle-même ou alors il y a 2 actions Excel qui s'appliquent en même temps).

    Bref, comme solution, je vais rajouter une apostrophe dans les chemins. Excel semble traiter le format correctement (gauche retrait) et sûrement la donnée aussi.

    merci pour vos pistes !

    Cordialement,

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    776
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 776
    Par défaut
    Vive les macros mulipostes
    😁

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

Discussions similaires

  1. Problème de xlCellTypeLastCell dans Excel
    Par nicovoa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/01/2007, 21h10
  2. problème de date dans excel via vba.
    Par Bourezak dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/12/2006, 13h39
  3. Problème de tri dans excel
    Par fabou3377 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/10/2006, 06h20
  4. PRoblème de formule dans Excel
    Par jbidou88 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2006, 09h35
  5. Problème Visual Basic dans excel
    Par munited36 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/12/2005, 12h55

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