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 code VBA sur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2017
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Problème code VBA sur Excel
    Bonjour,

    Je ne comprends pas car mon code ne fonctionne plus. Il a fonctionné au début mais d'un coup il ne veut plus...

    Est-ce que quelqu'un peut m'aider à comprendre ?

    Merci

    Matrice facture (MDP_Forever2019) v1.xlsm

  2. #2
    Membre expérimenté Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 1 030
    Points : 1 573
    Points
    1 573
    Par défaut
    Voici votre code corrigé (Voir fichier en annexe):

    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
    Sub EnregistreFacture()
     
        'Déclaration des variables
        Dim NomDossier As String
        Dim CheminDossier As String
     
     
        'Nom de dossier
        'Utilisez plutôt "Nom du fichier" car "dossier" fait allusion à un répertoire (ou chemin)
        NomDossier = Application.InputBox("Nom du fichier :", "Fichier")
        CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients\2019" & NomDossier & "\"
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier & "Facture_" & Range("H4").Value & " - " & Range("C12").Value & ".pdf", quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, to:=1, openafterpublish:=True
     
        'On réinitialise et on incrémente le numéro de la facture
        With Sheets("Facture 2019") 'Le nom de votre feuille était "Facture", alors qu'elle s'appelle "Facture 2019"
            .Range("C12:C15").ClearContents 'Si les cellules sont fusionnées, cette opération ne fonctionnera pas.
            .Range("B19:F41").ClearContents
            .Range("H4").Value = .Range("H4").Value + 1
        End With
     
    End Sub
    Fichiers attachés Fichiers attachés

  3. #3
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    9 339
    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 : 9 339
    Points : 22 205
    Points
    22 205
    Billets dans le blog
    17
    Par défaut
    Bonjour,
    Si je puis me permettre, il faut éviter de "hardcoder" des chemins, nom de ficher à sauver, etc. comme par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients\2019" & NomDossier & "\"
    En privilégiant, une feuille contenant les paramètres (ou éventuellement fichier INI), on rend pérenne l'application.
    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
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Salut

    100% d'accord avec Philippe

    On nomme les plages, et on utilise les plages nommées dans le code.

    Nom : 2019-12-10_122034.png
Affichages : 42
Taille : 8,9 Ko


    Nom : 2019-12-10_122116.png
Affichages : 41
Taille : 1,5 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2017
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Désolé de vous répondre à cette heure. Merci à vous d'avoir répondu. Mais je suis vraiment débutant et vous m'avez déjà perdu


    Mais j'ai toujours la même erreur :

    capture ecran 2.docx

    capture écran.docx

    Est-ce que je fais mal quelque chose ?

    Quand je clique sur le bouton, le pop up s'ouvre, je lui met "decembre", le dossier de destination du pdf. Et du coup, j'ai l'erreur...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2017
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé, c'est à priori parcque j'ai rajouté "2019" à la fin de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients\2019" & NomDossier & "\"

    Mais je ne comprends pas pourquoi, si quelqu'un peut m'expliquer ?

  7. #7
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    septembre 2019
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : septembre 2019
    Messages : 94
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    est-ce que le répertoire 2019NomDossier existe ?
    je ne crois pas,

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Citation Envoyé par cyrpio Voir le message
    Mais je ne comprends pas pourquoi, si quelqu'un peut m'expliquer ?
    "Je ne comprends pas pourquoi"... C'est toi qui a mis 2019 à la fin du chemin, puisque ce chemin est en dur dans ton code. Dès lors, nous saurions difficilement t'expliquer pourquoi tu as mis 2019 à la fin du chemin? Ta variable doit contenir le chemin exact du dossier dans lequel tu vas déposer ton fichier. C'est à toi de vérifier que ce que tu passes à ta variable est correct.

    Une bonne façon de s'assurer de cela est d'ouvrir ton explorateur, d'aller sur le dossier concerné, et de copier l'adresse affichée dans la barre d'adresse. Tu la colles dans ton code sur la ligne de la valorisation de la variable, entre guillemets
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2017
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'avais bien créé le dossier 2019, j'avais fait un copier /coller du chemin dans le code, c'est pour ça que je ne comprends pas.

    J'ai modifié le code en finissant par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients 2019\" & NomDossier & "\"
    Et là, tout fonctionne.

    Donc c'est résolu mais sans comprendre.

    Tant pis, merci à tous pour m'avoir aider.

  10. #10
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    septembre 2019
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : septembre 2019
    Messages : 94
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    le code (Factures clients et rattaché avec 2019)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients 2019\" & NomDossier & "\"


    n'est pas identique à celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminDossier = "C:\Users\Cyril\Documents\Audrey\Forever\Factures\Factures clients\2019" & NomDossier & "\"
    et ici 2019 est rattaché avec NomDossier

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

Discussions similaires

  1. [XL-2007] Problème code VBA depuis excel pour générer un document word publiposté
    Par stechet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/02/2015, 11h03
  2. [XL-2003] Aide sur code VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2013, 18h14
  3. Réponses: 1
    Dernier message: 11/05/2010, 05h22
  4. Problème Code VBA, ajout non désiré sur bouton
    Par vivicente dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/06/2008, 18h33
  5. Test de code VBA sur différentes versions d'Excel
    Par Fala fala dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2008, 12h33

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