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

VBA Discussion :

Script avec GetAbsolutePathName : un coup oui (bof), un coup non !


Sujet :

VBA

  1. #21
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Ben, je te conseillerais d'arrêter d'insister à utiliser ce qui a un autre usage et de te tourner vers
    qui conviendra nettement mieux pour ce que tu veux.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  2. #22
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    je te conseillerais d'arrêter d'insister à utiliser ce qui a un autre usage
    Ce qui reviendrait à dire qu'on ne peut pas utiliser certaines fonctions VBS dans une procédure VBA ?
    Merci de confirmer.
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #23
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Jipété
    Ce qui reviendrait à dire qu'on ne peut pas utiliser certaines fonctions VBS dans une procédure VBA ?
    Merci de confirmer.
    --
    Jean-Pierre
    non la fonction VBS "fonctionne" trés bien elle renvoi le répertoire du fichier qu'on lui donne en paramétre...! ici "mes documents\.."

    En VBA excel c'est le cas pour n'importe qu'elle fonction, pour laquelle tu donne en paramétre un nom de fichier dont le répertoire n'est pas précisé ou en "relatif".. ( relatif à la position courante..)
    ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox dir( "test.xls")
    ne te renverra test.xls , que si un fichier de ce nom existe sous le répertoire courant !

    (sachant que la valeur par défaut du répertoire courant est défini dans les options d'excel.. et celui-ci peu être changé grâce au commande ChDir ou ChDrive.. où par exemple lors de l'ouverture d'un fichier excel grâce au boîte de dialogue standard....)

  4. #24
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Jipété
    Ce qui reviendrait à dire qu'on ne peut pas utiliser certaines fonctions VBS dans une procédure VBA ?
    Merci de confirmer.
    --
    Jean-Pierre
    Si, on peut...

    On peut aussi passer par le standard de New York pour téléphoner de Paris à Asnières.

    On peut.
    Mais quand il existe plus adapté, pourquoi chercher à se compliquer la vie?

    De plus, bbil te donne la réponse.
    Tu donnes un nom de fichier sans chemin, ce qui équivaut à un chemin relatif.
    Relatif à une valeur par défaut (puisque tu ne donnes rien).
    Il se fait que la valeur par défaut dans ce cas de figure est "Mes documents".

    Est-ce suffisamment clair?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #25
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Est-ce suffisamment clair?
    Tutafait, tutafait !

    Mais quand il existe plus adapté, pourquoi chercher à se compliquer la vie?
    Parce que je ne connaissais pas la méthode "plus adaptée", que je suis tombé sur celle dont on cause depuis le début, et qu'avec le nom qu'elle porte, je me suis dit que ça irait impec, d'autant plus qu'en VBS pur c'est OK.

    On peut aussi passer par le standard de New York pour téléphoner de Paris à Asnières.
    Ben vi, et c'es bien le principe de base de Saint Ternet, non ?
    En fait, tout est dit là :
    Tu donnes un nom de fichier sans chemin, ce qui équivaut à un chemin relatif.
    Relatif à une valeur par défaut (puisque tu ne donnes rien).
    Il se fait que la valeur par défaut dans ce cas de figure est "Mes documents".
    L'exemple en VBS ne précisait pas ce "détail", mais même si je précise un chemin, comme ça, :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFile = objFSO.GetFile(".\test.xls")
    , je gagne mon "Fichier introuvable" !
    Je me marre...
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #26
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Jipété
    ...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFile = objFSO.GetFile(".\test.xls")
    , je gagne mon "Fichier introuvable" !
    Je me marre...
    --
    Jean-Pierre
    JP il va falloir revoir les bases sur la notion de répertoire et chemin relatif...

    ".\Test.xls" ... si le répertoire courant est "C:\Documents and Settings\JP\Mes documents"
    pointe sur le fichier (inexistant) :
    "C:\Documents and Settings\JP\Test.xls"

    pour le bureau ... cela doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFile = objFSO.GetFile(".\bureau\test.xls")
    ...

  7. #27
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Salut !

    Je voudrais pas avoir l'air d'insister, mais...
    pour le bureau ... cela doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFile = objFSO.GetFile(".\bureau\test.xls")
    >>>>>> "Fichier introuvable" !

    Normal, à mon avis, puisque " .\ " ça veut dire " ici ", donc le "Bureau" si le fichier est sur le Bureau, et donc ta commande supposait un dossier "Bureau" sur le "Bureau" : elle ne pouvait pas fonctionner ! Elle aurait pu si ce dossier bureau avait été créé dans "Mes Documents". Manque de café, de bon matin ?,
    Pour qu'elle fonctionne, faut rajouter un point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFile = objFSO.GetFile("..\bureau\test.xls")
    puisque le Bureau est au même "niveau" que Mes Documents. Mais du coup ça n'est plus une "AbsolutePath".

    Allez, bonne journée,
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #28
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et au fait c'est quoi le problème...?

    oups j'ai oublié un . ... sinon : ".\" cela ne veut pas dire ici .. mais "répertoire courant" (d'ou même chanson .. lors du lancement d'excel par clic sur un .xls.. le répertoire courant est le répertoire par défaut défini dans les options générale d'excel.. donc "...mes documents")..

  9. #29
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    le répertoire courant est le répertoire par défaut défini dans les options (...)
    Et c'est bien ça que je reproche !

    Du coup, le répertoire "courant" n'est pas le répertoire en cours...

    À noter sur un Post-it et à coller sur le côté de l'écran !

    ".\" cela ne veut pas dire ici
    Pas d'accord du tout : ça fonctionne parfaitement bien en Delphi, dans une boîte DOS, en VBS pur, donc probablement en VB (pas testé), sous Linux ("./")...

    Bonne journée,
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #30
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Jipété
    Du coup, le répertoire "courant" n'est pas le répertoire en cours...
    en cours... dans ta tête!

    Je crois que tu t'entêtes à vouloir que VB devine ce que TU penses être le répertoire courant.

    Si tu veux que le répertoire courant soit celui du classeur que tu as ouvert, IL FAUT LE DIRE EXPLICITEMENT!
    Autrement dit, il faut utiliser ThisWorkbook.Path.

    Arrête de chercher des erreurs où il n'y en a pas.
    Ce n'est pas parce que VB ne "pense" pas comme toi que son comportement n'est pas normal.

    Si tu connais le DOS, je vais te donner un exemple que tu devrais comprendre.
    Si le prompt est
    C:\
    et que je tape la commande
    C:\unrepertoire\unexe.exe
    le répertoire courant sera toujours C:\ et pas C:\unrepertoire

    Dans un raccourci, il est possible de dire quel est le chemin de l'exécutable et quel est le chemin du répertoire par défaut pour cette application.
    C'est l'entrée "Démarrer dans" du raccourci.

    Tu comprends un peu mieux la notion?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. scripts avec XP
    Par Zetophe dans le forum Windows
    Réponses: 3
    Dernier message: 23/02/2006, 13h07
  2. Execution script avec option sur OVH
    Par guepe dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 15/01/2006, 15h54
  3. exemple de script avec autoloader
    Par djibril dans le forum Modules
    Réponses: 4
    Dernier message: 24/11/2005, 17h53
  4. Réponses: 4
    Dernier message: 02/11/2004, 15h18
  5. Script avec JOINTURE et CASE
    Par Labienus dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/02/2004, 09h40

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