IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aide sur macro enregistrer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut Aide sur macro enregistrer
    Bonjour à tous,
    J'ai un petit soucis pour ma macro enregistrer-sous en PDF, je ne parviens pas à lui dire dans quel répertoire enregistrer automatiquement.
    elle prend bien les champs pour définir sous quel nom et date.

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub imprimpdf()
     
    Dim a As Worksheet
    Dim sc As Workbook
    Dim nouveauNom As String
     
    Application.ScreenUpdating = False
     
    Set a = ActiveSheet
    nouveauNom = Range("D13").Value & Range("L13").Value
    nouveauNom = Replace(nouveauNom, "/", "_")
    Set sc = Workbooks.Add(xlWBATWorksheet)
    sc.SaveAs (nouveauNom & ".xls")
    a.Copy Before:=sc.Sheets(1)
    ActiveSheet.PrintOut copies:=1
     
    Workbooks(nouveauNom & ".xls").Close SaveChanges:=False
    Kill nouveauNom & ".xls"
     
    Application.ScreenUpdating = True
     
    Application.DisplayAlerts = False
     
    End Sub
    Merci de votre aide

  2. #2
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    salut,

    sur ton code, tu ne lui renseigne pas de chemin d'acces du genre C:\Documents\machin.xls, mais simplement le nom Machin.xls.

    Et tu peux t'epargner qq ligne inutile de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub imprimpdf()
     
    Dim a As Worksheet
    
    Dim nouveauNom As String
     
    Application.ScreenUpdating = False
     
    Workbooks.Add(xlWBATWorksheet)
    sc.SaveAs ("C:\tonchemin\" & Replace(Range("D13").Value & Range("L13").Value, "/", "_") & ".xls")
    'a.Copy Before:=sc.Sheets(1)
    'ActiveSheet.PrintOut copies:=1 
    Workbooks(nouveauNom & ".xls").Close SaveChanges:=False
    Kill nouveauNom & ".xls" '<== ici il te faut le chemin complet pour detruire un fichier 
    Application.ScreenUpdating = True
     
    Application.DisplayAlerts = False
     
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut
    Bonjour,

    Merci, mais pourriez-vous encore m'aider ?

    En fait cette macro n'est pas vraiment ce que je recherche

    J'aimerais que cette macro enregistre une copie de la feuille sur laquelle je place le bouton avec comme option mes deux cellules de référencent et enregistrent une copie en PDF avec pdf créator comme imprimante dans un dossier précis

    Je ne veux rien supprimer.

    J'essaye encore, mais je n'y connais rien en macro.

    Bonne journée

  4. #4
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    pour copier une feuille, tu as la méthode

    .Copy de l'objet sheets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbooks.sheets(1).Copy
    ce code, créé une copie de la feuille 1 dans un nouveau classeur, classeur qu'il faut enregistrer par la suite avec un chemin complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks(workbooks.count).SaveAs "C:\Mes Fichiers Excel\Mon nouveau Classeur.xls"
    Par contre, je n'ai pas bien saisi l'histoire de tes deux cellules de référence.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut
    Merci pour ton aide,

    Je ne veux pas convertir un fichier Excel en pdf.
    La macro que j'avais trouver me donnais bien un pdf, mais je doit toujours lui donner le chemin d'enregistrement.

    j'essaye de faire en sorte que lorsque je clic sur le bouton ma feuille active s'enregistre en format pdf dans un dossier bien précis.
    Exemple : C:\mon dossier\sous dossier.

    Merci
    vincent

    Les deux cellules c'est par exemple D13 un nom et L13 une date

    Je joint un fichier test pour faciliter l'aide
    Merci
    Fichiers attachés Fichiers attachés

  6. #6
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Je ne veux pas convertir un fichier Excel en pdf.
    j'essaye de faire en sorte que lorsque je clic sur le bouton ma feuille active s'enregistre en format pdf dans un dossier bien précis.
    Convertir un fichier en pdf = Enregistrer un fichier en PDF.

    je te file un code que j'ai récupéré quelque part et qui me permet d'enregistrer et imprimer en PDF dans la foulée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    'methode permettant d'enregistrer le classeur au format PDF et de l'enregistrer dans B:\
    Public Sub PrintToPDF()
     
        Dim pdfjob As PDFCreator.clsPDFCreator
        Dim sPDFName As String
        Dim sPDFPath As String
        Dim lSheet As Long
     
        Set pdfjob = New PDFCreator.clsPDFCreator
        sPDFPath = "B:\"
     
        If pdfjob.cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Can't initialize PDFCreator.", vbCritical + _
                    vbOKOnly, "PrtPDFCreator"
            Exit Sub
        End If
        With pdfjob
            '/// Change the output file name here! ///
            sPDFName = "Toto.pdf"
            .cOption("UseAutosave") = 1
            .cOption("UseAutosaveDirectory") = 1
            .cOption("AutosaveDirectory") = sPDFPath
            .cOption("AutosaveFilename") = sPDFName
            .cOption("AutosaveFormat") = 0    ' 0 = PDF
            .cClearCache
        End With
        'Print the document to PDF
        ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
     
        'Wait until the print job has entered the print queue
        Do Until pdfjob.cCountOfPrintjobs = 1
            DoEvents
        Loop
        pdfjob.cPrinterStop = False
     
        'Wait until PDF creator is finished then release the objects
        Do Until pdfjob.cCountOfPrintjobs = 0
            DoEvents
        Loop
        pdfjob.cClose
        Set pdfjob = Nothing
     
    End Sub
    a la place de la ligne sPDFPath = "B:\"

    tu met quelque chose comme ca:

    sPDFPath = "C:\Mes_Docs\"

    et a la place de sPDFName = "Toto.pdf" tu mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thisworkbook.sheets(1).Range("D13") & "_" & thisworkbook.sheets(1).Range("L13") & ".pdf"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut
    Merci pour ton code

    Mais j'ai une erreur de compilation la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim pdfjob As PDFCreator.clsPDFCreator
    Type défini par l'utilisateur non défini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Aide sur macro
    Par bedoch dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2009, 18h02
  2. Demande d'aide sur macro a double conditions
    Par zinebs dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/11/2007, 23h23
  3. RechercheV trop limité --> aide sur macro
    Par alexstain dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/10/2007, 20h29
  4. Aide sur Macro
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2007, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo