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 :

Macro Enregistrement d'une feuille sous PDF [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut Macro Enregistrement d'une feuille sous PDF
    Bonjour,

    J'ai consulté plusieurs posts semblables à mon problème et malgré ça, je n'arrive pas à apporter une correction viable à ma macro. J'en appel à votre savoir à tous pour m'aiguiller.

    J'utilise un fichier contenant 6 feuilles. La première reste active, les suivantes sont masquées.
    Avec une macro, je souhaite enregistrer une de ces feuilles (la 3ème) au format PDF en utilisant certaines données incluses dans des cellules spécifiques de la feuille (la 2ème).


    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 Enregistrer_en_PDF_Relance()
    Dim sh As Worksheet, i&
    For i = 2 To Sheets.Count
      With Sheets(i).PageSetup
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0)
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
      End With
    Next
      Application.DisplayAlerts = 0
      Sheets("Courrier_Relance").Activate
      Set sh = ActiveSheet
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\" & Sheets(2).[B27].Value & " " & Sheets(2).[C2].Value & " " & Sheets(2).[C15].Value & ".pdf"
      ActiveWorkbook.FollowHyperlink Address:="C:\" & Sheets(2).[B27].Value & " " & Sheets(2).[C2].Value & " " & Sheets(2).[C15].Value & ".pdf"
      sh.Select
    End Sub
    Une question supplémentaire: Lorsqu'une feuille est masquée, garde-t-elle sa place ?
    Si vous avez des conseils je suis preneur.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Une feuille masquée garde sa place et donc son index, mais ne peut être ni sélectionnée ni activée, forcément.

    Dès lors, elle ne pourra jamais correspondre à ActiveSheet.

    Quel est ton problème et pourquoi as-tu mis une ligne de code en rouge?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Si je rajoute au début

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Courrier_Échéancier").Visible = True
    puis en fin un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Courrier_Échéancier").Visible = False
    ça peut résoudre mon problème?

    En rouge c'est la ligne qui pose problème lors de l'exécution, avec ce message d'erreur: "erreur d'exécution '9', l'indice n'appartient pas à la sélection"

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir Excel 2007 Fusion Feuilles de Classeurs en PDFs et adapter à ton contexte
    Images attachées Images attachées  

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Non, Visible n'est pas une propriété booléenne.

    Tu dois utiliser xlSheetVisible, xlSheetHidden ou xhSheetVeryHidden. La différence entre la deuxième et la troisième est qu'avec la troisième constante, tu ne pourras pas rendre la feuille visible depuis Excel.

    Mais tu peux adresser une feuille masquée sans soucis. Le problème n'est donc pas là. De plus, la ligne que tu as mise en rouge est syntaxiquement correcte. Quel message d'erreur as-tu à l'exécution sur cette ligne?

    PS: il est dangereux d'utiliser les index de feuilles en VBA. L'insertion d'une feuille risque de mettre ton code par terre.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Le message d'erreur est le suivant: "erreur d'exécution '9', l'indice n'appartient pas à la sélection"

    PS: il est dangereux d'utiliser les index de feuilles en VBA. L'insertion d'une feuille risque de mettre ton code par terre.
    Tu me conseilles de faire comment?
    Je vais rajouter des feuilles mais pas en intercaler.

    Kiki29: merci je vais regarder ça

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Kiki29: Je n'arrive pas à trouver ce qui me concerne avec ton lien. J'ai téléchargé le classeur mais impossible à ouvrir (excel ne se lance même pas).

    Sinon concernant mon soucis, j'ai changé ce qui n'allait pas avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\" & "Relance " & Sheets(4).[H2].Value & " " & Sheets(4).[C8].Value & " " & Sheets(4).[C11].Value & ".pdf"
    Mais j'ai une autre erreur cette fois:

    "Erreur d'exécution 1004'
    Document non enregistré. Le document est peut-être ouvert ou une erreur s'est produite lors de l'enregistrement


    Cette erreur, je ne l'ai pas chez moi, uniquement à mon bureau !

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, et comme ici tout fonctionne ... Vérifie le contenu de ta chaîne ( pas de caractères interdits ).

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 13/10/2017, 09h00
  2. [AC-2007] Enregistrement des états d'une table sous PDF
    Par felitix dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/07/2017, 22h49
  3. [XL-2003] Macro SIMPLE pour enregistrer une FEUILLE en PDF?
    Par nduverger dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/11/2014, 11h46
  4. Enregistrer une feuille sous PDF puis l'imprimer
    Par timo.net dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 18/12/2012, 11h10
  5. [XL-2003] enregistrer une feuille sous un répertoire avec un numéro d'incrémentation
    Par ninicab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/10/2010, 15h59

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