Macro - Boutons imprimer et enregistrer dans le même dossier

plingx Messages postés 144 Statut Membre -  
plingx Messages postés 144 Statut Membre -
Bonjour,

Je n'y connais rien en macro, j'ai suivi 2 questions trouvé sur CCM et 2 tutos sur deux autres sites et je n'y comprend rien, ça ne marche jamais !

Je voudrais avoir un bouton qui enregistre l'onglet de mon fichier en pdf dans un dossier qui se trouve au même endroit que mon fichier exel.
Mais le pdf doit porter le nom de la cellule F4, et selon si la cellule E1 est "FACTURE" ou "DEVIS", l'enregistrer dans le dossier facture ou devis ...

Je fais ce document pour ma mère, je vais être honnête avec vous, je ne cherche pas a savoir le faire, je n'en aurait plus jamais l'utilité et sans pratique, j'oublierai.

Merci pour votre aide

7 réponses

  1. julia Namor Messages postés 532 Statut Membre 33
     
    Bonsoir

    Avec un peu de retard, voilà si j'ai bien compris ta demande

    https://www.cjoint.com/c/GBdtUlX66RA

    cdt
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Bonjour,

      Vraiment merci beaucoup ! j'ai pu l'adapter a mon document en changeant le nom "feuil1" !
      J'ai cependant 2 problèmes :

      - Il enregistre tout le quadrillage même si je le désactive dans l'onglet "affichage" et je voudrais qu'il enregistre uniquement les bordures que j'ai mis.

      - Il enregistre sur une deuxième page la partie a droite de mon tableau avec notamment le bouton du macro. J'aimerai doc qu'il enregistre uniquement mon tableau de A1:F45 (compris)

      Merci pour ton aide !
      0
  2. julia Namor Messages postés 532 Statut Membre 33
     
    Bonjour

    Comme ça?

    https://www.cjoint.com/c/GBgoZyJwNXA

    cdlt
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Et non ... Car les bordures que j'ai faites ne s'affiche plus, ainsi que le logo et les couleurs ... Je te donne un document neutre pour que tu comprenne mieux ce dont j'ai besoin :

      http://www.cjoint.com/c/GBgq11d37eZ

      Merci pour ton aide en tout cas !
      0
  3. julia Namor Messages postés 532 Statut Membre 33
     
    Bonjour
    M'enfin je comprends mieux
    ci-dessous le code mis à jour
    Tu le colles à la place de l'ancien

    Sub pdf_export()
    Application.ScreenUpdating = False
    Call RépertoireExiste(ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value)

    ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
    Sheets("Facture & Devis").Range("A1:F45").Copy
    With ActiveSheet
    'Sheets("Facture & Devis").Range("A1:F45").Copy

    ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False

    ActiveSheet.Range("A1:F45").Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value & "\" & Sheets("Facture & Devis").Range("F4").Value & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    MsgBox "le Fichier " & Sheets("Facture & Devis").Range("F4").Value & " a été bien exporté dans le dossier " & Sheets("Facture & Devis").Range("E1").Value

    End With
    Application.DisplayAlerts = False
    Worksheets(Worksheets.Count).Delete
    Sheets("Facture & Devis").Activate
    Application.ScreenUpdating = True
    End Sub


    Cordialement
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      J'aurai du commencer par envoyer le document, je n'y ai pas pensé !

      Le problème que je rencontre ce coup-ci, c'est qu'il enregistre le document en mettant toutes les cellules a la même dimension, du coup les textes n’apparaissent pas entier ...

      Je n'aurai pas cru que ce serait si compliqué, je suis désolé de te déranger encore une fois !
      0
  4. julia Namor Messages postés 532 Statut Membre 33
     
    Bonsoir
    Une approche qui réglera définitivement tous les soucis ... du moins je l’espère
    Tu le colles à la place de l'ancien

    Sub pdf_export()
    ActiveWindow.DisplayGridlines = False
    Worksheets("Facture & Devis").Range("A1:F45").CopyPicture xlScreen, xlBitmap
    Application.DisplayAlerts = False
    Call RépertoireExiste(ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value)
    Set new = Worksheets.Add
    With ActiveSheet.PageSetup
    .Zoom = 95
    End With
    With new
    .Paste
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value & "\" & Sheets("Facture & Devis").Range("F4").Value & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    .Delete
    MsgBox "le Fichier " & Sheets("Facture & Devis").Range("F4").Value & " a été bien exporté dans le dossier " & Sheets("Facture & Devis").Range("E1").Value
    End With
    Sheets("Facture & Devis").Activate
    End Sub


    Cdlt
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Décidément... J'ai une "erreur de compilation : erreur de syntaxe" sur le Sub pdf_export().
      Je comprend pas trop vu que c'est belle et bien le même que sur le code juste avant ...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. julia Namor Messages postés 532 Statut Membre 33
     
    Oup'ss c'est ma faute
    remplacer le "new" par "nw"

    Sub pdf_export_image()
    ActiveWindow.DisplayGridlines = False
    Worksheets("Facture & Devis").Range("A1:F45").CopyPicture xlScreen, xlBitmap
    Application.DisplayAlerts = False
    Call RépertoireExiste(ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value)
    Set nw = Worksheets.Add
    With ActiveSheet.PageSetup
    .Zoom = 95
    End With
    With nw
    .Paste
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    ThisWorkbook.Path & "\" & Sheets("Facture & Devis").Range("E1").Value & "\" & Sheets("Facture & Devis").Range("F4").Value & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    .Delete
    MsgBox "le Fichier " & Sheets("Facture & Devis").Range("F4").Value & " a été bien exporté dans le dossier " & Sheets("Facture & Devis").Range("E1").Value
    End With
    Sheets("Facture & Devis").Activate
    End Sub
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Effectivement ca venait de la, et malheureusement ça ne marche toujours pas car ca enregistre sur 4 pages différentes désormais ...
      0
  7. julia Namor Messages postés 532 Statut Membre 33
     
    Modifie le
    .Zoom = 95

    a
    .Zoom = 50


    pour voir

    quelle version de excel utilises tu ?
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Ah yes ! je vais chercher le bon nombre !
      j'utilise office2013.

      Si je peux t’embêter encore une fois, ça ne prend pas les bordures verticales tout a gauche, c'est possible de régler ça ? Il y a une partie du code qui gères les réglages avec lesquels je pourrais jouet pour améliorer la qualité du pdf ?
      0
  8. julia Namor Messages postés 532 Statut Membre 33
     
    bonsoir

    Une approche avec libération de la colonne A et de la ligne 1 pour plus d'esthétique ( à mon gout)
    Attention aux cellules liées les formules risquent d’être faussées.
    A essayer

    https://www.cjoint.com/c/GBhvl2cIIxA

    Cdt
    0
    1. plingx Messages postés 144 Statut Membre 20
       
      Désolé pour le retard, c'est effectivement mieux merci ! Si je comprend bien, il fait plus ou moins une capture d’écran qu'il agrandit après ? Je dis ça par ce que ça donne un fichier un peu pixelisé, j'ai cherché les différents réglages mais je n'ai rien trouvé, je n'ai d’ailleurs trouvé aucun post qui parle de ce "flou", ça m'étonne...
      0