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 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 : 48
    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 émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    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
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 755
    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 : 12 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    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
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    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 : 194
Taille : 8,9 Ko


    Nom : 2019-12-10_122116.png
Affichages : 198
Taille : 1,5 Ko
    "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...
    ---------------

  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 : 48
    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 : 48
    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 habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    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 : 151
    Points : 185
    Points
    185
    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 chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    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 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
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    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 : 151
    Points : 185
    Points
    185
    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, 10h03
  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, 17h14
  3. Réponses: 1
    Dernier message: 11/05/2010, 04h22
  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, 17h33
  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, 11h33

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