Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2011, 09h04   #1
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Par défaut Equivalent "Enregistrer sous"

Bonjour à toutes et à tous,

Je souhaiterais donner la possibilité à l'utilisateur de mon classeur d'enregistrer une sélection prédéfinie des résultats obtenus après lancement de macros au format PDF.

J'arrive très bien à enregistrer une copie PDF dans le dossier où se trouve le classeur. J'aimerais que l'utilisateur puisse renseigner le chemin dans lequel il souhaite enregistrer le PDF (à la façon "Enregistrer sous"). La méthode que j'utilise pour le moment : lui faire renseigner le chemin EXACT à la main, pas très pratique.. Existerait-il un moyen de faire apparaitre les chemins à la façon d'enregistrer sous pour qu'il le sélectionne ?

Merci d'avance de votre aide
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 10h00   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 711
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 711
Points : 3 644
Points : 3 644
Salut, voir dans la FAQ http://excel.developpez.com/faq/?page=FenetresExcel
, de plus l'usage de [F1] et de l'enregistreur de macros n'est pas prohibé
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/12/2011, 10h25   #3
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Tout à fait, d'où le fait que j'ai (copieusement) abusé de l'enregistreur de macros avant de poster En revanche, il semblerait que j'ai mal orienté ma recherche sur le forum puisque je n'avais pas trouvé le lien que tu m'as transmis, merci beaucoup

Avec ma précédente méthode, j'arrivais à indiquer la sélection à enregistrer en PDF :

Code :
ActiveSheet.Range("A1:P" & 30 * i).ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & NomFichier & ".pdf"
En essayant de m'inspirer de ton lien, j'arrive au code suivant :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub TOPDF3(NomFichier As String)
 
    Dim objSaveBox As FileDialog
    Set objSaveBox = Application.FileDialog(msoFileDialogSaveAs)
    With objSaveBox
        .InitialFileName = NomFichier & ".pdf"
        '(la valeur 25 Permet de spécifier les classeurs "PDF" lorsque vous êtes dans Excel 2007)
        .FilterIndex = 25
 
        .Show
        .Execute
    End With
 
End Sub
Comment indiquer dans ce code la sélection que je souhaite enregistrer au format PDF ? En l'état, le code bugge puisqu'il comprend que je souhaite enregistrer l'ensemble du projetVB au format PDF, ce qui est bien sûr impossible..

Merci encore de ton aide
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 11h07   #4
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Réponse à moi-même : J'ai raisonné en 2 temps. Dans un premier temps un userForm récupère le nom à donner au fichier à enregistrer. Ensuite s'ouvre un FileDialog pour récupérer le dossier sélectionné où enregistrer. Les 2 données sont enfin envoyées à la macro TOPDF2 qui enregistre au format PDF :

Code :
1
2
3
4
5
6
7
8
9
Sub Utilisation_FileDialog_SelectionDossier(NomFichier As String)
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Choix du dossier où enregistrer"
        .Show
        If .SelectedItems.Count > 0 Then
            Call TOPDF2(NomFichier, .SelectedItems(1), Worksheets(4).Range("B8").Value)          ' MsgBox .SelectedItems(1)
        End If
    End With
End Sub
Code :
1
2
3
Sub TOPDF2(NomFichier As String, Chemin As String, i As Integer)
ActiveSheet.Range("A1:P" & 13 + 2 + 14 * i + 1).ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & NomFichier & " - Dimensionnement des MALT.pdf"
End Sub
Cela fonctionne, à ceci près que la police semble changer entre le document Excel et le PDF généré. Comment expliquer cela ?
Si vous avez une piste, je suis preneur

Merci d'avance !
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h04.


 
 
 
 
Partenaires

Hébergement Web