Merci François,La macro est enregistrée. J'ouvre un document. Je passe par Gérer les macro etje lance traite_eml. L'erreur apparaît immédiatement Voici le code REM ***** BASIC ***** sub traite_emldim prop(0) as new com.sun.star.beans.PropertyValue 'Erreur de syntaxe Basicprop(0).name = "FilterName" prop(0).value = "Text" doc = thisComponent cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô")for i=lbound(cherche) to ubound(cherche) call rechercheRemplace(doc, cherche(i), remplace(i)) next i msgbox "Fin du traitement" end sub sub rechercheRemplace(doc, cherche, remplace) rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = doc.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") rem ---------------------------------------------------------------------- dim args1(18) as new com.sun.star.beans.PropertyValue args1(0).Name = "SearchItem.StyleFamily" args1(0).Value = 2 args1(1).Name = "SearchItem.CellType" args1(1).Value = 0 args1(2).Name = "SearchItem.RowDirection" args1(2).Value = true args1(3).Name = "SearchItem.AllTables" args1(3).Value = false args1(4).Name = "SearchItem.Backward" args1(4).Value = false args1(5).Name = "SearchItem.Pattern" args1(5).Value = false args1(6).Name = "SearchItem.Content" args1(6).Value = false args1(7).Name = "SearchItem.AsianOptions" args1(7).Value = false args1(8).Name = "SearchItem.AlgorithmType" args1(8).Value = 0 args1(9).Name = "SearchItem.SearchFlags" args1(9).Value = 65536 args1(10).Name = "SearchItem.SearchString" args1(10).Value = cherche args1(11).Name = "SearchItem.ReplaceString" args1(11).Value = remplace args1(12).Name = "SearchItem.Locale" args1(12).Value = 255 args1(13).Name = "SearchItem.ChangedChars" args1(13).Value = 2 args1(14).Name = "SearchItem.DeletedChars" args1(14).Value = 2 args1(15).Name = "SearchItem.InsertedChars" args1(15).Value = 2 args1(16).Name = "SearchItem.TransliterateFlags" args1(16).Value = 1280 args1(17).Name = "SearchItem.Command" args1(17).Value = 3 args1(18).Name = "Quiet" args1(18).Value = true dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1()) end sub
//********************************************************************************************** Francois Gatto a écrit :
Bonjour Il n'y a apparemment aucune erreur dans cette macro, et encore moins dans la ligne mentionnée. Sinon joins nous ton code par copier-coller. Francois Gatto Jean Sympa a écrit :Merci Laurent, Main est passé à la trappe. J'ai une erreur dès la première ligne; cette difficulté me dépasse. sub traite_eml dim prop(0) as new com.sun.star.beans.PropertyValue '*Erreur de syntaxe Basic* prop(0).name = "FilterName" prop(0).value = "Text" doc = thisComponent cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô")for i=lbound(cherche) to ubound(cherche)call rechercheRemplace(doc, cherche(i), remplace(i)) next i msgbox "Fin du traitement" end sub Cordialement Papy //************************************************************************************************************************************ Jean Sympa a écrit :Merci Laurent, J'essaie d'adapter ton ébauche. Tu as traité le cas où les fichiers *.eml étaient réunis dans un même répertoire. Ces fichiers étant dispersés dans des répertoires, je veux traiter individuellement ceux qui m'intéressent. Mon hypothèse de travail est : J'ouvre un fichier et je lance la macro de conversion. Je m'inspire du chapitre 10 de la bible, acquise en 2006, qui n'est donc pas la dernière édition. Je dois éliminer la recherche des fichiers dans les différents répertoires. //*** Ta proposition, à titre de rappel sub traite_eml() dim prop(0) as new com.sun.star.beans.PropertyValue prop(0).name = "FilterName" prop(0).value = "Text" doc = thisComponent cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô") for i=lbound(cherche) to ubound(cherche) call rechercheRemplace(doc, cherche(i), remplace(i)) next i end sub sub traite_eml(fichier) dim prop(0) as new com.sun.star.beans.PropertyValue prop(0).name = "FilterName" prop(0).value = "Text" doc = stardesktop.loadComponentFromURL(convertToURL(fichier),"_blank",0, prop()) cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô") for i=lbound(cherche) to ubound(cherche) call rechercheRemplace(doc, cherche(i), remplace(i)) next i end sub //*** Travail personnel Sub Main Dim monDocument As Object monDocument = ThisComponent *<--- Erreur de syntaxe BASIC*call traite_eml msgbox "Fin du traitement du fichier" On Error Resume Next 'ignorer l'erreur éventuelle On Error Goto 0 ' reprendre le traitement d'erreur normal End Sub sub traite_eml 'dim prop(0) as new com.sun.star.beans.PropertyValue 'prop(0).name = "FilterName" 'prop(0).value = "Text" 'doc = stardesktop.loadComponentFromURL(convertToURL(fichier),"_blank",0, prop()) cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô") for i=lbound(cherche) to ubound(cherche) call rechercheRemplace(doc, cherche(i), remplace(i)) next i end sub //************************************************************************************************************** Laurent Godard a écrit :Bonjour jean tu lances directement cette version modifiée pour le repertoire, il te suffit d'adapter la variable chemin_eml avec le nom du repertoire contenant ta collection de fichiers eml sub traite_eml() dim prop(0) as new com.sun.star.beans.PropertyValue prop(0).name = "FilterName" prop(0).value = "Text" doc = thisComponent cherche = array("=E9", "=E0" ,"=9C" , "=E8" , "=F4" ) remplace= array ("é","à","œ", "é", "ô") for i=lbound(cherche) to ubound(cherche) call rechercheRemplace(doc, cherche(i), remplace(i)) next i end sub --------------------------------------------------------------------- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org--------------------------------------------------------------------- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
--------------------------------------------------------------------- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org