Problème :code n'enregistre que la dernière feuille

Bonjour,

svp

comment modifier ce code afin d'enregistrer toutes les feuilles jusqu'au numéro écrit dans la cellule N7 format:pdf

Sub Macro1()
'
' Macro1 Macro
'

'
For i = 1 To [N7]
    [N5] = i
     ActiveCell.FormulaR1C1 = "i"
    ChDir "C:\Users\pc\Desktop\TO PDF"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\pc\Desktop\TO PDF\1.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
  Next
    [N5] = 1

End Sub

maintenant il enregistre seulement la derniere

merci beaucoup

bjr

svp

y a t'il des propositions???

Bonjour,

y a t'il des propositions???

Quelle impatience !! Au bout d'une heure, relancer la discussion, c'est un peu prématuré !

Par contre, tenter de comprendre le code qu'on a adapté, c'est souvent une bonne idée:

  • Que représente "ActiveSheet", à l'intérieur de ta boucle For ?
  • Par ailleurs, si tu donnes le même nom ("1.pdf") à chaque fichier que tu enregistres -en un emplacement identique- dans cette même boucle, que risque-t-il d'arriver ?

BONJOUR.

merci pour ta réponse

j'ai fais cette modification

toujours erreur

il enregistre seulement une

Sub Macro4()

For i = 1 To [N7]
    [N5] = i
    Range("N5:O5").Select
    ActiveCell.FormulaR1C1 = "1"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\pc\Desktop\to pdf\1&N7.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Next
    [N5] = 1

End Sub

tu peux m'aider à le modifier

merci d'avance

Re-bonjour,

J'ai conseillé de prendre du temps pour comprendre (ce qui n'est pas la même chose que procéder par essais et erreurs)

Quand tu écris

"C:\Users\pc\Desktop\to pdf\1&N7.pdf"

... la dernière partie représente le nom du fichier, on est d'accord ?

À chaque passage dans ta boucle For, rien dans la partie entre guillemets ne variera et donc, chaque fois, un fichier nommé "1&N7.pdf" sera généré. D'autre part, même le contenu de la cellule N7 ne variera à aucun moment, puisque tu y inscris une valeur avant l'exécution du code.

C'est ta variable i qui va changer de valeur à chaque passage dans la boucle.

Si tu souhaites enregistrer des fichiers dont le nom correspondra simplement au chiffre de 1 à x, représenté par la variable i, essaie quelque chose comme:

"C:\Users\pc\Desktop\to pdf\" & i & ".pdf"

Attention: il reste toujours le premier problème signalé dans mon message précédent

Bonjour,

Faut commencer à apprendre que dès que tu mets des guillemets, tu émets une valeur de type String (texte), que l'on ne met jamais de variable entre guillemets (tu n'utilises plus alors la variable), et que dans au moins 99% des cas on ne met pas de nombre entre guillemets car il est inutile de les transformer en texte, VBA s'en charge lorsque c'est nécessaire...

Ce sujet fait doublon avec ton autre sujet sur lequel j'ai répondu...

Je note que je t'avais fourni une ligne de code d'enregistrement en pdf, ligne épurée des éléments inutiles. Tu as cru bon ne pas l'utiliser et au profit d'un code tel qui sort de l'enregistreur. J'avais également conseillé d'utiliser des variables pour composer le chemin et le nom du fichier, conseil que tu ignores tout en continuant de méconnaître l'utilisation des guillemets comme déjà indiqué.

Dans des conditions où il s'avère qu'il reprendre des explications plus que basiques, ce qui va être particulièrement laborieux, avec une tendance marquée de ta part à ne pas suivre les conseils... ma participation ne peut que s'en tenir là !

Cordialement.

merci bq

mais j ai reçu 25 copies de la meme feuille.

Re,

Salut MFerrand (pas vu que, dans une autre discussion, tu avais déjà essayé d'éveiller la curiosité du même demandeur )

j ai reçu 25 copies de la meme feuille

oui, c'est normal ... pour la raison que j'évoque depuis mon premier message

Salut U.Milité !

bjr

j'ai enfin j'ai résolu le problème

par:

Sub Macro1()
'
' Macro1 Macro
'

Application.ScreenUpdating = False
For i = 1 To [N7]
    [N5] = i
     ActiveCell.FormulaR1C1 = "i"
   ChDir "C:\Users\pc\Desktop\TO PDF\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\pc\Desktop\TO PDF\" & [N5] & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
  Next
    [N5] = 1

End Sub

svp

y a t il un code MsgBox?

pour choisir le nom et la place d ' enregistrement.

merci d'avance

j'ai enfin j'ai résolu le problème

... Un doute m'étreint ...

Rechercher des sujets similaires à "probleme code enregistre que derniere feuille"