Export de fichiers pdf par macro avec boucle créant le nom

Bonjour à tous,

Je cherche à créer une boucle vba qui sélectionne copie colle une variable à partir d'une liste de valeur dans un onglet de calcul et de graphique puis sélectionne deux onglets de mon fichier pour les exporter en fichier pdf.

La boucle fonctionne si j'écris le nom de destination en dur (mais du coup enregistre les fichiers les uns sur les autres et ne me laisse donc que le fichier avec la dernière valeur).

J'ai essayé vainement depuis 2 jours de définir le nom comme une variable mais ça refuse de fonctionner.

Je vous joints la macro dans l'espoir que l'un d'entre vous pourrait m'expliquer ce qui pèche. Je précise que je suis débutant et que c'est ma première tentative d'écrire une macro.

Merci d’avance à vous.

Sheets("Table des équipes").Select

Dim i As Integer

For i = 0 To 1

Sheets("Table ").Select

Dim Nomfichier As String

Nomfichier = Range("d" & (i + 3)).& ".pdf"

Range("d" & (i + 3)).Select

Range("d" & (i + 3)).Select

Selection.Copy

Range("A4").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets(Array("Graphique ARRCO", "Graphique AGIRC")).Select

Sheets("Graphique ARRCO").Activate

Application.CutCopyMode = False

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"H \Fichiers à transmettre\Île de France\ Nomfichier ", _

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _

:=False, OpenAfterPublish:=False

Next i

End Sub

Bonjour,

Pour moi il s'agit d'une macro enregistrée, que je considère donc comme "impropre à la consommation" et à réécrire...

Ceci étant, le principe d'une boucle te permettant de modifier un nom pour enregistrer 2 fichiers successivement est relativement simple : tu insères les noms en tableau dans une variable :

exemple : nom = Array("nom1", "nom2")

nom1 répond à l'indice 0 => nom(0)

nom2 répond à l'indice 1 => nom(1).

Dans ta boucle, le nom à enregistrer sera : nom(i).

Donc : chemin & nom(i)

si le chemin est commun.

Cordialement

Bonjour,

Merci pour votre réponse.

Comme je le disais c'est ma première tentative d'écriture d'une macro et je suis effectivement parti d'une macro écrite en automatique pour obtenir le vocabulaire. Je vais essayer dr'utiliser votre réponse pour reformuler ma macro.

Je ne manquerai pas derevenir vers vous pour vous indiquer si j'ai réussi, à mettre à jour ma macro à partir de votre éclairage ou si j'ai éventuellement besoin d'éclaircissement supplémentaire.

Bien cordialement

Bonjour Stephane et bienvenue sur le forum

Bonjour à tous

Un exemple pratique :

123essai-v1.xlsm (19.77 Ko)

Cela te convient-il ?

Bye !

Bonjour,

Et merci de nouveau pour votre réponse. J'avoue que ça fait trois heures que j'essaie d'appliquer la réponse de Mferrand, et je m'arrache un peu les cheveux....

Bref jusqu'à présent je n'ai pas avancé d'un iota.

Je vous remercie d'avoir pris la peine de me fournir une partie de macro qu'il faut que j'étudie pour voir si elle peut me permettre de résoudre ma difficulté.

Vos explications sont plus claires mais ne me semble pas tout à fait correspondre à mon besoin.

L'idée est de faire une boucle qui après avoir fait des mises à jour dans le fichier à partir d'une cellule "D3" enregistre 2 onglets (mais si c'est plus simple je peux n'en faire qu'un) sous format pdf avec comme nom l'intérieur de la cellule D3. pdf, puis de passer à la cellule D4, actualiser les données pour cette valeur D4 et créer un fichier dont le nom est ce que contient la cellule d4.pdf puis d5 etc.....

Je ne voie pas dans votre macro ou vous intgérez la cellule d(i) pour arriver à utiliser ce qu'elle contient pour en faire le nom du fichier concerné. Mais j'avoue que je commence à ne plus y voir très clair à force de chercher à comprendre le langage vba et sa logique.

Je vous suis très reconnaissant de l'aide que vous m'apportez et fini par me demander si mon objectif est réalisable.

Bien à vous.

Je t’ai fait une macro qui prend deux onglets de ton fichier et les enregistre sous 2 fichiers différents en leur donnant le nom qu’avaient les onglets d’origine.

Apparemment, ce n’est pas ce que tu veux.

Alors, il faut que tu me dises :

• Sur quelle feuille et dans quelle cellule se trouve le nom que tu veux donner au premier fichier qui sera issu de l’onglet ‘’Table ‘’

• Pareil pour l’onglet ‘’ Table des équipes’’ : sur quelle feuille et dans quelle cellule se trouve le nom à donner au fichier pdf dont il sera à l'origine.

Bye !

Merci encore à toi gmb pour ton aide et ta disponibilité,

Donc pour répondre à tes questions

C'est sur la feuille "Table des équipes" en cellule D3 à D81 que se trouve mes données qui doivent servir à définir le nom de fichier. (je n'ai pris que 2 occurences en supposant que la boucle pouvait être aggrandie en la dimensionnant en fonction du besoin).

Le fichier pdf a créer pour chaque occurence lui correspond toujours aux deux mêmes feuilles ("Graphique ARRCO", "Graphique AGIRC").

Pour simplifier j'ai dans l'onglet "Table des équipes" 78 équipes (cellule D3 à D81).

J'ai une base avec les données globales pour toutes ces équipes, et une feuille de calcul qui calcule tout en fonction de l'équipe renseignée. L'idée est donc par une boucle d'aller copier le nom de la première équipe dans une cellule de cette feuille de calcul. Les calcul et les graphiques se mettent à jour. Ensuite il faudrait que la macro crée un fichier pdf avec les deux onglets de graphique et qui porterait le nom de l'équipe (cellule D3 de l'onglet Table des graphiques). Puis recommencer la manipulation pour l'équipe renseignée en cellule D4 avec donc la création d'un nouveau fichier à partir des mêmes feuilles de graphiques que précédemment; etc....

Est ce que c'est plus clair ?

Pour l'instant j'arrive avec ma boucle à lui faire copier coller les noms des équipes (D3, puis D4....) sur ma feuille de calcul, mais pas à définir le nom du fichier dans la boucle. Juste à le définir en dur (et du coup il enregistre sous le même nom tous les fichiers....).

Merci encore pour ton aide.

Bien cordialement.

StephaneChandre a écrit :

Est ce que c'est plus clair ?

Non, pas du tout.

Désolé mais je passe la main.

Bye !

Bonjour Gmb,

Merci encore pour ton aide et le temps pris pour essayer de résoudre mon problème. Si quelqu'un arrive à comprendre mon besoin je suis toujours preneur d'une solution si celle ci existe.

Bien cordialement

Bonjour à tous,

J'ai fini par trouver pourquoi ça ne marchait pas.Le nom et le chemin sont limités en caractère. En réduisant la taille du chemin ça fonctionne.

Merci encore à la communauté pour son aide.

Rechercher des sujets similaires à "export fichiers pdf macro boucle creant nom"