Selectionner puis publier en pdf sous excel 2007

Flowblaster

XLDnaute Nouveau
Bonjour,

Tout d'abord, merci à tous ceux qui prendront le temps de lire mon message, et en particulier à ceux qui m'aideront. Je travaille sous excel 2007 sur windows XP et j'ai besoin d'un peu d'aide. J'ai une utilisation régulière d'excel, que je connais assez bien, mais pas assez pour créer une macro et un bouton d'action, ce que je pense devoir faire dans mon cas.
J'ai un fichier excel contenant plusieurs feuilles, chacune des feuilles représente l'évaluation d'un candidat. J'ai également une feuille résumé qui contient un tableau de trois colonnes. Les deux premières sont le nom/prénom du candidat, et la note qu'il à obtenu, informations qui se remplissent automatiquement quand je rempli la feuille du candidat. Dans la troisième colonne, appelé à transféré, j'ai créé une liste déroulante de type oui/non.
Je voudrais réalisé un bouton d'action qui publie sous pdf chacune des feuilles des candidats dont j'aurais renseigné oui dans la feuille résumé.

Je sais qu'il est possible de sélectionner manuellement les feuilles concernées et, par le menu enregistrer sous, de les publier sous pdf ensuite, mais cette solution ne convient pas à ma hierarchie, qui voudrait un bouton.
J'espère avoir été clair dans mes explications, dans le cas contraire merci de me le signaler. Je pense devoir créer une macro, mais je ne sais même pas si cela est possible dans mon cas.
Une fois de plus, je remercie toute personne qui aurait une idée pour résoudre mon problème, de la manière que je l'envisage, ou de toute autre façon.
J'ai mis mon fichier en pièce jointe pour que cela soit plus clair.

Bonne journée à tous

FloW
 

Pièces jointes

  • Tableau d'évaluation vierge.zip
    21 KB · Affichages: 55

MECEQI

XLDnaute Nouveau
Re : Selectionner puis publier en pdf sous excel 2007

Re,

ChDir "(chemin complet\Tableau d'évaluation vierge"(ici le non du fichier d'arrivée
'La feuille que tu choisira de sauvegarder
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\b\Mes documents\Tableau d'évaluation vierge\Tableau d'évaluation vierge.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Apres en fonction du nom et de "à transférer" il n'y à plus selectionner la feuille concernée.
Fin de transmition.
 

Cousinhub

XLDnaute Barbatruc
Re : Selectionner puis publier en pdf sous excel 2007

Bonjour,

un essai (Répertoire à adapter...)

Code:
Sub Export_PDF()
Dim Cel As Range
Dim Sh As Worksheet
Dim Flag As Boolean
With Sheets("Résumé")
    For Each Cel In .Range("D3:D" & .[B65000].End(xlUp).Row)
        If Cel.Value = "oui" Then
            For Each Sh In Sheets
                If Sh.[B2] = Cel.Offset(0, -2).Value Then
                    If Flag Then
                        Sh.Select False
                    Else
                        Sh.Select: Flag = True
                    End If
                    Exit For
                End If
            Next Sh
        End If
    Next Cel
    If Not Flag Then Exit Sub
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "F:\Documents and Settings\Ton_Nom\Mes documents\Tableau d'évaluation vierge.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
    .Select
End With
End Sub
 

Flowblaster

XLDnaute Nouveau
Re : Selectionner puis publier en pdf sous excel 2007

Messieurs,

tout d'abord merci de la qualité et de la réactivité de vos réponses.
Le code transmis par bhbh marche et permet en effet d'exporter sous pdf les données que je veux. Cependant je veux maintenant aller plus loin.
Je voudrais que la feuille "paramétrages" s'exporte aussi, et vienne en première page du pdf. Je vais créer un nouvel onglet qui sera la page de garde du pdf voulu et il faudrait donc que cette page vienne dans le pdf aussi, et avant la feuille "paramétrages".
Je ne pense pas que cela soit très dur car je ne veut pas soumettre cet export à aucune condition de validation.
Dernière chose, je voudrais que le répertoire ou s'enregistre ce document ne soit pas automatique, c'est à dire pas dans un répertoire prédéterminé (il est pour l'instant déterminé car écrit dans le code). Je voudrais qu'a chaque fois que je clique sur mon bouton d'action, excel me demande où je veut enregistrer ce pdf.

D'avance merci à tous pour votre aide,

FloW
 

Cousinhub

XLDnaute Barbatruc
Re : Selectionner puis publier en pdf sous excel 2007

Re-,

Je voudrais que la feuille "paramétrages" s'exporte aussi, et vienne en première page du pdf. Je vais créer un nouvel onglet qui sera la page de garde du pdf voulu et il faudrait donc que cette page vienne dans le pdf aussi, et avant la feuille "paramétrages".

Euh, c'est qui le premier??? :D

Ok, j'ai inséré un nouvel onglet, nommé "page_de_garde" (tu n'as qu'à modifier...)

Pour le répertoire de destination, tu vas avoir une boîte de dialogue qui va s'ouvrir, avec comme répertoire de destination par défaut le répertoire de ton fichier (que tu peux également modifier...)

PS, si tu n'as aucun "oui", pas de génération de pdf...

le code :

Code:
Sub Export_PDF()
Dim Cel As Range
Dim Sh As Worksheet
Dim Flag As Boolean
Dim LePath As String
Sheets("page_de_garde").Select
Sheets("Paramétrages").Select False
With Sheets("Résumé")
    For Each Cel In .Range("D3:D" & .[B65000].End(xlUp).Row)
        If Cel.Value = "oui" Then
            For Each Sh In Sheets
                If Sh.[B2] = Cel.Offset(0, -2).Value Then
                    Sh.Select False
                    Flag = True
                    Exit For
                End If
            Next Sh
        End If
    Next Cel
    If Not Flag Then Exit Sub
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = ThisWorkbook.Path & "\"
        .Title = "Sélectionner un Dossier"
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélection Dossier"
        .Show
        If .SelectedItems.Count > 0 Then
            LePath = .SelectedItems(1) & "\"
        Else
            Exit Sub
        End If
    End With
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        LePath & "Tableau d'évaluation vierge.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
    .Select
End With
End Sub
 

Flowblaster

XLDnaute Nouveau
Re : Selectionner puis publier en pdf sous excel 2007

hey,

merci une fois de plus de prendre le temps de m'aider.
J'ai cependant le regret d'annoncer que cela ne marche pas, et je n'ai aucune idée de ce que je pourrais faire pour que ça marche.
-J'ai créer mon onglet et l'est appelé "page_de_garde" pour que cela marche.
-J'ai enregistrer mon fichier excel de tel sorte que les macros soient prisent en charge.
-J'ai fais des modifs sur chacune des feuilles des candidats mais je n'ai pas changé leur noms, je ne pense donc pas que cela intervienne.

Désormais, quand je clique sur le bouton que j'ai créé, cela me renvoie sur l'onglet page de garde et c'est tout...aucune boite de dialogue ne s'ouvre et aucun enregistrement se fait.
Je mettrais bien mon fichier actualisé mais même en le zippant il est plus lourd que 50 ko...

D'avance merci

FloW
 

Cousinhub

XLDnaute Barbatruc
Re : Selectionner puis publier en pdf sous excel 2007

Re-,

regarde le fichier joint (au format xlsm, ça ne sert à rien que je le mette en xls, le code ne fonctionnant pas pour les versions antérieures....)

Comme dit, si tu n'as pas de "oui", il n'y a aucune génération de pdf..

Et je cherche dans la cellule B2 de chaque onglet, le nom de la personne..

Si le nom dans la cellule Résumé est différent du nom dans la cellule B2 de son onglet, ben, ça va pas marcher...
 

Pièces jointes

  • Tableau d'évaluation vierge.xlsm
    43.2 KB · Affichages: 86

Flowblaster

XLDnaute Nouveau
Re : Selectionner puis publier en pdf sous excel 2007

Bon et bien je suis officiellement fan de toi bhbh....tu as trouver la solution à mon problème et cela fonctionne!!
je comprenais pas je relisais et relisais ton code et je voyais pas ce qui n'allait pas....c'est que j'avais passé les noms en cellules B3....non non je ne suis pas un boulet !!!
Merci à toi,
bonne continuation à tous
 

Flowblaster

XLDnaute Nouveau
Re : Selectionner puis publier en pdf sous excel 2007

Re-,

Suite et fin de mon problème espérons le....
Tou marche nickel comme sur des roulette mais je dois régler un dernier détail, il faut maintenant que lorsque j'enregistre mon fichier en pdf, en plus de me demander ou je veux enregistrer ce fichier, je dois faire en sorte qu'il me demande aussi sous quel nom je veux l'enregistrer...étant donné que pour l'instant le nom est défini par défault.

Idealement je voudrais aussi que si un fichier porte le même nom dans le dossier ou je veux enregistrer mon pdf, il m'avertisse qu'un fichier portant le même nom existe deja et qu'il me demande si je veux le remplacer...quelque chose dans le style...

D'avance merci, encore une fois..

Florian
 

Cousinhub

XLDnaute Barbatruc
Re : Selectionner puis publier en pdf sous excel 2007

Bonjour,

essaie avec ce code :

Je propose un nom, que tu peux modifier dans la boîte de dialogue (ou que tu peux supprimer, tout simplement)

Nom tel que : "Evaluation_2009_07_16.pdf"

Code:
    LeNom = "Evaluation_" & Format(Date, "yyyy_mm_dd") & ".pdf"
    Application.Dialogs(xlDialogSaveAs).Show LeNom, 57

si tu ne veux pas de nom par défaut, supprime la ligne "LeNom = ...", et supprime "LeNom" après Show, mais laisse la virgule, afin d'enregistrer en Pdf

Code:
Application.Dialogs(xlDialogSaveAs).Show , 57

le code :

Code:
Sub Export_PDF()
Dim Cel As Range
Dim Sh As Worksheet
Dim Flag As Boolean
Dim LeNom As String
Sheets("page_de_garde").Select
Sheets("Paramétrages").Select False
With Sheets("Résumé")
    For Each Cel In .Range("D3:D" & .[B65000].End(xlUp).Row)
        If Cel.Value = "oui" Then
            For Each Sh In Sheets
                If Sh.[B2] = Cel.Offset(0, -2).Value Then
                    Sh.Select False
                    Flag = True
                    Exit For
                End If
            Next Sh
        End If
    Next Cel
    If Not Flag Then Exit Sub
    LeNom = "Evaluation_" & Format(Date, "yyyy_mm_dd") & ".pdf"
    Application.Dialogs(xlDialogSaveAs).Show LeNom, 57
    .Select
End With
End Sub

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 010
Membres
103 090
dernier inscrit
Createlier