Macro création pdf en fonction paramètre
Fermé
ghosts11111
Messages postés
5
Date d'inscription
vendredi 28 décembre 2012
Statut
Membre
Dernière intervention
10 avril 2020
-
9 avril 2020 à 15:22
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 avril 2020 à 10:04
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 avril 2020 à 10:04
A voir également:
- Macro création pdf en fonction paramètre
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Creation compte gmail - Guide
- Enregistrer en pdf - Guide
3 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 avril 2020 à 16:19
9 avril 2020 à 16:19
Bonjour,
voici un exemple à adapter en vba:
voici un exemple à adapter en vba:
Sub Save_pdf() Dim nom As String Dim chemin As String Dim Plage As Range Set Plage = Application.InputBox("Sélectionnez plage cellules:", Type:=8) chemin = ActiveWorkbook.Path & "\" 'chemin du dossier destination à adapter nom = InputBox("Saisissez le nom du PDF : ", "NOM PDF", "essai") Plage.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ chemin & nom & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False Set Plage = Nothing MsgBox "Enregistrer" 'on peut supprimer End Sub
ghosts11111
Messages postés
5
Date d'inscription
vendredi 28 décembre 2012
Statut
Membre
Dernière intervention
10 avril 2020
9 avril 2020 à 18:43
9 avril 2020 à 18:43
Merci pour ton retour rapide,
ton code demande la selection une par une des plages.
J'ai 280 managers donc je voulais un code avec une boucle qui a chaque changement de manager me crée un pdf.
est ce que l'on peut au niveau de set plage adapter cette boucle ?
J'ai la même macro qui me colle la selection dans le mail mais je voudrais la même pour générer les pdf.
Est ce que mettre le code de mon vba mail peut aider à voir ce que je cherche?
Cdt
ton code demande la selection une par une des plages.
J'ai 280 managers donc je voulais un code avec une boucle qui a chaque changement de manager me crée un pdf.
est ce que l'on peut au niveau de set plage adapter cette boucle ?
J'ai la même macro qui me colle la selection dans le mail mais je voudrais la même pour générer les pdf.
Est ce que mettre le code de mon vba mail peut aider à voir ce que je cherche?
Cdt
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 avril 2020 à 18:51
9 avril 2020 à 18:51
Si tu as une macro qui colle la sélection on doit pouvoir l'adapter pour créer un PDF
Il faut un pdf par sélection?
Mets la donc je vois se que je peux faire
Il faut un pdf par sélection?
Mets la donc je vois se que je peux faire
ghosts11111
Messages postés
5
Date d'inscription
vendredi 28 décembre 2012
Statut
Membre
Dernière intervention
10 avril 2020
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
10 avril 2020 à 09:25
10 avril 2020 à 09:25
Bonjour,
je t'ai pas répondu entièrement hier.
c'est mon soucis, il me faut un pdf par sélection (sélection faite à chaque changement de manager).
ma macro mail étant en format html je ne peux pas appliquer les mises en formes conditionnelles particulières.
donc je souhaite passer par la génération d'un pdf puis par une macro d'envoi mail avec pièce jointe que j'ai déjà.
mon seul soucis reste cette génération de pdf.
Merci de ton retour.
je t'ai pas répondu entièrement hier.
c'est mon soucis, il me faut un pdf par sélection (sélection faite à chaque changement de manager).
ma macro mail étant en format html je ne peux pas appliquer les mises en formes conditionnelles particulières.
donc je souhaite passer par la génération d'un pdf puis par une macro d'envoi mail avec pièce jointe que j'ai déjà.
mon seul soucis reste cette génération de pdf.
Merci de ton retour.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
ghosts11111
Messages postés
5
Date d'inscription
vendredi 28 décembre 2012
Statut
Membre
Dernière intervention
10 avril 2020
10 avril 2020 à 10:04
10 avril 2020 à 10:04
Je ne pense pas que cela soit possible. Trop long 280 pdf à générer!
Il te faut trouver une autre solution.
Bon courage
@+ Le Pivert
Il te faut trouver une autre solution.
Bon courage
@+ Le Pivert
ghosts11111
Messages postés
5
Date d'inscription
vendredi 28 décembre 2012
Statut
Membre
Dernière intervention
10 avril 2020
9 avril 2020 à 19:06
9 avril 2020 à 19:06
Les données sont prises dans un onglet excel classique,
et à chaque changement de matricule, un mail est généré. ( dans ce mail ressorte autant de ligne correspondant aux managers)
et à chaque changement de matricule, un mail est généré. ( dans ce mail ressorte autant de ligne correspondant aux managers)
Sub CongésManagers()
'Macro permettant d'envoyer les mails avec les données dans cellules personnalisées et par matricule
Dim managers As String
Dim nblignes_managers As Long
Dim nb_lignes_fichier As Long
Dim compteur As Long
Application.ScreenUpdating = False
'initialisation de la variable compteur à zéro
compteur = 0
'lignes pour balayer l'ensemble des managers
nblignes_managers = Sheets("Managers").Range("b1").CurrentRegion.Rows.Count
Sheets("Matricules").Select
Range("a1").Select
While ActiveCell.Row <> nblignes_managers - 1
nom_Matricules = ActiveCell
Sheets("Managers").Select
Range("a2").Select
While ActiveCell.Offset(0, 0)
If ActiveCell = nom_Matricules Then
compteur = 1
tableur = tableur & créer_tableau_dynamique
End If
ActiveCell.Offset(1, 0).Select
Wend
If compteur = 0 Then
Sheets("Matricules").Select
ActiveCell.Offset(1, 0).Select
End If
If compteur >= 1 Then
Dim appOutlook As Object 'As Outlook.Application
Set appOutlook = CreateObject("Outlook.Application")
Dim Message As Object 'As Outlook.MailItem
Set Message = appOutlook.CreateItem(olMailItem)
'*****************************************************************************
'
corps_mail = "<HTML><BODY>....</BODY></HTML>"
'*********************************************************************************************
Call Message.Display 'Force l'ajout de la signature par défaut
With Message
'.Display
.To = nom_Matricules & "@C....fr"
.Subject =
.HTMLBody = corps_mail & "<br>" & .HTMLBody 'Insertion du texte plus haut
'.Attachments.Add ("C:\Users\") & nom_Matricules & (".pdf")
'.Send 'Envoi
End With
Set objMail = Nothing
tableur = ""
Sheets("Matricules").Select
ActiveCell.Offset(1, 0).Select
compteur = 0
End If
Wend
Sheets("Managers").Activate
Sheets("Managers").Range("a3").Select
Application.ScreenUpdating = True
End Sub
' fonction qui va rechercher les données à coller dans le corps de mail
Function créer_tableau_dynamique()
Dim nbl As Long
Dim nbc As Byte
Dim tableau As String
Dim nb_lignes As Long
nbl = 1
nbc = 1
For i = 1 To nbl
tableau = tableau & "<TR align = center>"
For j = 1 To nbc
tableau = tableau & "<TD>" & ActiveCell.Offset(0, 4) & .....</TD>"
Next j
tableau = tableau & "</TR>"
Next i
créer_tableau_dynamique = tableau
End Function