IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Macro pour supprimer les accents [OpenOffice][Formule]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Macro pour supprimer les accents
    Bonjour,


    Je suis actuellement à la recherche d'une macro pour convertir les caractères avec accents par des sans accents.

    Je tiens à préciser que je connais absolument rien en macro.

    Donc, j'ai trouvé la fonction suivante sur le net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Main
    End Sub
    Function SupprimerAccents(ByVal sChaine As String) As String
    Dim sTmp As String, i As Long, p As Long
    Const sCarAccent As String = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ"
    Const sCarSansAccent As String = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy"
        sTmp = sChaine
        For i = 1 To Len(sTmp)
            p = InStr(sCarAccent, Mid(sTmp, i, 1))
            If p > 0 Then Mid$(sTmp, i, 1) = Mid$(sCarSansAccent, p, 1)
        Next i
        SupprimerAccents = sTmp
    End Function
    et j'ai placé cette macro dans : Mes macros > Standard > Module1.

    Mais quand je l'exécute j'ai le message d'erreur suivant : Erreur d'exécution Basic. L'argument n'est pas facultatif



    Voilà, je ne comprends pas l'erreur et je voudrais vraiment que cette macro puisse fonctionner car j'ai plusieur fois par semaine 10-15 fichier ou je dois enlever tous les accents avec Rechercher>Remplacer.

    Merci d'avance et bonne journée.

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    c'est normal que tu ais une erreur la macro attend un argument qui est une chaîne. Je ne sais pas comment exactement tu lances la macro mais il faudrait exactement savoir ce que tu veux faire et à partir de quoi :

    - LibreOffice ? OpenOffice ? version ?
    - Writer ? calc ? autre ?
    - Tout le texte d'un document writer ? toutes les cellules d'un document calc ? une seule cellule ? un texte, sélectionné ?

    Ami calmant , J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Alors c'est Open Office Calc Ver. 4.1.1

    Et oui j'essaye de faire cette recherche dans toutes les cellules de mon document (nom, prénom,adresse,etc)

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    va voir ici

    oops y a un peu de boulot à faire c'est une fonction, il va falloir balayer toutes les cellules.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Merci de ta réponse, mais malheureusement cela ne m'aide pas plus.

    J'ai téléchargé le fichier .ods avec la macro et l'ai lancé depuis le fichier que je dois modifier en allant dans : Gérer les macros > Macros OpenOffice Basic > FonctionsPlus.ods > Standard > ModulesFonctionPlus > Supprime_Accents

    Mais j'ai encore le même message d'erreur que sur l'ancien programme :




    J'ai donc essayé de copier/coller mon document dans le fichier qui contient la macro et j'ai la même erreur si je passe par "Gérer les macros", mais j'ai l'erreur suivante si je passe par "Exécuter une macro" (option que je n'avais pas dans mon fichier original)






    Alors je sais que ce n'est pas censé être accessible par un néophyte, mais je ne comprends pas que ce soit si peu intuitif.

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    tu peux essayer ceci pour la feuille en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub CalcSupprimerAccent
    'J.P  Mai 2015
    Dim oDoc,aTrouve,aRemplace,aTabCount,SetR,oSheet
    oDoc = ThisComponent
    aTrouve =    Array("Á","Â","Ã","Ä","Å","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò",_
                     "Ó","Ô","Õ","Ö","Ù","Ú","Û","Ü","Ý","à","á","â","ã","ä","å","ç",_
                     "è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ù","ú","û","ü","ý","ÿ")
    aRemplace = Array("A","A","A","A","A","C","E","E","E","E","I","I","I","I","N","O",_
                     "O","O","O","O","U","U","U","U","Y","a","a","a","a","a","a","c",_
                     "e","e","e","e","i","i","i","i","n","o","o","o","o","o","u","u","u","u","y","y")
    aTabCount = 0
    ' on exécute la macro sur la feuille courante
    osheet = odoc.CurrentSelection.Spreadsheet
    'oSheet = oDoc.getSheets.getByName(oDoc.CurrentSelection.Spreadsheet.Name)
    SetR = oSheet.createReplaceDescriptor
    SetR.SearchCaseSensitive = true
    SetR.SearchWords = false '  on cherche les lettres pas les mots
    SetR.SearchRegularExpression = true
    While aTabCount <= uBound(aTrouve)
    SetR.setSearchString(aTrouve(aTabCount))
    SetR.setReplaceString(aRemplace(aTabCount))
    aTabCount = aTabCount + 1
    oSheet.ReplaceAll(SetR)
    Wend
    End Sub
    A optimiser certainement
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    tu peux essayer ceci pour la feuille en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub CalcSupprimerAccent
    'J.P  Mai 2015
    Dim oDoc,aTrouve,aRemplace,aTabCount,SetR,oSheet
    oDoc = ThisComponent
    aTrouve =    Array("Á","Â","Ã","Ä","Å","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò",_
                     "Ó","Ô","Õ","Ö","Ù","Ú","Û","Ü","Ý","à","á","â","ã","ä","å","ç",_
                     "è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ù","ú","û","ü","ý","ÿ")
    aRemplace = Array("A","A","A","A","A","C","E","E","E","E","I","I","I","I","N","O",_
                     "O","O","O","O","U","U","U","U","Y","a","a","a","a","a","a","c",_
                     "e","e","e","e","i","i","i","i","n","o","o","o","o","o","u","u","u","u","y","y")
    aTabCount = 0
    ' on exécute la macro sur la feuille courante
    osheet = odoc.CurrentSelection.Spreadsheet
    'oSheet = oDoc.getSheets.getByName(oDoc.CurrentSelection.Spreadsheet.Name)
    SetR = oSheet.createReplaceDescriptor
    SetR.SearchCaseSensitive = true
    SetR.SearchWords = false '  on cherche les lettres pas les mots
    SetR.SearchRegularExpression = true
    While aTabCount <= uBound(aTrouve)
    SetR.setSearchString(aTrouve(aTabCount))
    SetR.setReplaceString(aRemplace(aTabCount))
    aTabCount = aTabCount + 1
    oSheet.ReplaceAll(SetR)
    Wend
    End Sub
    A optimiser certainement

    Eh bien, un très grand merci ! Tout à l'air de fonctionner.

    En fait j'étais revenus pour dire que j'avais trouvé une solution : Enregistrer une macro pendant que je faisais un rechercher/remplacer. La macro fonctionnait, mais le soucis était que lorsque le programme ne trouvait pas l'accent que je recherchais, une boite de dialogue s'ouvrait et me prévenait que le programme n'avait rien trouvé (donc beaucoup de chargement et devoir attendre pour cliquer sur OK et que la macro passe à la suite).

    Encore merci ! Et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro pour supprimer les lignes entre les titres
    Par nouvelinscrit dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2011, 20h48
  2. [XL-2007] Macro, pour supprimer les lignes contenant « #REF! »
    Par LittleDaddy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2011, 00h05
  3. Macro pour supprimer les lettres d'une cellule?
    Par LittleSun dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/01/2010, 19h56
  4. [XL-2007] Macro pour supprimer les espaces dans les cellules
    Par ab1to dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/11/2009, 16h25
  5. [RegEx] Expression reguliere pour supprimer les accents
    Par cowboydeluxe dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2009, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo