XL 2019 Bouton pour impression dynamique

My<3

XLDnaute Junior
Bonjour, j'ai un fichier vivant qui a chaque semaine je supprime 7 colonnes en ajoute 7 a la fin du tableau, je masque des colonnes et j'imprime 70 colonnes après les Titre à imprimer Lignes $1:$16 et Colonnes $A:$O

Est-ce possible de créer un
Bouton Mise a jour (Ce bouton sera utiliser une seule fois par semaine)
supprime 7 premières colonnes $Q:$W​
ajoute 7 colonnes a la fin $LM:$LS​
Copie les informations des colonnes $LF:$LL​
Ajuste les dates des cellules de la ligne 15​
Ensuite Masque les colonnes $Q:$BF
Créer un PDF selon l'impression Cédule​
Produit un mail d'envois avec le PDF en pièce jointe​
Bouton Imprimer Cédule (Ce bouton peut etre utilisé a plusieur reprise)
Créer la zone d'impression des colonnes $BG:$DX (70colonnes) et pour​
les lignes je voudrais imprimer les lignes qui ont des informations dans la colonne C qui ne sont pas masqué par le filtre​
La mise en page est format 11x17 orientation Paysage et Ajuster toutes les colonnes a une page
Les Projets sont par tranche de 7 lignes et toutes les colonnes donc les saut de pages devrait idéalement se positionner au dessus ou en dessous d'un projet​
Enregistre le fichier en PDF dans un dossier
Nomme le ficher UpdateCedule (Écrasse l'ancien)
Offre l'option d'un envois par mail ou non
Bouton Cédule Long Terme
Créer la zone d'impression des colonnes $BG:$JH (210colonnes) et pour​
les lignes je voudrais imprimer les lignes qui ont des informations dans la colonne C qui ne sont pas masqué par le filtre​
La mise en page est format 11x17 orientation Paysage et Ajuster toutes les lignes a une page
Enregistre le fichier en PDF dans un dossier
Nomme le ficher UpdateCeduleLongTerme (Écrasse l'ancien)
Envois un mail
 

Pièces jointes

  • FicherTestBouton.xlsx
    25.2 KB · Affichages: 2
C

Compte Supprimé 979

Guest
Bonsoir,

Oui tout ça est totalement faisable
1669227292556.png

:rolleyes: ;)
 
C

Compte Supprimé 979

Guest
Bonsoir et merci

Pour commencer, si je peux me permettre,
lorsqu'on veut se lancer dans VBA, je pense qu'il faut commencer par apprendre les bases :rolleyes:
Un fichier ".xlsm" contient des macros, pas un fichier ".xlsx"

Sinon voici le code pour le bouton Mise à jour (remplace le code existant)
VB:
Dim sPath As String, sFic As String

' UpdateSemaines (conserve 6 semaines masquées et ajoute une semaine a la fin)
Sub MettreAJourSemaine()
  With Sheets("Cédule")
    If .AutoFilterMode = True Then .ShowAllData
    ' Supprimer 7 colonnes
    .Columns("Q:W").Delete Shift:=xlToLeft
    ' Ajoute 7 colonens à la fin
    .Columns("LF:LL").Copy
    .Columns("LM").Insert
    ' Ajuste les dates des cellules de la ligne 15?
    .Range("LL15").AutoFill Destination:=.Range("LL15:LS15"), Type:=xlFillDefault
    ' Ensuite Masque les colonnes $Q:$BF
    Columns("Q:BF").EntireColumn.Hidden = True
    ' Créer un PDF selon l'impression Cédule?
    Call ExportPDFCedule
    ' Produit un mail d'envois avec le PDF en pièce jointe?
    Call EnvoiMail
  End With
End Sub

Sub ExportPDFCedule()
  ' Ces variables son définies en tête du module donc utilisable pour toutes les subb
  sPath = "\\fabfichiers\fabricationsbl\PROJET\DOCUMENTS MASTER\CÉDULE PRODUCTION\"
  sFic = "UpdateCedule.pdf"
  With Sheets("Cédule")
    .PageSetup.PrintArea = "$BG$24:$DX$212"
    .ExportAsFixedFormat Type:=xlTypePDF, FileName:=sPath & sFic, Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
End Sub

Sub EnvoiMail()
  ' Déclaration des variables utilisées dans le code
  Dim OutObj As Object, Email As Object
  ' Création d'une instance Outlook pour envoyer un mail
  Set OutObj = CreateObject("Outlook.Application")
  Set Email = OutObj.CreateItem(0)
  ' Avec mon objet Email
  With Email
    .Display  ' Afficher le mail pour afficher la signature
    ' Destinataire(s) du mail
    .To = "emaildestinataire@fai.fr"
    ' Copie du mail
    .CC = "emaildestinataire@fai.fr"
    ' Sujet de l'eMail
    .Subject = "Ceci est le sujet de mon mail"
    ' Corps du mail avec signature à la fin
    .HtmlBody = "Bonjour," & "<BR><BR>" _
      & "Ceci est un exemple<BR><BR>" & .HtmlBody
    ' Joindre le fichier précédemment créé
    .Attachments.Add sPath & sFic
    ' Envoyer l'email à activer si souhaité
    '.Send
  End With
  ' Effacer les variable objet
  Set Email = Nothing: Set OutObj = Nothing
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa