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 enregistrer sous le format PDF


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut Problème enregistrer sous le format PDF
    Bonjour, j'ai un problème, j'ai fait un bouton enregistrer, et j'enregistre la feuille 2 au format pdf mais j'ai 2 images, la première est de la ligne 1 à 5 pour la largeur et en longueur c'est A et une partie de B et j'ai aussi du texte dans l'autre partie de B. L'autre image est de la ligne 22 à 23 pour la largeur et en longueur une partie de B et une partie de C. Ces deux images ne sont pas bien placées dans le pdf, elle recouvrent le texte.
    Voici le code de la macro :

    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
     
     
    Sub Enregistrer()
     
        Dim i As Long
        With Sheets("feuil2")
            i = .Range("c" & .Rows.Count).End(xlUp).Row
            .Range("A1:F" & i).ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:="C:\boncommande.pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        End With
     
    End Sub
    J'ai joint le document excel sans les photos et le pdf généré, l'image du haut recouvre le texte et l'autre image n'est pas à la bonne place.
    Merci

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut pour to impression
    a tu penser a faire une mise en page avant d'imprimer
    car tres souvent je ne sais pas pourquoi le fichier dans l'appercu est a plus de 100% de sa taille normale
    fait sauter toute les marges aussi
    apres tu vois si tu dois parametrer les marges
    pour ma part j'ai exel 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub IMPRESSION_Click()
    'cette macro imprime la feuille en cour
    ThisWorkbook.Sheets(Sheets.Count).PrintOut
    voila si sa peut t'aider
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    La mise en page pour imprimer est bonne dans excel, je l'ai paramétré, je n'ai pas fait de bouton pour imprimer, je vais garder ton code de côté si l'utilisateur me demande un bouton pour imprimer. Merci. Pour mon problème, je veux enregistrer la feuille 2 au format PDF pour faire une sauvegarde de tous les bons de commandes mais les images ne sont pas bien placées

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re:
    ok rebonjour
    effectivement ma reponse etait un peu a coté hi hi hi!!!
    mille excuse
    vu le code que tu a mis un peu plus haut tu a du installer la mise a jour office "save as pdf" quelque chose comme ca
    alors
    tu a sur la fenetre qui s'ouvre quand tu sauve manuellement en pdf en bas a droite les parametre
    tu devrait regarder par la j'ai eu le meme probleme
    tu decoche tout et ca devrai etre bon
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Re, ce n'est pas grave. Oui, je peux faire du pdf avec ma version. En décochant tout dans option lorsque l'on enregistre sous pdf et rien ne change, les images sont toujours mal placées. Si tu veux dans le fichier excel elles sont sur plusieurs lignes pas loin du texte et cela fait ce qui est dans le fichier pdf joint à mon premier poste.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    ok je viens de regarder plus pres
    je viens de trouver l'erreur
    tu utilise la recherche dela derniere ligne utilisée pour determiner ce que tu dois imprimer
    le probleme c'est que entre A1 et le bas il y a plusieurs lignes vide ""bug""""
    hors je suppose que tu veux imprimer la page tout simplement (en pdf ou autre)


    essaie plutot ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sheets("feuil2").Select
     
     Dim sNom As String
     
        sNom = Application.UserName
     
    nomin = "bon de commande"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "C:\Users\" & sNom & "\Desktop\" & nomin, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False

    et en plus ca va te le placer sur le bureau donc accesible plus vite
    voila

    maintenant vu le format de ta page je vois pas trop bien ou ce placent tes deux images d'autant plus qu'elles ne sont pas présentes dans ton classeur
    j'ai cependant recupéré avec l'outil de capture de vista les deux images dans le pdf que tu a déposé je l'es ai placé a plusieurs endroit dans le feuil2 et a la sortie en pdf il sont a leur place avec mon code

    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    L'image du haut qui est la plus grande est mise à partir de la ligne 1 à ligne 5 sur A et B. Et la plus petite est mise à partir de la ligne 22 à la ligne 23 sur B et C et j'ai toujours le même problème même avec ton code. Je suis sous xp pro. Le pdf est une copie qui pourras resservir si on recherche le bon de commande. J'avais pensé le faire en xsl mais le problème c'est que je ne veux pas garder la feuille 1 et le fichier est renomé automatiquement dans excel. Désolé s'il n'y avait pas les images dans le fichier xsl mais c'était trop volumineux pour le transférer.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re:
    wouawhhhou
    la ca devient mistique voila ce que j'obtien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    ok, oui, c'est mistique, voici ce que j'obtiens

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    ok voila puisque ton but et finalement de sauvegarder une copie de la feuil2
    je te propose carement de sauver la feuille sous un autre nom et rien que la feuille 2 toujour sur le bureau maintenant tu peut toujour changer la destination
    voila essaie ca
    on jouera les ghost busters plus tard

    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
     
     
    sub sauvegardecommande
     'la tu determine le sufix du nom de destination fichier
     
    nom = Range("c2").Value
     
    ''la tu determine le nom d'utilisateur de la becane de cette
    ' maniere tu peut travailler sur nimporte quels ordi, ca marche
     
     
    Destination = Application.UserName
     
    'la tu selectionne le feuillet a reproduire
     
      Sheets("Feuil2").Select
        Sheets("Feuil2").Copy
     
     'et en voiture simone 
     
     
        ActiveWorkbook.SaveAs Filename:="C:\Users\" & Destination & "\Desktop\bon de comande" & nom & ".xlsx" _
            , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    End Sub
    tu peux ajouter aussi "ton bouton".visible=false avant l'enregistrement de ton fichier
    de maniere a ne pas le retrouver dans ta copie

    tu te retrouve avec un classeur ne pocedant q'une seule feuille nomée bon de command (et ce q'il y a dans c2) tu peut changer c2 si tu veux
    je vais quand meme regarder pour le pdf
    dis moi si cette solution te conviens
    voila voilou

    j'ai oublié quelque chose
    voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     sub enregistrercommande
    Application.DisplayAlerts = False
      Dim Nom As String
    et oui sinon les fenetres windows de confirmation!!!!

    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Merci mais pour le bouton j'ai pas très bien compris, je sais qu'il s'appel Button 491 car j'ai utilisé l'enregistreur de macro pour avoir le nom et essayé de mettre ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.Shapes("Button 491").Select
    Selection.Delete
    Mais cela ne fonctionne pas

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re: pour ton bouton
    il ne faut pas metre d'espace dans les nom de bouton ou fonction en VBA(a ne pas oublier quand tu ecris un code!!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     ActiveSheet.Shapes("Button491").Select
    Selection.Delete
    je viens d'essayer ca marche

    voili voilou
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    ok, merci, j'ai fait autrement, voici ce que j'ai fait car le bouton n'est pas nommé pareil dans la nouvelle feuille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Windows("bon de comande" & Nom & ".xlsx").Activate
    ActiveSheet.Shapes("Button 1").Select
    Selection.Delete
    ActiveWorkbook.Save
    ActiveWorkbook.Close

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    juste avant le "end sub"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'ferme le classeur
    ActiveWorkbook.Close
    'ferme exel
    Application.Quit
    la tu quitte tout et tu a ton nouveau casseur "bon de commande et "ce qu'il y a dans le c2" sur ton bureau
    quand tu réouvrira "tarif" il sera tout neuf

    donne des nouvelles si sa a abouti et n'oublie pas ""resolu" si c'est le cas

    voili voilou

    tu n'a pas du metre la fonction d'efacement du bouton au bon endroit
    car normalement il est inexistant dans le classeur obtenu sur ton bureau
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    ok, non je ne ferme pas excel car j'ai un bouton initialiser car le fichier doit rester ouvert car il est réutilisé après. Merci. Par contre j'ai mis xls pour l'enregistrement car c'est pas sûr que l'utilisateur utilise excel 2007

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re pour le bouton
    ok mais si tu fais comme ca tu suprime le bouton du classeur initial comment fait tu pour t'en reservir apres

    ton bouton initialization reconstruit le bouton??
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Non, je supprime le bouton de la copie, pas celui du document utilisé, j'ai mis le code après le saveas

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re ca yest j'ai trouver c'est tout bete
    apres (active workbook.close)tu met "button491.visible=true"

    mais n'utilise pas la fonction delete plutot ("true ou false")
    de cette maniere le bouton n'est pas copié dans la sauvegarde puisque (false)
    et apres fermeture du nouveau fichier il reaparait

    voila je pense que c'est mieux et moins lourd que les (select ou activate) donc plus rapide

    voili voilou
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    ok, merci, je mets résolu. Bonne nuit

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    ce n'est pas grave si j'ai mis en extension xls car je ne sais pas si les utilisateurs utilisent excel 2007

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Enregistrer sous un format CSV, un tableau
    Par Yokooo dans le forum Documents
    Réponses: 1
    Dernier message: 15/04/2010, 09h54
  2. [P-07] Enregistrer sous un format qui accepte les macros
    Par janobrasil dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 01/11/2008, 10h49
  3. Problème Enregistrer-sous OleExcel
    Par aliboubou dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2008, 11h51
  4. [VBA-W]Enregistrer sous au format excel un document Word
    Par tazamorte dans le forum VBA Word
    Réponses: 3
    Dernier message: 20/03/2007, 22h03
  5. [W3C] Type MIME, problème "enregistrer sous"
    Par spikelille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/01/2006, 17h13

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