Macro d'enregistrement d'une feuille de calcul

Résolu/Fermé
p.girard Messages postés 48 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 29 août 2014 - Modifié par pijaku le 18/06/2014 à 09:21
p.girard Messages postés 48 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 29 août 2014 - 18 juin 2014 à 09:44
Bonjour,

J'essaye d'automatiser l'enregistrement de certain fichier mais ma macro ne fonctionne pas !
J'utilise excel 2010.

Je souhaite enregistrer en pdf la feuille 2 de calcul de mon fichier Mais je chercher aussi à automatiser le nom des fichiers d'enregistrement.
Mon problème est que la cellule "ActiveCell" que je souhaite avoir est positionnée sur la feuille 1 du classeur.


Voilà le code :

Sub Export_PDF()
    Dim fichier As String
    
    With Worksheets("Feuil2")
        fichier = Format(Now, "yyyy-mm-dd") & " " & "Fichierauto" & " " & .Range(" ActiveCell.Value") & ".pdf"
            

  
        Chemin = rep & "\\dossierblabla\" & fichier
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With
End Sub


Lorsque je lance ma macro cela ne fonctionne pas.

Des idées ?

En vous remerciant,


PG
A voir également:

5 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
18 juin 2014 à 09:27
Bonjour,

Plusieurs choses ne vont pas.

1- dans un bloc With, si tu mets un point devant un objet, celui-ci se rapporte à l'objet référencé dans le bloc With.
Ainsi :
With Sheets("Feuil2")
  .Range("A1")
End With

Fait référence à la cellule A1 de la feuille Feuil2

Si tu veux faire référence à la cellule A1 de la feuille Feuil1, tout en étant dans un bloc With Sheets("Feuil2"), il faut le préciser dans le code.
Le code suivant dit que la cellule A1 de la feuille Feuil1 doit être égal à la cellule A3 de la feuille Feuil2 :
With Sheets("Feuil2")
  Sheets("Feuil1").Range("A1") = .Range("A3")
End With


2- Range("ActiveCell.Value") fait référence à un Range que tu aurais préalablement nommé "ActiveCell.Value" ...
Je ferais comme ceci à ta place :

Sub Export_PDF()
    Dim fichier As String, NomAuto As String
    
NomAuto = ActiveCell.Value 'ou Sheets("Feuil1").Range("A18") par exemple
    With Worksheets("Feuil2")
        fichier = Format(Now, "yyyy-mm-dd") & " " & "Fichierauto" & " " & NomAuto & ".pdf"  
        Chemin = rep & "\\dossierblabla\" & fichier
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With
End Sub

sous réserve d'autres erreurs bien entendu
1
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
18 juin 2014 à 09:24
Bonjour,

Ton nouveau fichier PDF est il enregistré dans le même répertoire que le fichier souche

et si je comprends bien, le nom du nouveau fichier est la valeur de la cellule active Feuil1

c'est bien cela
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 18/06/2014 à 09:31
Vous pouvez déjà enlevé les guillmets de l'active celle

.Range(ActiveCell.Value)
// et pas
.Range(" ActiveCell.Value")


Et quelle est la valeur de la ceullule active ?

*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
18 juin 2014 à 09:43
Re,

en l'absence de réponse, en supposant que le nouveau fichier s"enregistre dans le même réperetoire

Sub Dupliquer_FormatPDF()
Dim chemin, nom As String
Application.DisplayAlerts = False '-------Annulation des alertes
chemin = ActiveWorkbook.Path
nom = Format(Now, "yyyy-mm-dd ") & ActiveCell.Value & ".PDF" 'nom du nouveau classeur dans cellule et définir extension si différente d'application
'---------------------Nom du fichier à envoyer extension PDF
Sheets("Feuil2").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & nom, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'---------------------------------------Appel procédure d'envoi
Application.DisplayAlerts = True '-------rétablissement des alertes
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
p.girard Messages postés 48 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 29 août 2014
Modifié par p.girard le 18/06/2014 à 09:44
Salut à vous deux les gars ! Merci de la réponse très rapide!

Franck merci pour ta réponse très pédagogique (et oui je débute^^)

Tu as bien en effet réglé mon problème et je comprends mieux la façon dont Excel procède grâce à toi \o/

Le problème venait bien du fait qu'il fallait faire référence à la feuil1 tout en étant dans le With sheet (feuill2) ^^

Tout fonctionne à merveille maintenant donc merci bien :)
Je vais avoir de beau PDF maintenant :D

Encore merci !

PG

PS : Mike, le chemin du fichier était bidon c'était juste pour l'exemple.
0