Problème vba exportation données sur word
RésoluIvyJu Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème avec mon code VBA. J'ai un formulaire dans lequel je peux inscrire des entrées, rechercher des lignes et j'aimerais le faire exporter sur un document Word. j'ai conçu un modèle avec tous les signets, mais j'ai à chaque fois un problème.
Pouvez-vous m'aider?
Je vous mets le code concernant l'exportation.
Private Sub cmd_exporter_Click() Dim wordApp As Object Dim doc As Object Dim templatePath As String Dim filePath As String Dim bm As Object Dim bookmarkNames As Variant Dim i As Integer On Error GoTo ErrorHandler ' Créer une instance de Word Set wordApp = CreateObject("Word.Application") ' Chemin du modèle de document Word templatePath = "C:\Users\julie\Desktop\modele_CDD_final2.dotm" ' Vérifier l'existence du fichier modèle If Dir(templatePath) = "" Then MsgBox "Le fichier modèle n'existe pas à l'emplacement spécifié : " & templatePath, vbExclamation Exit Sub End If ' Ouvrir le modèle Set doc = wordApp.Documents.Open(templatePath) ' Définir le chemin et le nom du fichier filePath = "C:\Users\julie\Desktop\contrat_cdd_" & Me.nom_employe.Value & "_" & Me.nom_entreprise.Value & ".docm" ' Tableau des signets et des valeurs à insérer bookmarkNames = Array("nom_entreprise", "type_entreprise", "nom_entreprise1", "type_entreprise1", "num_rue_entreprise", "rue_entreprise", _ "npa_entreprise", "ville_entreprise", "siret", "ape", "immat_employeur", "nom_urssaf", "titre_representant", _ "nom_representant", "prenom_representant", "titre_representant2", "nom_representant2", "prenom_representant2", _ "role_representant", "titre_employe", "nom_employe", "prenom_employe", "titre_employe1", "nom_employe1", _ "prenom_employe1", "titre_employe2", "nom_employe2", "prenom_employe2", "titre_employe3", "nom_employ3e", _ "prenom_employe3", "titre_employe4", "nom_employe4", "prenom_employe4", "titre_employe5", "nom_employe5", _ "prenom_employe5", "titre_employe6", "nom_employe6", "prenom_employe6", "titre_employe7", "nom_employe7", _ "prenom_employe7", "titre_employe8", "nom_employe8", "prenom_employe8", "titre_employe9", "nom_employe9", _ "prenom_employe9", "titre_employe0", "nom_employe0", "prenom_employe0", "titre_employe11", "nom_employe11", _ "prenom_employe11", "titre_employe12", "nom_employe12", "prenom_employe12", "num_rue_employe", "rue_employe", _ "npa_employe", "ville_employe", "date_naissance", "ville_naissance", "pays_naissance", "dep_naissance", _ "nationalite", "num_secu", "intitule_poste", "niveau_poste", "coefficient", "cadre_ou_non", "date_debut", _ "date_fin", "periode_essai", "debut_essai", "fin_essai", "nombre_heures", "mois_ou_semaine", "salaire", _ "par_mois_semaine", "lieu_contrat", "date_contrat", "convention", "date_convention", "idcc", "num_brochure", _ "nb_heures_mois") ' Remplir les signets avec les données du formulaire With doc .Bookmarks("nom_entreprise").Range.Text = Me.nom_entreprise.Value .Bookmarks("type_entreprise").Range.Text = Me.type_entreprise.Value .Bookmarks("nom_entreprise1").Range.Text = Me.nom_entreprise.Value .Bookmarks("type_entreprise1").Range.Text = Me.type_entreprise.Value .Bookmarks("num_rue_entreprise").Range.Text = Me.num_rue_entreprise.Value .Bookmarks("rue_entreprise").Range.Text = Me.rue_entreprise.Value .Bookmarks("npa_entreprise").Range.Text = Me.npa_entreprise.Value .Bookmarks("ville_entreprise").Range.Text = Me.ville_entreprise.Value .Bookmarks("siret").Range.Text = Me.siret.Value .Bookmarks("ape").Range.Text = Me.ape.Value .Bookmarks("immat_employeur").Range.Text = Me.immat_employeur.Value .Bookmarks("nom_urssaf").Range.Text = Me.nom_urssaf.Value .Bookmarks("titre_representant").Range.Text = Me.titre_representant.Value .Bookmarks("nom_representant").Range.Text = Me.nom_representant.Value .Bookmarks("prenom_representant").Range.Text = Me.prenom_representant.Value .Bookmarks("titre_representant2").Range.Text = Me.titre_representant.Value .Bookmarks("nom_representant2").Range.Text = Me.nom_representant.Value .Bookmarks("prenom_representant2").Range.Text = Me.prenom_representant.Value .Bookmarks("role_representant").Range.Text = Me.role_representant.Value .Bookmarks("titre_employe").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe1").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe1").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe1").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe2").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe2").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe2").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe3").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employ3e").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe3").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe4").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe4").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe4").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe5").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe5").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe5").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe6").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe6").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe6").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe7").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe7").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe7").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe8").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe8").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe8").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe9").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe9").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe9").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe0").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe0").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe0").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe11").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe11").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe11").Range.Text = Me.prenom_employe.Value .Bookmarks("titre_employe12").Range.Text = Me.titre_employe.Value .Bookmarks("nom_employe12").Range.Text = Me.nom_employe.Value .Bookmarks("prenom_employe12").Range.Text = Me.prenom_employe.Value .Bookmarks("num_rue_employe").Range.Text = Me.num_rue_employe.Value .Bookmarks("rue_employe").Range.Text = Me.rue_employe.Value .Bookmarks("npa_employe").Range.Text = Me.npa_employe.Value .Bookmarks("ville_employe").Range.Text = Me.ville_employe.Value .Bookmarks("date_naissance").Range.Text = Me.date_naissance.Value .Bookmarks("ville_naissance").Range.Text = Me.ville_naissance.Value .Bookmarks("pays_naissance").Range.Text = Me.pays_naissance.Value .Bookmarks("dep_naissance").Range.Text = Me.dep_naissance.Value .Bookmarks("nationalite").Range.Text = Me.nationalite.Value .Bookmarks("num_secu").Range.Text = Me.num_secu.Value .Bookmarks("intitule_poste").Range.Text = Me.intitule_poste.Value .Bookmarks("niveau_poste").Range.Text = Me.niveau_poste.Value .Bookmarks("coefficient").Range.Text = Me.coefficient.Value .Bookmarks("cadre_ou_non").Range.Text = Me.cadre_ou_non.Value .Bookmarks("date_debut").Range.Text = Me.date_debut.Value .Bookmarks("date_fin").Range.Text = Me.date_fin.Value .Bookmarks("periode_essai").Range.Text = Me.periode_essai.Value .Bookmarks("debut_essai").Range.Text = Me.debut_essai.Value .Bookmarks("fin_essai").Range.Text = Me.fin_essai.Value .Bookmarks("nombre_heures").Range.Text = Me.nombre_heures.Value .Bookmarks("mois_ou_semaine").Range.Text = Me.mois_ou_semaine.Value .Bookmarks("salaire").Range.Text = Me.salaire.Value .Bookmarks("par_mois_semaine").Range.Text = Me.par_mois_semaine.Value .Bookmarks("lieu_contrat").Range.Text = Me.lieu_contrat.Value .Bookmarks("date_contrat").Range.Text = Me.date_contrat.Value .Bookmarks("convention").Range.Text = Me.convention.Value .Bookmarks("date_convention").Range.Text = Me.date_convention.Value .Bookmarks("idcc").Range.Text = Me.idcc.Value .Bookmarks("num_brochure").Range.Text = Me.num_brochure.Value .Bookmarks("nb_heures_mois").Range.Text = Me.nb_heures_mois.Value End With ' Enregistrer le document doc.SaveAs2 filePath doc.Close SaveChanges:=False wordApp.Quit ' Libérer les objets Set doc = Nothing Set wordApp = Nothing ' Message de confirmation MsgBox "Le document Word a été créé avec succès.", vbInformation Exit Sub ErrorHandler: ' Gestion des erreurs MsgBox "Erreur lors de l'ouverture du modèle Word : " & Err.Description, vbExclamation ' Assurez-vous que les objets Word sont fermés en cas d'erreur If Not doc Is Nothing Then doc.Close SaveChanges:=False Set doc = Nothing End If If Not wordApp Is Nothing Then wordApp.Quit Set wordApp = Nothing End If End Sub Function GetBookmarkValue(bookmarkName As String) As String Select Case bookmarkName Case "nom_entreprise", "nom_entreprise1", "nom_employe", "nom_employe1", "nom_employe2", "nom_employe3", "nom_employe4", "nom_employe5", "nom_employe6", "nom_employe7", "nom_employe8", "nom_employe9", "nom_employe0", "nom_employe11", "nom_employe12" GetBookmarkValue = CStr(Me.nom_employe.Value) Case "type_entreprise", "type_entreprise1" GetBookmarkValue = CStr(Me.type_entreprise.Value) Case "num_rue_entreprise" GetBookmarkValue = CStr(Me.num_rue_entreprise.Value) Case "rue_entreprise" GetBookmarkValue = CStr(Me.rue_entreprise.Value) Case "npa_entreprise" GetBookmarkValue = CStr(Me.npa_entreprise.Value) Case "ville_entreprise" GetBookmarkValue = CStr(Me.ville_entreprise.Value) Case "siret" GetBookmarkValue = CStr(Me.siret.Value) Case "ape" GetBookmarkValue = CStr(Me.ape.Value) Case "immat_employeur" GetBookmarkValue = CStr(Me.immat_employeur.Value) Case "nom_urssaf" GetBookmarkValue = CStr(Me.nom_urssaf.Value) Case "titre_representant", "titre_representant2" GetBookmarkValue = CStr(Me.titre_representant.Value) Case "nom_representant", "nom_representant2" GetBookmarkValue = CStr(Me.nom_representant.Value) Case "prenom_representant", "prenom_representant2" GetBookmarkValue = CStr(Me.prenom_representant.Value) Case "role_representant" GetBookmarkValue = CStr(Me.role_representant.Value) Case "titre_employe", "titre_employe1", "titre_employe2", "titre_employe3", "titre_employe4", "titre_employe5", "titre_employe6", "titre_employe7", "titre_employe8", "titre_employe9", "titre_employe0", "titre_employe11", "titre_employe12" GetBookmarkValue = CStr(Me.titre_employe.Value) Case "prenom_employe", "prenom_employe1", "prenom_employe2", "prenom_employe3", "prenom_employe4", "prenom_employe5", "prenom_employe6", "prenom_employe7", "prenom_employe8", "prenom_employe9", "prenom_employe0", "prenom_employe11", "prenom_employe12" GetBookmarkValue = CStr(Me.prenom_employe.Value) Case "num_rue_employe" GetBookmarkValue = CStr(Me.num_rue_employe.Value) Case "rue_employe" GetBookmarkValue = CStr(Me.rue_employe.Value) Case "npa_employe" GetBookmarkValue = CStr(Me.npa_employe.Value) Case "ville_employe" GetBookmarkValue = CStr(Me.ville_employe.Value) Case "date_naissance" GetBookmarkValue = CStr(Me.date_naissance.Value) Case "ville_naissance" GetBookmarkValue = CStr(Me.ville_naissance.Value) Case "pays_naissance" GetBookmarkValue = CStr(Me.pays_naissance.Value) Case "dep_naissance" GetBookmarkValue = CStr(Me.dep_naissance.Value) Case "nationalite" GetBookmarkValue = CStr(Me.nationalite.Value) Case "num_secu" GetBookmarkValue = CStr(Me.num_secu.Value) Case "intitule_poste" GetBookmarkValue = CStr(Me.intitule_poste.Value) Case "niveau_poste" GetBookmarkValue = CStr(Me.niveau_poste.Value) Case "coefficient" GetBookmarkValue = CStr(Me.coefficient.Value) Case "cadre_ou_non" GetBookmarkValue = CStr(Me.cadre_ou_non.Value) Case "date_debut" GetBookmarkValue = CStr(Me.date_debut.Value) Case "date_fin" GetBookmarkValue = CStr(Me.date_fin.Value) Case "periode_essai" GetBookmarkValue = CStr(Me.periode_essai.Value) Case "debut_essai" GetBookmarkValue = CStr(Me.debut_essai.Value) Case "fin_essai" GetBookmarkValue = CStr(Me.fin_essai.Value) Case "nombre_heures" GetBookmarkValue = CStr(Me.nombre_heures.Value) Case "mois_ou_semaine" GetBookmarkValue = CStr(Me.mois_ou_semaine.Value) Case "salaire" GetBookmarkValue = CStr(Me.salaire.Value) Case "par_mois_semaine" GetBookmarkValue = CStr(Me.par_mois_semaine.Value) Case "lieu_contrat" GetBookmarkValue = CStr(Me.lieu_contrat.Value) Case "date_contrat" GetBookmarkValue = CStr(Me.date_contrat.Value) Case "convention" GetBookmarkValue = CStr(Me.convention.Value) Case "date_convention" GetBookmarkValue = CStr(Me.date_convention.Value) Case "idcc" GetBookmarkValue = CStr(Me.idcc.Value) Case "num_brochure" GetBookmarkValue = CStr(Me.num_brochure.Value) Case "nb_heures_mois" GetBookmarkValue = CStr(Me.nb_heures_mois.Value) Case Else GetBookmarkValue = "" ' Valeur par défaut si le nom du signet ne correspond à aucun cas End Select End Function
Je ne sais plus comment m'en sortir .... tout le reste fonctionne à merveille !
Merci d'avance pour votre aide :)
Bonne journée !
- Problème vba exportation données sur word
- Word 2013 - Télécharger - Traitement de texte
- Comment supprimer une page sur word - Guide
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
2 réponses
bonjour, la première chose à faire, c'est de retirer le "on error". Cela te cache le problème.
Ensuite, expliquer quel est le problème.
Dans quel logiciel tourne ce code VBA?
Tu pourrais, pour decouvrir où est l'erreur, énormément simplifier ce code, ce qui te permettrait de déterminer quelle partie crée le souci.