Comment dépasser la limite de 255 caractères

Bonjour voici mon code qui sert a envoyer des courriels d'une maniére automatique à travers outlook qui contiennent les experiences qui manque chaque condidat , j'utilise un modele word où j'ai mis une variable 'VariableToReplace' cette variable doit etre remplacé par la variable experience dans le code , (le choix du modèle se fait à partir d'un user form wordApp.Documents.Open "txtExcelDatasheet = vaFiles(i)" (txtExceDatasheet c'est le chemin de mon fichier word ))

une fois la variable 'VariableToReplace' est remplacé , on enregistre une copie PDF du courriel et apres on envoie le courriel avec le fichier PDF en piéce jointe.

mon probléme c'est que j'arrive pas à compiler à cause de ce message d'erreur (Next without for ) en plus Word n'accepte pas plus de 255 caractéres alors que parfois je dois dèpasser cette limite.

est ce que quelqu'un peut m'aider ?

vos suggestions seront les bienvenue

voici mon code ;

Private Sub CommandButton3_Click()
Dim OutApp As Object
Dim OutMail As Object
 Dim i As Integer
 Dim Exp As Byte
 Dim wordDocument As Word.Document
 Dim experience As String
 Dim experience_part As String
 Dim wordApp As Word.Application
 Dim bodymessage(0 To 9) As String
Dim fr(1 To 10) As String
 Set wordApp = CreateObject("word.Application")

     Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup

 For i = 8 To Sheets("SBR").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).row

     If Sheets("SBR").Cells(i, 44) = "OUT" And ActiveSheet.Cells(i, 1) <> "" Then
         wordApp.Documents.Open "txtExcelDatasheet = vaFiles(i)"

         Set wordDocument = wordApp.ActiveDocument

    bodymessage(0) = ""
    bodymessage(1) = ""
    bodymessage(2) = ""

    fr(1) = ""
    fr(2) = ""
    fr(3) = ""

   If Sheets("SBR").Cells(i, 3).Text Like "?*@?*.?*" And _
       LCase(Cells(i, "AR").Value) = "OUT" Then
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
       ' .SentOnBehalfOfName = Sheets("Screening-email results").Range("T14")
       .To = ActiveSheet.Cells(i, 3).Text
        .Subject = " Screening results / "

  .Attachments.Add "C:\Users\xx\Desktop\TEST\" & ActiveSheet.Cells(i, 1).Value & ", " & ActiveSheet.Cells(i, 2).Value & ".pdf", 17

  For Exp = 1 To 10
            Select Case Exp
                Case 1 To 10

                'Abilities/ capacities'

                    If LCase(Cells(i, 23 + Exp).Text) = "DNM" And Sheets("SBR").Cells(4, 23 + Exp) = "Educ" Then
                        bodymessage(Exp - 1) = vbNewLine & " ** " & Sheets("Process Info").Range("B19").Text
                        fr(Exp) = vbNewLine & " ** " & Sheets("Process Info").Range("E19").Text
                    End If

                    If LCase(Cells(i, 23 + Exp).Text) = "DNM" And Sheets("SBR").Cells(4, 23 + Exp) = "EX1" Then
                        bodymessage(Exp - 1) = vbNewLine & " ** " & Sheets("Process Info").Range("B25").Text
                        fr(Exp) = vbNewLine & " ** " & Sheets("Process Info").Range("E25").Text
                    End If

                    If LCase(Cells(i, 23 + Exp).Text) = "DNM" And Sheets("SBR").Cells(4, 23 + Exp) = "EX2" Then
                        bodymessage(Exp - 1) = vbNewLine & " ** " & Sheets("Process Info").Range("B26").Text
                        fr(Exp) = vbNewLine & " ** " & Sheets("Process Info").Range("E26").Text
                    End If
                      If LCase(Cells(i, 23 + Exp).Text) = "DNM" And Sheets("SBR").Cells(4, 23 + Exp) = "EX3" Then
                        bodymessage(Exp - 1) = vbNewLine & " ** " & Sheets("Process Info").Range("B27").Text
                        fr(Exp) = vbNewLine & " ** " & Sheets("Process Info").Range("E27").Text
                    End If

        Next Exp

        experience = bodymessage(0) & bodymessage(1) & bodymessage(2) &  fr(0) _
        & fr(1) & fr(2) 

    If Len(experience) > 200 Then
    Do While Len(experience) >= 200
    experience_part = Left(experience, 200) & "VariableToReplace"
    experience = Right(experience, Len(experience) - 200)
    wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience_part, Replace:=wdReplaceAll
    Loop
    wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience, Replace:=wdReplaceAll

Else
wordDocument.Content.Find.Execute FindText:="VariableToReplace", ReplaceWith:=experience, Replace:=wdReplaceAll
End If

      wordDocument.Content.Find.Execute FindText:="VariableGroupe", ReplaceWith:=ActiveSheet.Cells(i, i + 1).Text, Replace:=wdReplaceAll

        wordDocument.SaveAs "C:\Users\xx\Desktop\TEST" & ActiveSheet.Cells(i, 1).Value & ", " & ActiveSheet.Cells(i, 2).Value & ".pdf", 17

            'set placeholder variable back

        wordDocument.Content.Find.Execute FindText:=experience, ReplaceWith:="VariableToReplace", Replace:=wdReplaceAll

     'End If

 Next i
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True

        Call wordDocument.Close(Word.wdDoNotSaveChanges)
        wordDocument.Save
        wordDocument.Close
        Set wordDocument = Nothing
       Call wordApp.Quit
End Sub

bonjour

si j'ai bien compris tu te sert de Word j'utilise un modele word

ici c'est un Forum Excel.

mais peut être que je me trompe dans ce cas envoi un fichier test que l'on puisse regarder

Mets le texte dans un onglet excel, sur plusieurs lignes si besoin.

Tu exportes alors en pdf et envoies par mail.

Le remplacement de champs variables est encore plus facile avec excel !

MERCI BEAUCOUP POUR VOTRE INITIATIVE

la taille maximum autorisée est 300 kio actuellement avez vous des idées ?

bonjour

pour mettre a disposition un fichier plus de 300ko utilise

http://www.cjoint.com/

et met ensuite le lien de Téléchargement dans le post

fred

Merci Fred ,

Voici le lien du mon fichier excel ;

https://www.cjoint.com/c/FCdsuoLRrwn

l'accès à la user from se fait à partir de la feuille send results , essayer de créer un Fichier word qui contient 'VariableToReplace' sur votre bureau et l'enregistrer sous le format (Word 97-2003 Document )

je vous ai déja préparé un exemple qui se trouve dans la feuille SBR avec un nom , prenom , email et les experiences qui se trouvent dans la partie screening (''X'' to ''AG'') ce condidat doit recevoir un courriel avec les experiences qui lui manquent ; exemple pour EX1 , EX4 il a eu un DNM (Does not meet) donc la décision est OUT (''AR''), le sysétme devrait chercher la définition de l'ex1 et ex2 qui se trouvent dans la feuille (Process Info)

--> aussi le choix du path se fait a partir du boutton browse

Merci beaucoup pour votre temps

Rechercher des sujets similaires à "comment depasser limite 255 caracteres"