Probleme boucle PDF
bonjour , la macro que j'ai developee elle permet a creer un fichier PDF a partir d'un template ( j"utilise l"object wordapp) et elle remplace la variable par les experences qui manque pour chaque condidat et apres elle le enregistre le fichier pour chaque condidat : mon probleme c"est que j"arrive a creer les fichiers pour chaque condidats mais , la macro prend toujours le premier resultat pour tout le monde voici mon code
merci pour votre temps
Public Sub Edit_Word_Document()
Dim wordApp As Word.Application
Set wordApp = CreateObject("word.Application")
Dim wordDocument As Word.Document
'''change path
Dim experience As String
'''Change this part, loop through excel, replace mytext
Dim i As Integer
For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
bodymessage = ""
bodymessage1 = ""
bodymessage2 = ""
bodymessage3 = ""
If LCase(ActiveSheet.Cells(i, 8)) = "dnm" And ActiveSheet.Cells(i, 1) <> "" Then
wordApp.documents.Open "C:\Users\riadh.said@cic.gc.ca\Desktop\Template.docx"
Set wordDocument = wordApp.ActiveDocument
Set wordDocument = wordApp.ActiveDocument
If LCase(Cells(i, "D").Value) = "dnm" Then
bodymessage = vbNewLine & Sheets("lien").Range("B9").Value
End If
If LCase(Cells(i, "E").Value) = "dnm" Then
bodymessage1 = vbNewLine & Sheets("lien").Range("B10").Value
End If
If LCase(Cells(i, "F").Value) = "dnm" Then
bodymessage2 = vbNewLine & Sheets("lien").Range("B11").Value
End If
If LCase(Cells(i, "G").Value) = "dnm" Then
bodymessage3 = vbNewLine & Sheets("lien").Range("B12").Value
End If
experience = bodymessage & bodymessage1 & bodymessage2 & bodymessage3
wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience, Replace:=wdReplaceAll
wordDocument.SaveAs "C:\Users\riadh.said@cic.gc.ca\Desktop\" & ActiveSheet.Cells(i, 1).Value & ", " & ActiveSheet.Cells(i, 2).Value & ".pdf", 17
End If
Next
End SubBonjour
j"ai un tableau il contient nom , prenom , email , experience 1 experience 2 experience 3, experience 4, Decison
donc chaque condidat on l'evalue selon ces experiences si il aura un seul (DNM = DOES NOT MEET ) dans l'une de ces experiences la decision sera DNM
apres on envoie un email pour chaque condidat qui contient les experiences qui lui manque ( toutes les experiences sont ecrites dans une une autre feuille )
j'ai utilise une variable dans un document world qui remplace ces experiences apres je la convertit en PDF
donc mon probleme c'est que j'aurais les resultats et j'arrive a creer les fichiers pdf mais il contiennent les memes resultats .
-- j"ai un probleme de boucle quelque part
voici mon code
Public Sub Edit_Word_Document()
Dim i As Integer
Dim wordDocument As Word.Document
Dim experience As String
Dim wordApp As Word.Application
Set wordApp = CreateObject("word.Application")
For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
If LCase(ActiveSheet.Cells(i, 8)) = "dnm" And ActiveSheet.Cells(i, 1) <> "" Then
wordApp.documents.Open "C:\Users\riadh.said@cic.gc.ca\Desktop\Template.docx"
Set wordDocument = wordApp.ActiveDocument
bodymessage = ""
bodymessage1 = ""
bodymessage2 = ""
bodymessage3 = ""
If LCase(Cells(i, "D").Value) = "dnm" Then bodymessage = vbNewLine & Sheets("lien").Range("B9").Value
If LCase(Cells(i, "E").Value) = "dnm" Then bodymessage1 = vbNewLine & Sheets("lien").Range("B10").Value
If LCase(Cells(i, "F").Value) = "dnm" Then bodymessage2 = vbNewLine & Sheets("lien").Range("B11").Value
If LCase(Cells(i, "G").Value) = "dnm" Then bodymessage3 = vbNewLine & Sheets("lien").Range("B12").Value
experience = bodymessage & bodymessage1 & bodymessage2 & bodymessage3
wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience, Replace:=wdReplaceAll
wordDocument.SaveAs "C:\Users\riadh.said@cic.gc.ca\Desktop\" & ActiveSheet.Cells(i, 1).Value & ", " & ActiveSheet.Cells(i, 2).Value & ".pdf", 17
End If
Next i
End SubBonjour Saïd
Normal, tu ne mets jamais à jour ton "experience"
bodymessage = vbNewLine & Sheets("lien").Range("B9").Valuebodymessage = la cellule B9 systématiquement, même chose pour les autres
experience = bodymessage & bodymessage1 & bodymessage2 & bodymessage3ta variable "experience" = tes bodymessage
A+
je dois l"initialiser a 0 ?
Re,
Nous ne savons pas comment est fait ton tableau, donc impossible de te donner la bonne réponse
A+
jpourrais vs joindre le fichier
comment faire??
Bonjour,
Ci dessous ... ton code à tester ...
Public Sub Edit_Word_Document()
Dim i As Integer
Dim wordApp As Word.Application
Dim wordDocument As Word.Document '''change path
Dim experience As String '''Change this part, loop through excel, replace mytext
Set wordApp = CreateObject("Word.Application")
For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
bodymessage = ""
bodymessage1 = ""
bodymessage2 = ""
bodymessage3 = ""
If LCase(ActiveSheet.Cells(i, 8)) = "dnm" And ActiveSheet.Cells(i, 1) <> "" Then
wordApp.documents.Open "C:\Users\riadh.said@cic.gc.ca\Desktop\Template.docx"
Set wordDocument = wordApp.ActiveDocument
If LCase(Cells(i, "D").Value) = "dnm" Then
bodymessage = vbNewLine & Sheets("lien").Range("B" & i + 7).Value
End If
If LCase(Cells(i, "E").Value) = "dnm" Then
bodymessage1 = vbNewLine & Sheets("lien").Range("B" & i + 8).Value
End If
If LCase(Cells(i, "F").Value) = "dnm" Then
bodymessage2 = vbNewLine & Sheets("lien").Range("B" & i + 9).Value
End If
If LCase(Cells(i, "G").Value) = "dnm" Then
bodymessage3 = vbNewLine & Sheets("lien").Range("B" & i + 10).Value
End If
experience = bodymessage & bodymessage1 & bodymessage2 & bodymessage3
wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience, Replace:=wdReplaceAll
wordDocument.SaveAs "C:\Users\riadh.said@cic.gc.ca\Desktop\" & ActiveSheet.Cells(i, 1).Value & ", " & ActiveSheet.Cells(i, 2).Value & ".pdf", 17
End If
Next i
End SubBonjour,
Attention ... Attention ... au multipostage ...!!!
https://forum.excel-pratique.com/posting.php?mode=quote&f=2&p=370486
P.S. Salut Bruno ...
Re,
Dans la mesure où tu poses la même question dans plusieurs sujets à la fois ...
https://forum.excel-pratique.com/excel/probleme-boucle-pdf-t65332.html
Perso, je passe la main ...
Bon Courage pour la suite ...
pk vs dites ca , sinon la solution que vous m"avez propose , elle fonctionne pas
merci pour votre temps
Bonjour,
C'est dommage ...
Mais de toutes les manières sans fichier construire une macro devient de la voyance !!!
Bonjour r4944,
Merci d'arrêter de créer plusieurs sujets pour une même question (si ton problème n'est pas résolu, il faut poster à la suite du premier sujet).
Pour cette fois, j'en ai fusionné 2 et supprimé les autres.
Cordialement,
Bonjour Sébastien,
Merci pour ton intervention ...
Cdlt