Crée en PDF avec une plage de Cellule

Hello,

Toujours à essayer de trouver un nouveau système pour la demande de vacances automatisée.

J’ai créé 4 Macros avec l’enregistrement

Deux pour deux responsables :

2x Période accepté je souhaiterai que cela génère un fichier PDF part mail
2x Période refusé je souhaiterai que le classeur soit en pièce joint avec un Mail.

Avec le bouton envoyé ça me mets les 4 boutons pour les 4 macros, et génère un mail avec le classeur en pièce jointe.

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
« C:\Users\JOHNNY~1.FLE\AppData\Local\Temp\Gestion de Absence.pdf », Quality:=

FFO , je me souviens bien que tu m’avais dit que il fallait absolument qu’un PDF ait un chemin d’accès, du coup j’imagine que c’est pour ça que ça ne fonctionne pas.

Ma question est au lieu de générer le classeur entier en PDF est-ce qu’il est possible que cela soit sur la plage de cellules A1 à J49 ?

Très bonne soirée a tous
Johnny
Gestion de Absenceforum.xlsm (102,3 Ko)

Bonsoir

« est-ce qu’il est possible que cela soit sur la plage de cellules A1 à J49 ? »

Il faut dans un onglet dédié recopier ces cellules puis enregistrer en pdf celui-ci

Si cela te convient je peux t’aider à cette fin

Je viens d’ouvrir ton fichier transmis ces cellules correspondent à ce que contient l’onglet « Feuil1 » ni plus ni moins
Donc reste à créer le pdf de cet onglet qui sera joint au mail

A toi de me dire si cela te convient

Ci-joint ton fichier avec un traitement derrière le bouton « pdf » qui crée dans le répertoire « C:\Users\JOHNNY~1.FLE\AppData\Local\Temp » l’onglet « Feuil1 » en fichier pdf avec le nom « Gestion de Absence.pdf »

Testes et dis moi

Gestion de Absenceforum.xlsm (102,7 Ko)

1 « J'aime »

Encore merci FFO,

Est-ce qu’il serait possible de pouvoir le mettre à en pièce jointe dans un mail ?

Si j’ai bien compris il me suffira juste après de le configurer sur les 2 postes de travail de mes responsables pour que le chemin d’accès soit juste

Très bonne journée a toi

Bonjour

Si les utilisateurs ont chacun un répertoire propre d enregistrement des pdf il faudra effectivement adapter le code en fonction
On peut si tu le souhaites utiliser une cellule pour mettre le chemin de ce répertoire ce sera plus commode que d intervenir dans le code
Pour l envoi par mail du fichier soit manuellement le joindre sinon me dire quelle application de messagerie est utilisé en espérant que pour chaque utilisateur il soit le même
Dans le cas contraire il faudra un traitement sur mesure pour chacun d eux avec l application concernée

Les paramètres d envoi seront à definir :
Adresse du ou des destinataires
Titre du message
Contenu du message

Si ceux-ci pour chaque utilisateur doivent être spécifiques prevoir des cellules pour chacun d eux afin de les adapter facilement

A toi de me dire

FFO,

Je pense que je tiens quelque chose :blush:

J’ai 2 fichiers ouvert constamment mes responsables, les chefs de zone et moi

Fichier Principale : « Organisation du Personnel »
Fichier secondaire : « Gestion des absences »

je sais que ça fonctionne on est tous sur le même réseau quand les fichiers sont ouverts je le fais déjà entre 2 fichiers pour une gestion de stock grâce au macros et ça joue.

Dans le fichier secondaire les chefs remplissent la feuille « demande », ils appuient sur le bouton envoyer et ça part dans l’onglet « Demande a Traité »

Mon responsable de son fichier principal « Organisation du Personnel », appuie sur le bouton à traiter.

Ça vient récupérer les données du fichier secondaire de l’onglet « Demande a traité ».

si tu veux bien jeter un œil au code pour les alléger un petit peu s’il te plait.

Je souhaiterai :

D’avoir dans le fichier « organisation du personnel 2023 » sur le onglet « Tableaux de Bord », un conteur qui signale le nombre de demandes à traiter.

Si j’ai bien appris ce que tu m’as dit, ça c’est possible en comptant les lignes à partir de la ligne 2 du Fichier « Gestion des Absences » onglet « Demande a Traité ».

D’avoir sur le fichier « organisation du personnel » onglet « Demande a Traité », la possibilité d’accepte ou refusé.

Accepté : Volontiers de pouvoir l’intégré en PDF en pièce jointe par mail (nous travaillons tous avec Outlook tous les services possèdent la même messagerie)
Les adresses sont : Prenom.Nom@nomdel’entreprise.ch
Peut-être un peu exagérer j’en suis désolé mais, est-ce qu’il est possible si c’est accepté que ça parte au bon endroit dans la feuille « janvier décembre » avec les mêmes conditions que le code « Inscription d’absence », grâce à la cellule « C7 ».
( j’ai créé une liste déroulante avec tous les noms et prénoms des collaborateurs pour qu’il puisse y avoir la même exactitude sur la cellule « C7 »du onglet « Demande a traité, que sur le onglet « Janvier – Décembre », on ne peut pas avoir 2 fois le même nom et il n’y a pas de doublon.

Refusé : pouvoir l’intégrer dans un corps d’un mail.
Actuellement pour un des fichiers j’utilise ce code-là :

Sub Envoimail()

Dim Mafeuille As Worksheet

Dim Nbligne As Integer

Set Mafeuille = ThisWorkbook.Sheets(« Demande de Chaussure TK »)

Application.ScreenUpdating = False

Nbligne = Mafeuille.Range(« A » & Application.Rows.Count).End(xlUp).Row

’Mafeuille.Range(« A1:K » & Nbligne).Select

’With Selection.Parent.MailEnvelope.Item

With Mafeuille.Range(« A1:K » & Nbligne).Parent.MailEnvelope.Item

.To = Mafeuille.Range(« N1 »).Value

’.cc = Mafeuille.Range(« N3 »).value

’.Bcc = ""

.Subject = Mafeuille.Range(« N2 »).Value

.send

End With

MsgBox « Votre Mail a été envoyé. », vbInformation + vbOKOnly, "CONFIRMATION ENVOIE MAIL."

Application.ScreenUpdating = True

End Sub

Est-ce qu’il serait possible de pouvoir avoir un endroit où je puisse rentrer plusieurs adresses mail et avoir le choix de à qui je l’envoie ?

Je me suis sûrement emballé mais j’ai eu l’idée en dormant :blush:

Merci a toi

Gestion des Abscences.xlsm (94,0 Ko)
Organisation du personnel - 2023 Picks teste.xlsm (1,1 Mo)

Procédons par étape

« si tu veux bien jeter un œil au code pour les alléger un petit peu s’il te plait. »

J’ai réalisé une macro « envoi » sur laquelle j’ai relié le bouton « Envoyer »

Testes et dis moi

Tu peux jeter un oeil au code et me dire si cela correspond à ta demande

Gestion des Abscences.xlsm (94,8 Ko)

1 « J'aime »

Super je te remercie on voit même plus que ça saute pendant la lecture c’est :blush:

Est-ce qu’il est possible de rajouter une fois que c’est envoyé d’effacé les données du onglet « Demande » Sauf pour la Cellule « G7 » et « I7 » , car sur ces cellules je vais effectuer une recherche V sur le fichier principal pour avoir les valeurs

Ton fichier avec le nettoyage de l’onglet « Demande »
Les données saisies sont intégrées en ligne 2 de l’onglet « Demande a Traité » puis supprimées de l’onglet « Demande » sauf cellules « G7 » et « I7 »

Toutes ces données intégrées onglet « Demande a Traité » seront récupérées par le fichier "organisation du personnel " et ce par un traitement de celui-ci qu’il faut mettre en place

Tu voudras bien me préciser son contexte afin que je l’élabore en conséquence
Quel onglet quel fréquence combien de fichiers « Gestion des absences » à traiter avec ou non une information de récupération pour chacun d’eux

Merci pour ces précisions

Ton fichier avec le nettoyage onglet « Demande » incorporé

Testes et dis moi
Gestion des Abscences.xlsm (95,1 Ko)

1 « J'aime »

Ça c’est parfait je te remercie infiniment

Pour la suite.
Il y aura que 2 fichiers à traiter organisation du personnel et gestion d’absence pas d’autres
(D’avoir le même nom de feuille sur 2 fichiers différents cela peut être problématique ?)

Il faudrait dans le fichier « organisation du personnel » onglet « demande à traiter », récupérer par une ligne à la fois les informations du fichier « gestion d’absence » onglet « demande à traiter », pour que le formulaire soit rempli.

Une fois les informations d’une ligne remise au fichier organisation, est-ce possible de pouvoir l’effacer pour éviter les doublons ?

Merci de ton soutien

« Il y aura que 2 fichiers à traiter organisation du personnel et gestion d’absence pas d’autres
(D’avoir le même nom de feuille sur 2 fichiers différents cela peut être problématique ?) »

Donc un seul fichier de saisi des absences « gestion d’absence » et un seul fichier de récupération pour la validation des saisies « organisation du personnel »

Merci de me confirmer

« Il faudrait dans le fichier « organisation du personnel » onglet « demande à traiter », récupérer par une ligne à la fois les informations du fichier « gestion d’absence » onglet « demande à traiter », pour que le formulaire soit rempli. »

Il faudrait que le fichier "organisation du personnel " l’onglet « demande à traiter » récupère et capitalise la totalité de l’onglet « demande à traiter » du fichier « gestion d’absence » avec une référence unique pour chacun d’eux afin de cerner les nouveaux de ceux déjà récupérés
Ainsi par le jeu de ces références de toujours récupérer les nouvelles demandes uniquement

« Une fois les informations d’une ligne remise au fichier organisation, est-ce possible de pouvoir l’effacer pour éviter les doublons ? »

Quel intérêt avec l’utilisation d’une référence unique ?

Reste à savoir si une information de traitement doit être fournie par le fichier "organisation du personnel " au fichier « gestion d’absence » concernant les demandes
A toi de dire

[quote=« FFO, post:10, topic:10782 »]
Donc un seul fichier de saisi des absences « gestion d’absence » et un seul fichier de récupération pour la validation des saisies « organisation du personnel »
[/quote]

Oui excatement

[quote=« FFO, post:10, topic:10782 »]
Il faudrait que le fichier "organisation du personnel " l’onglet « demande à traiter » récupère et capitalise la totalité de l’onglet « demande à traiter » du fichier « gestion d’absence » avec une référence unique pour chacun d’eux afin de cerner les nouveaux de ceux déjà récupérés
Ainsi par le jeu de ces références de toujours récupérer les nouvelles demandes uniquement
[/quote]

Ça serait parfait

[quote=« FFO, post:10, topic:10782 »]
Quel intérêt avec l’utilisation d’une référence unique ?
[/quote]

Ah bah du coup plus aucun :blush: mais Au vu du nombre de demande est-ce que ça n’alourdira pas le fichier si on supprime pas ?

[quote=« FFO, post:10, topic:10782 »]
Reste à savoir si une information de traitement doit être fournie par le fichier "organisation du personnel " au fichier « gestion d’absence » concernant les demandes
[/quote]
non pas dans ce sens-là.

« mais Au vu du nombre de demande est-ce que ça n’alourdira pas le fichier si on supprime pas ? »

Sur un mois quelle sera la moyenne du nombre de demande ?

Une Moyenne de 120 demandes en debut d’année et 80 a partir de juin

Ce qui potentiellement sur 12 mois atteindra :

120x6 = 720 + 80x6 = 480 soit : 1200

C’est une perspective dérisoire sans conséquence sur un alourdissement du fichier je te rassure

Ci-joint tes 2 fichiers avec ce fonctionnement intégré

Fichier « Gestion des Abscences.xlsm » onglet « Demande a Traité » colonne « R » les références automatiquement alimentée par un +1 de la cellule « R3 »

Fichier « Organisation du personnel - 2023 Picks teste.xlsm » ajout d’un onglet « Récupération demande » à l’identique de l’onglet « Demande a Traité » du fichier « Gestion des Abscences.xlsm » colonne « A » à « R »

Colonne « S » l’état des demandes qui à leur récupération est mis à « A valider »
Cellule « T2 » le nom du fichier source de la récupération « Gestion des Abscences.xlsm »
Cellule « U2 » le chemin du répertoire de ce fichier source

Donc avant toute exécution de récupération ces 2 dernières cellules doivent être correctement alimentées

Si le fichier source « Gestion des Abscences.xlsm » est fermé le traitement l’ouvre

A la fin de la procédure de récupération le traitement ferme le fichier source « Gestion des Abscences.xlsm » sans l’enregistrer

Fichier « Organisation du personnel - 2023 Picks teste.xlsm » onglet « Récupération demande » cliques sur le bouton « Récupération » en cellule « W5 » aprés avoir correctement alimenté les cellules « T2 » « U2 »

Vérifies les données ainsi récupérées dans l’onglet « Récupération demande »

Testes et dis moi

Organisation du personnel - 2023 Picks teste.xlsm (1,1 Mo)
Gestion des Abscences.xlsm (95,4 Ko)

1 « J'aime »

Hello FFO,

WOUAHHHHHHH ,

Mais quel travail extraordinaire c’est génial.
Je n’ai pas de mots tellement c’est parfait et encore moins pour te remercier.:slight_smile:

Une fois les chemins établis tout fonctionne parfaitement.
Je me permets un détail est-ce qu’il serait possible dans l’onglet « Récupération demande » d’avoir la date part ligne de la récupération ?
(Un moyen pour nous de calculer le délai entre : une demande et la réponse)

Pour la prochaine étape dans le fichier « organisation du personnel 2023 », onglet « Demande a Traité ».
Si j’ai bien suivi le bouton « à traiter » va récupérer les demandes de l’onglet « Récupération demande », dans l’ordre où ils sont arrivés ?

Est-ce possible d’avoir une indication visuelle sur le nombre de demandes en attente ? dans la feuille « Tableaux de Bord ».

Ça veut dire qu’après il restera juste la dernière étape de pouvoir accepter ou refuse :blush:

Encore Merci

Bonjour
Merci pour ta réponse
J’essaie d’apporter la meilleur réponse la plus adaptée au fonctionnement attendu
J’ai rajouté une colonne (colonne « T ») dans laquelle la date de la récupération est intégrée à chaque traitement
J’ai donc décalé les cellule « T2 » « U2 » pour « U2 » « V2 »
« U2 » pour le nom du fichier source à utiliser par le traitement
« V2 » le chemin de son répertoire

Onglet « Tableaux de Bord » j’ai rajouté une cellule (« L20 ») pour comptabiliser les demandes en attente de validation se trouvant dans l’onglet « Récupération demande » (colonne « S » mention « A valider »)

« Si j’ai bien suivi le bouton « à traiter » va récupérer les demandes de l’onglet « Récupération demande », dans l’ordre où ils sont arrivés ? »

Cela dépend du traitement du bouton « à traiter »

Celui-ci tel qu’il est réalisé traite la demande de la ligne 2 de l’onglet « Récupération demande » avant de la supprimer

L’ordre de ces demandes est strictement identique à celui du fichier source « Gestion des Abscences.xlsm » c’est à dire en ligne 2 la demande la plus ressente la dernière la plus ancienne

A toi de me dire l’ordre de celles-ci quant à leur validation il suffira ensuite d’adapter le traitement du bouton « A Traité » de l’onglet « Demande a Traité » en conséquence
Il est possible d inclure dans l ordre de prise en compte des demandes la date de récupération de celle-ci

Pour le fonctionnement de ce bouton à chaque demande qu’il vient de valider au lieu de la supprimer de mettre dans la colonne « S » sur sa ligne onglet « Récupération demande » la mention « Validé »
Cette mise à jour exclura celle-ci d’un nouveau traitement et permettra de la conserver et de maintenir l’ensemble des demandes en archive

A toi de statuer sur ce fonctionnement

Ton fichier avec ces dernières évolutions

Organisation du personnel - 2023 Picks teste.xlsm (1,1 Mo)

C’est super je suis de plus en plus enthousiasmé, :slight_smile:

[quote=« FFO, post:16, topic:10782 »]
A toi de me dire l’ordre de celles-ci quant à leur validation il suffira ensuite d’adapter le traitement du bouton « A Traité » de l’onglet « Demande a Traité » en conséquence
Il est possible d inclure dans l ordre de prise en compte des demandes la date de récupération de celle-ci
[/quote]
Je pense que par date est une super solution

[quote=« FFO, post:16, topic:10782 »]
Pour le fonctionnement de ce bouton à chaque demande qu’il vient de valider au lieu de la supprimer de mettre dans la colonne « S » sur sa ligne onglet « Récupération demande » la mention « Validé »
Cette mise à jour exclura celle-ci d’un nouveau traitement et permettra de la conserver et de maintenir l’ensemble des demandes en archive
[/quote]
La notion « validée », sera automatiquement mise une fois le bouton « a Traité » activer ?

Je me permets de te demander car si nous avons toutes les archives des demandes comment faire pour que mon responsable s’il refuse pour qu’il y ait la notion refusée ?

Dans la colonne « S » à la récupération est mis la mention « A valider »
Il suffit ensuite de la modifier en fonction de la suite donnée par le traitement du bouton « à traiter »
Si celle-ci est validėe la mention « Valider » est mise à la place sinon la mention « Refuser »

« Je pense que par date est une super solution »

Mieux encore l utilisation de la référence qui unique et chronologique la plus petite etant la plus ancienne par rapport à la plus grande
Je pense que ce serait la meilleur solution

Qu en penses tu ?

1 « J'aime »

[quote=« FFO, post:18, topic:10782 »]
Dans la colonne « S » à la récupération est mis la mention « A valider »
Il suffit ensuite de la modifier en fonction de la suite donnée par le traitement du bouton « à traiter »
Si celle-ci est validėe la mention « Valider » est mise à la place sinon la mention « Refuser »
[/quote]
Si je te suis bien, cela veut dire qu’il note automatiquement valider à l’action du bouton « a traité », sauf une action contraire avec un autre bouton refuser et c’est là qu’il notera la notion « refusée ».

[quote=« FFO, post:18, topic:10782 »]
Mieux encore l utilisation de la référence qui unique et chronologique la plus petite etant la plus ancienne par rapport à la plus grande
Je pense que ce serait la meilleur solution

Qu en penses tu ?
[/quote]

Complètement d’accord si j’ai bien compris il va automatiquement chercher la valeur inférieure ce qui va nous donner automatiquement la demande la plus ancienne ? parfait :slight_smile:

« Si je te suis bien, cela veut dire qu’il note automatiquement valider à l’action du bouton « a traité », sauf une action contraire avec un autre bouton refuser et c’est là qu’il notera la notion « refusée ». »

Par exemple sinon en fonction de la réponse à une boîte de dialogue donnée par le traitement
(« Voulez vous valider cette demande ? » avec un bouton « Oui » et un bouton « Non »)

Complètement d’accord si j’ai bien compris il va automatiquement chercher la valeur inférieure ce qui va nous donner automatiquement la demande la plus ancienne ?

Le traitement du bouton « a traité » réalise en début un tri sur cette colonne références du plus petit au plus grand puis récupère la première demande non traitée

Voilà ce que je te propose