[Résolu] Fichier PDF à partir de données Excel

Geof53

XLDnaute Nouveau
Bonjour tout le monde,

Voici ma demande, je réalise actuellement l'évaluation du risque chimique dans mon entreprise avec le fichier Excel joint.
Pour ce faire, je compile toutes les infos dans l'onglet "Inventaire" et c'est uniquement cet onglet qui me sert de base de données d'entrée pour alimenter le reste du fichier.
L'onglet "Fiche de poste" s'alimente donc mais manuellement à partir de l'onglet "Inventaire". En clair, l'onglet "Fiche de poste" se modifie manuellement quand je change le chiffre situé dans la case "Fiche de poste F1" qui s'appelle "_No" pour pour avoir des fiches de postes produit par produit (fichier PDF joint). J'utilise des formules du style "=INDIRECT("Inventaire!Nom de colonne"&_No)" pour remplir les données dans "Fiche de poste". J'espère que vous m'avez suivi dans mes explications.

Mon souhait serait d'avoir une macro qui me créé (si possible en enregistrement/impression pdf) toutes les "Fiches de poste" possibles selon le nombre de lignes remplies dans l'onglet "Inventaire".

J'espère avoir été suffisamment clair et exhaustif...

Merci d'avance de votre aide.
Geof53
 

Pièces jointes

  • Produit N°3.pdf
    213.3 KB · Affichages: 69
  • Evaluation du risque chimique.xls
    3.6 MB · Affichages: 93

youky(BJ)

XLDnaute Barbatruc
Bonjour Geof53,
Copier cette macro dans un Module et l'affecter à ton bouton
Je l'ai pas testée mais pense être ok
Bruno
VB:
Sub myPDF()
With Feuil7
For lig = 2 To Feuil9.[B65000].End(3).Row
.[C1] = Feuil9.Cells(lig, 2)
chemin = ThisWorkbook.Path & "\"
fichier = .[C1]
On Error Resume Next
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & fichier & ".pdf"
If Err > 0 Then
MsgBox "Impossible de créer le PDF  " & .[C1], vbExclamation, "ANNULATION"
Err.Clear
End If
Next
End With
End Sub

PS les PDF sont enregistrés direct dans le même dossier
 

Geof53

XLDnaute Nouveau
Merci pour ton aide youky(BJ),
J'ai essayé de comprendre ta macro mais c'est au dessus de mes compétences :-(
Après exécution de ta macro, voici ce que ça donne, j'ai essayé de te donner le maximum d'éléments pour voir d'où ça vient.
A mon humble avis, cela à un lien avec la cellule qui est appelée "_No" et peut-être un décalage de ligne mais je ne peux t'en dire plus... J'ai mis le fichier de base avec ta macro en pièce jointe ainsi que les fichiers créés après exécution de la macro.

Il y a quelques couacs :
  • Créé un fichier "supplémentaire" qui s'appelle "Rubrique 1.pdf"
  • Créé 4 fichiers identiques sauf la première ligne qui est bien le nom du fichier
  • Cela m'écrase la première ligne de l'onglet "Fiche de poste" après l’exécution de la macro et m'inscrit justement "Rubrique 1"
  • Ces 4 fichiers identiques sont toujours identiques à celui qui est créé "manuellement" d'après la case "Fiche de poste F1" alias "_No"
Et des trucs nickels :
  • Créé le nombre de fichier PDF correct et avec le bon nom
  • Les fichiers s'enregistrent dans le même dossier

Merci de ton aide et de ton temps.
Geof53
 

Pièces jointes

  • Evaluation du risque chimique.xls
    3.6 MB · Affichages: 109
  • Produit N°1.pdf
    202.5 KB · Affichages: 81
  • Produit N°2.pdf
    202.8 KB · Affichages: 82
  • Rubrique 1.pdf
    203 KB · Affichages: 83

Geof53

XLDnaute Nouveau
Merci de ta réactivité.
C'est mieux, car je n'ai plus la création d'un fichier qui s'appelle "Rubrique 1" mais il reste encore quelques bugs mis ci-dessous
Couacs :
  • Créé 4 fichiers identiques sauf la première ligne qui est bien le nom du fichier
  • Cela m'écrase la première ligne de l'onglet "Fiche de poste" après l’exécution de la macro et m'inscrit "Produit N°4" (dernière ligne du fichier)
  • Ces 4 fichiers identiques sont toujours identiques à celui qui est créé "manuellement" d'après la case "Fiche de poste F1" alias "_No"
Trucs nickels :
  • Créé le nombre de fichier PDF correct et avec le bon nom
  • Les fichiers s'enregistrent dans le même dossier
@+
Geof53
 

youky(BJ)

XLDnaute Barbatruc
Oups! je pensais que tes formules allaient avec la valeur de C2 mais non!
Maintenant plus de formules la macro renseigne
VB:
Sub myPDF()
With Feuil7
For lig = 4 To Feuil9.[B65000].End(3).Row
.[C1] = Feuil9.Cells(lig, 2)
For k = 40 To 49
.Cells(k - 35, 3) = Feuil9.Cells(lig, k)
Next
.[A15] = Feuil9.Cells(lig, 9)
.[A17] = Feuil9.Cells(lig, 10)

chemin = ThisWorkbook.Path & "\"
fichier = .[C1]
On Error Resume Next
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & fichier & ".pdf"
If Err > 0 Then
MsgBox "Impossible de créer le PDF  " & .[C1], vbExclamation, "ANNULATION"
Err.Clear
End If
Next
End With
End Sub
Je mets le fichier mais doit être enregistré avant l'exécution de la macro
Bruno
 

Pièces jointes

  • Evaluation du risque chimique (1).xls
    3.5 MB · Affichages: 94

Geof53

XLDnaute Nouveau
Yes c'est nickel, çà marche du feu de dieu :)
Par contre, tu va me trouver relou/pénible/chiant/enquiquinant (bref, je te laisse choisir...) mais est-ce qu'il est possible qu'après l’exécution de la macro les formules du style "=INDIRECT("Inventaire!Nom de colonne"&_No)" ne soient pas écrasées dans l'onglet "Fiche de poste".
Edit >-> En fait, pas besoin, je viens d'essayer et en exécutant la macro, ça recréé tous les fichiers PDF donc c'est perfect !!! :cool:
Merci encore.
Geof53
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Salut le pénible,
Dans la macro en bas avant le End Width
insère ceci
VB:
.[C1].formula="=INDIRECT(""Inventaire!B""&_No)
.[C5].formula="=INDIRECT(""Inventaire!AN""&_No)
.[C6].formula="=INDIRECT(""Inventaire!AO""&_No)
.[C7].formula="=INDIRECT(""Inventaire!AP""&_No)
.[C8].formula="=INDIRECT(""Inventaire!AQ""&_No)
.[C9].formula="=INDIRECT(""Inventaire!AR""&_No)
.[C10].formula="=INDIRECT(""Inventaire!AS""&_No)
.[C11].formula="=INDIRECT(""Inventaire!AT""&_No)
.[A15].formula="=INDIRECT(""Inventaire!I""&_No)
.[A17].formula="=INDIRECT(""Inventaire!J""&_No)

Bruno
 

Geof53

XLDnaute Nouveau
J'ai l’habitude de ce surnom, ça ne me change pas trop ;)
Désolé j'avais édité mon message et entre temps tu as ajouté la solution.
Donc, pour le coup c'est 200% génial :p
Macro qui déchire.
Pour résumer : un grand merci à toi Bruno/youky(BJ).

Je mets le fichier en bas si d'autres (on ne sait jamais) en ont besoin
 

Pièces jointes

  • Evaluation du risque chimique.xls
    3.6 MB · Affichages: 96

Geof53

XLDnaute Nouveau
Oups, boulette... (le pénible c'est pas pour rien ;)
J'ai mieux regarder le fichier et dans les fiches créés en PDF, il y a un problème.
En exécutant la macro, elle me complète et m'imprime en PDF les cases "Fiche de poste C12" et "Fiche de poste C13" alors que celle-ci devraient être vides (toujours). Elle va chercher les infos dans "INDIRECT("Inventaire!AU"&_No) " et "INDIRECT("Inventaire!AV"&_No)"
Est-il possible de l'enlever ?
Geof53
 

Pièces jointes

  • Evaluation du risque chimique.xls
    3.6 MB · Affichages: 92
  • Produit N°5.pdf
    202.1 KB · Affichages: 67

youky(BJ)

XLDnaute Barbatruc
Re pénible,
Geof il va falloir te mettre un peu à bien comprendre le vba ,il faut essayer un peu de bricoler et voir le résultat.
Remplace le 49 par 47
For à Next est une boucle qui incrémente dans notre cas la variable "k"
Je lui dit Cells(k-35 1ere passe c'est la ligne k-35 donc 5
With Feuil7
For lig = 4 To Feuil9.[B65000].End(3).Row
.[C1] = Feuil9.Cells(lig, 2)
For k = 40 To 47
.Cells(k - 35, 3) = Feuil9.Cells(lig, k)
Next
Bruno
 

Geof53

XLDnaute Nouveau
Merci à toi pour l'explication. Généralement j'essaye de bouiner/bidouiller pour voir ce que ça donne mais là j'étais un peu sec devant ta macro donc je ne savais pas trop quoi faire et j'avoue n'avoir pas cherché des heures. Maintenant j'ai compris la boucle For / Next (que je n'avais jamais utilisé avant) et l'utilisation de la variable "k".
J'ai même fait une correction mineure pour la déclaration de "k" c'est For k = 40 To 46 . Je sais, ce n'est pas grand chose mais à mon échelle, c'est beaucoup :rolleyes:. Il y tellement de possibilités sous Excel que c'est facile de s'y perdre, surtout avec des connaissances limitées (mais augmentées aujourd’hui grâce à toi).
Merci à toi pour ton aide, tes explications et ton temps.
Bonne continuation
Geof53
 

Pièces jointes

  • Evaluation du risque chimique.xls
    3.6 MB · Affichages: 114

Discussions similaires

M
Réponses
9
Affichages
473
Maikales
M

Statistiques des forums

Discussions
312 209
Messages
2 086 270
Membres
103 168
dernier inscrit
isidore33