Macro création pdf en fonction paramètre
ghosts11111
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'expose mon soucis,
J'ai 10 matricules de cadre avec un nombre de lignes aléatoires par cadre ( en fonction des
salariés dirigés par ce cadre)
je souhaite créer une capture pdf par cadres mais je ne vois pas comment faire.
en gros
colonne A1et A2 : matricule 1 avec colonne B1 nom salarié 1 B2 nom salarié 2
colone A3; matricule 2 avec colonne B3 nom salarié 3...
sachant que c'est aléatoire puisque certains cadres ont 1 salariés et d'autres 50.
Est ce que quelqu' un aurait une piste de macro avec une boucle que je pourrais adapter.
Merci de votre aide
Anthony
j'expose mon soucis,
J'ai 10 matricules de cadre avec un nombre de lignes aléatoires par cadre ( en fonction des
salariés dirigés par ce cadre)
je souhaite créer une capture pdf par cadres mais je ne vois pas comment faire.
en gros
colonne A1et A2 : matricule 1 avec colonne B1 nom salarié 1 B2 nom salarié 2
colone A3; matricule 2 avec colonne B3 nom salarié 3...
sachant que c'est aléatoire puisque certains cadres ont 1 salariés et d'autres 50.
Est ce que quelqu' un aurait une piste de macro avec une boucle que je pourrais adapter.
Merci de votre aide
Anthony
Configuration: Windows / Chrome 62.0.3202.94
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
- Remettre parametre usine pc - Guide
- Creation compte gmail - Guide
3 réponses
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
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
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.
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