IvyJu
Messages postés19Date d'inscriptionlundi 20 janvier 2020StatutMembreDernière intervention14 septembre 2024
-
Modifié le 8 sept. 2024 à 11:24
IvyJu
Messages postés19Date d'inscriptionlundi 20 janvier 2020StatutMembreDernière intervention14 septembre 2024
-
9 sept. 2024 à 02:30
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 !