Créer un fichier à partir de données Excel

Geof53

XLDnaute Nouveau
Bonjour à tous,
Je suis actuellement en train de participer à l'évaluation du risque chimique dans mon entreprise.
Je souhaiterai créer à partir du fichier Excel en pièce jointe créer un doc (Word ou PDF) à partir de l'onglet "Notice de poste" qui se rempli automatiquement à partir de l'onglet "Inventaire".
L'idée serai de créer une macro pour automatiser la création de fiche spécifique à chaque ligne.
Est-ce possible ou faisable relativement facilement ?
Merci d'avance.
Cordialement Geof 53
 

Pièces jointes

  • Evaluation du risque chimique.zip
    290.5 KB · Affichages: 69
  • Notice de poste.zip
    254.9 KB · Affichages: 55
  • Evaluation du risque chimique.zip
    290.5 KB · Affichages: 68
  • Notice de poste.zip
    254.9 KB · Affichages: 51

Marc L

XLDnaute Occasionnel

Edit : je me suis fait avoir par un paramètre, mea culpa !


Code:
Sub Enregistrer_en_PDF()
    Feuil1.ExportAsFixedFormat xlTypePDF, "C:\Users\geoffroy\Desktop\" & Feuil1.[B1].Text & ".pdf", xlQualityStandard, True, False
End Sub
Après l'enregistrement du pdf, l'ouvrir via l'Explorateur Windows …

Pour les images, sont-elles disponibles en local sur le disque dur ? (possibilité de les inclure via formule)
 
Dernière édition:

Geof53

XLDnaute Nouveau
Re : Créer un fichier à partir de données Excel

Ça marche nickel chrome avec cette nouvelle macro :D Excellent !

Pour les images, elles sont en local mais elles peuvent aussi provenir du fichier Excel d'origine si c'est plus facile de les intégrer.
Je remets le fichier et quelques images pour exemple.

Si on part sur les images en local, on va partir du dossier C:\Users\geoffroy\Desktop\Risque chimique
 

Pièces jointes

  • pollut.jpg
    pollut.jpg
    10.7 KB · Affichages: 43
  • explos.jpg
    explos.jpg
    7.4 KB · Affichages: 38
  • acid.jpg
    acid.jpg
    7.3 KB · Affichages: 43
  • Evaluation du risque chimique.zip
    292.5 KB · Affichages: 41

Marc L

XLDnaute Occasionnel
Changement de voie !

Au préalable, dans la configuration de la feuille modèle désactiver l'affichage des zéros …

Toujours dans la feuille modèle, placer les logos comme s'ils étaient permanents
et ils doivent recouvrir l'affichage de la cellule située en dessous.

Lors de l'impression, selon le résultat de la formule de la cellule correspondante,
j'activerais ou pas leur propriété Imprimer l'objet.

Une fois réalisé, joindre le classeur à jour …
 

Geof53

XLDnaute Nouveau
Re : Créer un fichier à partir de données Excel

Merci pour ton aide Marc L !

J'ai modifié le fichier en pièce jointe comme demandé en incluant les logo sur le modèle (d'ailleurs j'ai changé le nom de cet onglet en "Fiche de poste", je ne sais pas si ça a un impact sur la macro).

J'ai également modifié l'onglet "Fiche de poste" en ajoutant une colonne (la nouvelle colonne B) qui contient d'autres logos et une nouvelle colonne C un report de cellule : =INDIRECT("Inventaire!AE"&_No) puis AF puis AG. Idem, je souhaiterai faire apparaitre le logo uniquement s'il y a une valeur inscrite en =INDIRECT("Inventaire!AE"&_No) puis en =INDIRECT("Inventaire!AF"&_No) et ainsi de suite.

J'espère réussir à me faire comprendre :confused:

PS: J'ai créé un dossier Risque chimique sur mon bureau et tenté de modifier la macro comme ceci mais cela ne fonctionne pas et je n'arrive pas à retrouver mon erreur, quelle est-elle ?
Code:
Sub Enregistrer_en_PDF()
    Feuil1.ExportAsFixedFormat xlTypePDF, "C:\Users\geoffroy\Desktop[COLOR="#00FF00"]\Risque chimique[/COLOR]" & Feuil1.[B1].Text & ".pdf", xlQualityStandard, True, False
End Sub
 

Pièces jointes

  • Evaluation du risque chimique.zip
    290.7 KB · Affichages: 77

Marc L

XLDnaute Occasionnel

J'ai fait l'erreur de copier/coller depuis le forum et
cela a ajouté initialement une balise couleur du forum dans le code !

Depuis le post #16 a été corrigé (t'as dû copier depuis le mail).

Edit : et dans la feuille Fiche de poste la donnée de la cellule B1 est depuis passée en C1 …
 
Dernière édition:

Marc L

XLDnaute Occasionnel
Le changement de nom d'une feuille n'a pas d'incidence car j'utilise son CodeName et non pas son nom …

Copier le code suivant dans le module de Feuil9 (Inventaire) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = [_No].Address Then
        With Feuil1
            For R% = 1 To 3
                .Shapes("Picture " & 40 + R).Visible = .Cells(3 + R, 1).Value <> 0
            Next
            For R = 1 To 2
                .Shapes("Image " & 9 + R).Visible = .Cells(3 + R, 3).Value <> 0
            Next
        End With
    End If
End Sub
Varier manuellement la valeur de la cellule AL1 (_No) de la feuille Inventaire
et vérifier à chaque modification l'incidence sur la feuille Fiche de poste
 
Dernière édition:

Marc L

XLDnaute Occasionnel

Avec le travail effectué en amont, pour enregistrer chaque fiche
il suffit de boucler sur les numéros de lignes des fiches de la feuille Inventaire
et pour chaque fiche mettre à jour la cellule _No puis enregistrer en pdf :

VB:
Sub Tout_Enregistrer_en_PDF()
    Const DOSSIER = "C:\Users\geoffroy\Desktop\Risque chimique\"
'    DOSSIER$ = ThisWorkbook.Path & "\"
     Application.ScreenUpdating = False
For R& = 4 To Feuil9.Cells(Feuil9.Rows.Count, 2).End(xlUp).Row
    [_No].Value = R
    Feuil1.ExportAsFixedFormat xlTypePDF, DOSSIER & Feuil1.[C1].Value & ".pdf", xlQualityStandard, True, False
Next
    Application.ScreenUpdating = True
End Sub
_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …
 
Dernière édition:

Geof53

XLDnaute Nouveau
Re : Créer un fichier à partir de données Excel

Bonjour Marc L,
Merci pour ton aide. Je serai absent du forum pour un moment, je reviendrai prochainement (début juillet) pour continuer dans cette voie car cela avance, on approche du but et je te remercie encore pour le temps et l'aide apportée ;)
@ très bientôt.
Geof53
 

Geof53

XLDnaute Nouveau
Bonjour Marc L,
Je suis de retour de vacances requinqué et prêt à en découdre avec mon fichier Excel et sa macro :-D

Voici la macro qui est rentrée :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [_No].Address Then
With Feuil1
For R% = 1 To 3
.Shapes("Picture " & 40 + R).Visible = .Cells(3 + R, 1).Value <> 0
Next
For R = 1 To 2
.Shapes("Image " & 9 + R).Visible = .Cells(3 + R, 3).Value <> 0
Next
End With
End If
End Sub
Sub Tout_Enregistrer_en_PDF()
Const DOSSIER = "C:\Users\geoffroy\Desktop\Risque chimique\"
' DOSSIER$ = ThisWorkbook.Path & "\"
Application.ScreenUpdating = False
For R& = 4 To Feuil9.Cells(Feuil9.Rows.Count, 2).End(xlUp).Row
[_No].Value = R
Feuil1.ExportAsFixedFormat xlTypePDF, DOSSIER & Feuil1.[C1].Value & ".pdf", xlQualityStandard, True, False
Next
Application.ScreenUpdating = True
End Sub
Elle s’exécute bien et m'imprime en PDF plusieurs fichiers "Produit N°1 ; "Produit N°2" ; etc

En revanche, pour la partie affichage des logos, tous les logos s'affichent même ceux pour lequels il n'y a rien d'indiqué.

Merci d'avance.
Geof53
 

Pièces jointes

  • Produit N°1.pdf
    151 KB · Affichages: 39
  • Evaluation du risque chimique.xls
    987.5 KB · Affichages: 39

Geof53

XLDnaute Nouveau
Bonjour à tous,

Je suis un peu coincé sur cette problématique des logos qui s'affichent :(. Est-ce que quelqu'un à une idée pour m'avancer ?
Je peux re-synthétiser ma demande si vous voulez :rolleyes:

Merci d'avance.
Geof53
 

Pièces jointes

  • Evaluation du risque chimique.xls
    987.5 KB · Affichages: 120
  • Produit N°1.pdf
    151 KB · Affichages: 33

Geof53

XLDnaute Nouveau
Coucou tout le monde,
HELPPPPPPPPPPPPPPPPP :( Est-ce qu'une bonne âme peut m'aider sur ma problématique à la suite de Marc L :)

Actuellement, je réalise 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 uniquement celui-ci.
A partir du fichier Excel en pièce jointe, j'ai besoin de créer un document (si possible en PDF) qui serai l'onglet "Fiche de poste" (qui s'alimente manuellement à partir de l'onglet "Inventaire"). Cet onglet se modifie manuellement quand je change le chiffre situé dans la case "Inventaire BA" qui s'appelle "_No"
Mon souhait serait d'avoir une macro qui me crée en pdf toutes les "Fiches de poste" possibles en cliquant sur le bouton situé dans cet onget "Fiche de poste".
J'espère avoir été clair...

Merci d'avance.
Geof53
 

Pièces jointes

  • Evaluation du risque chimique - Complet.xls
    3.7 MB · Affichages: 83
  • Produit N°1.pdf
    215.4 KB · Affichages: 38

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 070
Membres
103 455
dernier inscrit
saramachado