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 :

Nom de fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut Nom de fichier
    Bonsoir à tous et à toutes

    Tite question:

    Je débute complet en vba et je cale sur un truc !!!

    J'ouvre un fichier en passant par une saisie InputBox. Comment s’appelle ensuite ce fichier ? pour lui donner une instruction de type close (Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False
    Le second fichier est this workbook ( ça pas de pb il reste actif dans mon code, mais après un copy paste je veux fermer le premier mais je ne sais pas comment il est "nommé"



    Un extrait du code en question:

    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
    26
    27
        Dim Datee As String, Repert As String
     
     
        Repert = "C:\Users\xxxxx\Desktop\xxx-xxx\Maj MOP xp\Macro 3\IDO\Donnees plan IDO "
     
     
        Datee = Application.InputBox(prompt:="Entrez la date", Type:=2)
            If Datee > "" Then
     
     
        If Not (Dir$(Repert & Datee & ".xls", vbDirectory) = "") Then
     
     
        Workbooks.Open Filename:=Repert & Datee & ".xls", UpdateLinks:=0, ReadOnly:=0, IgnoreReadOnlyRecommended:=True
     
     
        Else
     
     
        MsgBox "Fichier " & Repert & Datee & ".xls" & " non trouvé"
     
     
        End If
     
        End If
     
    (Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False   ' --> c'est la que ca plante
    Merci de vos lumières lumineuses lol
      0  0

  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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quelle est la question ?
    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
      0  0

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Comment s’appelle ensuite ce fichier ? pour lui donner une instruction de type close (Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False
    Le second fichier est this workbook ( ça pas de pb il reste actif dans mon code, mais après un copy paste je veux fermer le premier mais je ne sais pas comment il est "nommé"
      0  0

  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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Lorsque tu ouvres un fichier, en principe tu connais son nom. Non ?
    Sinon comment aurais-tu pu l'ouvrir ?
    Le second fichier est this workbook ( ça pas de pb il reste actif dans mon code
    Petite remarque, ton second fichier ce n'est certainement pas this workbook mais ThisWorkbook
    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
      0  0

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Bonjour,

    Oui pour le second fichier ThisWorkbook. Juste mal saisi de ma part mais en effet, restons précis.

    Ce que je cherche c'est la manière de le nommer en utilisant mes variables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False
    --> vu que je l'ouvre avec une InputBox, je dois ensuite le fermer mais le code plante surement a cause la parti en gras...
      0  0

  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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je doute que tu aies réussis à ouvrir le fichier car à mon avis entre Repert et Datee il manque le slash inversé "\"

    J'ai des doutes également avec le résultat renvoyé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not (Dir$(Repert & Datee & ".xls", vbDirectory) = "") Then
    n'es-tu pas sensé rechercher un fichier ?
    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
      0  0

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Je remets le code en entier pour plus de lisibilité:

    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
    26
    27
    Dim Datee As String, Repert As String
     
     
    Repert = "C:\Users\xxxxx\Desktop\xxx-xxx\Maj MOP xp\Macro 3\IDO\Donnees plan IDO "
     
     
    Datee = Application.InputBox(prompt:="Entrez la date", Type:=2)
    If Datee > "" Then
     
     
    If Not (Dir$(Repert & Datee & ".xls", vbDirectory) = "") Then
     
     
    Workbooks.Open Filename:=Repert & Datee & ".xls", UpdateLinks:=0, ReadOnly:=0, IgnoreReadOnlyRecommended:=True
     
     
    Else
     
     
    MsgBox "Fichier " & Repert & Datee & ".xls" & " non trouvé"
     
     
    End If
     
    End If
     
    (Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False

    Je confirme que le fichier s'ouvre, il y a une suite au code avec un copy/paste ... et pour l'instannt ça roule !!

    Pour : If Not (Dir$(Repert & Datee & ".xls", vbDirectory) = "") Then J'avoue que je connais pas trop.Il me semble que ça sert si il ne trouve pas le fichier. mais mon problème est pour fermer le fichier ouvert avec l'InputBox: je ne sais pas comment le nommer avec repert et Datee pour une instruction Close

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False
    C'est ici que ça bug
      0  0

  8. #8
    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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avant de continuer, merci de placer ton code entre les balises prévues à cet effet (le code entre les croisillons #)
    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
      0  0

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu déclares une variable de type Workbook.
    Lorsque tu fais ton Open, tu places la référence du fichier ouvert dans cette variable avec un Set.
    Pour fermer ce fichier, tu appliques ton Close à cette variable.

    Et tu n'oublies pas de vider ensuite la variable avec un Set ... = Nothing.
      0  0

  10. #10
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Alors pour les croisillons je savais pas, et pour la suite c'est du chinois pour moi
    Je vois pas comment écrire:

    Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False --> c'est juste le "nom" que je n'arrive pas à "écrire" correctement ...
      0  0

  11. #11
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Mocmoc38 Voir le message
    #Workbooks(Repert & Datee & ".xls").Close SaveChanges:=False# --> c'est juste le "nom" que je n'arrive pas à "écrire" correctement ...
    Ce n'est pas comme ça qu'il faut procéder.
    Voir ma réponse précédente.
      0  0

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Bonjour à tous,

    J'ai finalement contourné le pb en insérant ma macro directement dans mon fichier source !

    Seconde étape: pas facile à expliquer

    A partir d'un fichier du type:

    CLIENT Cde n° Tour
    Villabe Stock 67731 1007
    Villabe Stock 67732 1007
    Villabe Stock 67733 1007
    Villabe Stock 67734 1007
    Portugal 67747 1080
    Portugal 67748 2080
    Portugal 67749 2080
    Espagne 67750 1400
    Espagne 67751 1400
    France 67752 1760
    France 67753 2760
    France 67754 2760
    France 67759 3760

    j’exécute un code pour copier la colonne C en D puis "suppr" doublons pour obtenir

    1007
    1080
    2080
    1400
    1760
    2760
    3760

    Ma question: Comment faire pour sélectionner (taille variable), copier et coller sur un autre onglet les données de la colonne B, par "tour"
      0  0

  13. #13
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Mocmoc38 Voir le message
    Comment faire pour sélectionner (taille variable)
    Solution simple : traiter toute la colonne.
    Par exemple, pour la colonne B : Columns("B")

    copier et coller sur un autre onglet les données de la colonne B,
    Copier avec Copy https://msdn.microsoft.com/fr-fr/lib...0(v=office.15)
    Coller avec PasteSpecial https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    par "tour"
    Je ne comprends pas.
      0  0

  14. #14
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Bonjour à tous
    Je voudrais joindre un fichier via Cjoint.com mais je vois qu'il y a un weight limit à 15 Mo. Mon fichier fais 35 ???
      0  0

  15. #15
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Mocmoc38 Voir le message
    Je voudrais joindre un fichier via Cjoint.com mais je vois qu'il y a un weight limit à 15 Mo. Mon fichier fais 35 ???
    Pour info, beaucoup de participants à ce forum n'ouvrent pas les fichiers joints, surtout s'il viennent de liens externes au forum.
    Lire ceci : https://www.developpez.net/forums/d8...s-discussions/
      0  0

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2019
    Messages : 10
    Par défaut
    Bonsoir à tous

    je vais essayer de m'expliquer par étape:

    de A1 à A8: liste de pays d'Europe (Ex: france france france france france espagne espagne grece ...)
    conne b des valeurs
    de C1 à C8 des villes( Ex: paris bordeaux rennes strasbourg roanne madrid valladolid mikonos)

    (le nb de pays et de capitales sont variables)

    mon besoin: copier les valeurs par villes dans une matrice feuil2 jusquà ce que plus de ville...
      0  0

  17. #17
    Membre éprouvé
    Homme Profil pro
    Comptable
    Inscrit en
    Novembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Novembre 2018
    Messages : 100
    Par défaut
    Bonjour Mocmoc,

    Je t'invite à ouvrir une nouvelle discussion et résoudre ce fil de discussion si tu as eu ta réponse concernant le "nom de fichier"

    Concernant ta nouvelle demande n'hésite pas à mettre une copie écran de ton tableau, et du résultat attendu. Cela aidera les membres à être pertinent sur les réponses.

    A+
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Récupérer le nom du fichier spool correspondant à un job
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 23/02/2004, 20h28
  3. Réponses: 2
    Dernier message: 29/01/2004, 11h05
  4. Réponses: 4
    Dernier message: 10/10/2003, 18h04
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21

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