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

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. Bonsoir

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

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

    cdt
    0
    1. 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. Bonjour

    Comme ça?

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

    cdlt
    0
    1. 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. 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. 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. 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. 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. 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. Effectivement ca venait de la, et malheureusement ça ne marche toujours pas car ca enregistre sur 4 pages différentes désormais ...
      0
  6. Modifie le
    .Zoom = 95

    a
    .Zoom = 50


    pour voir

    quelle version de excel utilises tu ?
    0
    1. 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
  7. 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. 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