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 de nettoyage pour Tableur


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 20
    Points
    20
    Par défaut Macro de nettoyage pour Tableur
    Bonjour à tous et merci d'avance pour votre éventuel retour.

    Je sui nul de chez nul en macro et j'ai un besoin récurrent qui, je pense, peut être résolu par une macro.
    J'ai des fichiers avec des cellules qui contiennent à droite et à gauche des informations d'une suite de caractère qui est "-->".
    Je voudrais faire une macro qui demande de supprimer à droite et juste derrière le "-->" tout ce qui existe.

    Je pense que cela doit être facile pour des pros comme vous ! Pour moi c'est simplement infaisable !

    Merci de votre aide...

    Bien cordialement.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 38
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    sans macro, cela pourrait-il convenir aussi ?
    Première méthode
    La seule condition est que les données à nettoyer se trouvent dans la même colonne*:
    - sélectionner la colonne
    - menu Données:Texte en colonne
    - comme séparateur, décocher toutes les cases, cocher la case "Autre" et inscrire les caractères --> dans la case de saisie.

    Les données "à droite" vont se trouver dans une nouvelle colonne. Via le menu déroulant en tête de cette colonne, sélectionner l'option "Masquer".
    Seules les données "à gauche" seront conservées.

    Seconde méthode
    Lancer une recherche remplacement.
    Rechercher cette expression : (.*)(-->)(.*)
    qui s'interprète par : rechercher du texte selon 3 critères
    •tout caractère,
    •puis -->,
    •puis tout caractère

    Remplacer par cette expression : $1
    qui s'interprète par : remplacer par tout ce qui a été trouvé via le critère N°1
    Dans les options, cocher Expressions régulières
    J'ai fait un test rapide, qui fonctionne. J'espère qu'il sera applicable à vos fichiers.

    Avec macro, brut d'enregistreur, cela donne
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    sub takeawalk
    rem ----------------------------------------------------------------------
    rem define variables
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
     
    rem ----------------------------------------------------------------------
    dim args1(20) 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.SearchFiltered"
    args1(4).Value = false
    args1(5).Name = "SearchItem.Backward"
    args1(5).Value = false
    args1(6).Name = "SearchItem.Pattern"
    args1(6).Value = false
    args1(7).Name = "SearchItem.Content"
    args1(7).Value = false
    args1(8).Name = "SearchItem.AsianOptions"
    args1(8).Value = false
    args1(9).Name = "SearchItem.AlgorithmType"
    args1(9).Value = 1
    args1(10).Name = "SearchItem.SearchFlags"
    args1(10).Value = 65536
    args1(11).Name = "SearchItem.SearchString"
    args1(11).Value = "(.*)(-->)(.*)"
    args1(12).Name = "SearchItem.ReplaceString"
    args1(12).Value = "$1"
    args1(13).Name = "SearchItem.Locale"
    args1(13).Value = 255
    args1(14).Name = "SearchItem.ChangedChars"
    args1(14).Value = 2
    args1(15).Name = "SearchItem.DeletedChars"
    args1(15).Value = 2
    args1(16).Name = "SearchItem.InsertedChars"
    args1(16).Value = 2
    args1(17).Name = "SearchItem.TransliterateFlags"
    args1(17).Value = 1280
    args1(18).Name = "SearchItem.Command"
    args1(18).Value = 3
    args1(19).Name = "SearchItem.SearchFormatted"
    args1(19).Value = false
    args1(20).Name = "SearchItem.AlgorithmType2"
    args1(20).Value = 2
     
    dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
     
    rem ----------------------------------------------------------------------
    dim args2(0) as new com.sun.star.beans.PropertyValue
    args2(0).Name = "Visible"
    args2(0).Value = false
     
    dispatcher.executeDispatch(document, ".uno:SearchResultsDialog", "", 0, args2())
     
     
    end sub

Discussions similaires

  1. Demande d’explications sur cette macro et aide pour la modifier.
    Par Sapinator dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/08/2007, 18h17
  2. [OpenOffice][Tableur] macro openoffice.org pour openoffice.calc
    Par calix dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 15/06/2007, 21h51
  3. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41
  4. Fenetre Action Macro "Executer Code" pour Module
    Par beurnoir dans le forum Access
    Réponses: 16
    Dernier message: 21/10/2005, 16h15

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