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

Word Discussion :

Remplacer séparateurs dans chaîne horaire


Sujet :

Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Remplacer séparateurs dans chaîne horaire
    Bonjour,
    Dans une texte Word, je souhaiterais remplacer les séparateurs d'une chaîne horaire de type 10:12.56 pour obtenir une chaîne de type 10 min 12 s 56. De même pour la chaîne 01:10:12, la remplacer par 1 h 10 min 12 s, avec suppression des zéros initiaux.
    Par programmation VBA si possible, ou autre si plus simple.
    Merci et cordialement,
    GGal2

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Jette un oeil là : http://sepia.developpez.com/office/w...cherremplacer/

    Malheureusement, les chaînes horraire ne sont que du simple texte en Word.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    La fonction Rechercher ne pose pas de problèmes (:^#^#.). Mais comment remplacer à la volée de grandes quantités.
    D'où ma question, et sa solution par VBA.
    GGal2

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Citation Envoyé par GGal2 Voir le message
    La fonction Rechercher ne pose pas de problèmes (:^#^#.). Mais comment remplacer à la volée de grandes quantités.
    D'où ma question, et sa solution par VBA.
    GGal2
    Même entre les lignes, je ne le vois pas dans le premier message.

    Un replace All ne convient pas ?

    Peut-être une piste là pour le VBA : http://heureuxoli.developpez.com/off...-et-remplacer/
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé de bricoler quelque chose

    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
    Sub essai_2()
        With Selection.Find
            .Text = "^#^#:^#^#.^#^#"
            .Forward = True
            .Wrap = wdFindContinue
            .Execute
            While .Found
                Set chm = .Parent
                a1 = Mid(chm, 1, 2)
                a2 = Mid(chm, 4, 2)
                a3 = Mid(chm, 7, 2)
                .Replacement.Text = a1 & " min " & a2 & " s " & a3
                .Execute
            Wend
        End With
    End Sub
    Les occurrrences sont bien détectées une à une, mais le remplacement ne s'effectue pas.

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ton code n'est pas tout à fait correct et c'est pour cette raison qu'il ne fonctionne pas, mais tu t'en doutes un peu.


    Cette ligne ne donne rien :

    C'est de cette marnière qu'on affecte une valuer à un objet.
    Dans ton cas, tu as besoin d'un texte pour pouvoir le traiter avec des fonctions texte.

    Voilà ce que j'obtiens :

    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
    Sub RemplacementTemps()
    Dim booFound As Boolean
    Dim replStr As String
    Dim newStr As String
     
     
    Selection.HomeKey unit:=wdStory
    Do
     
    With Selection.Find
        .Text = "^#^#:^#^#.^#^#"
        .Forward = True
        .Wrap = wdFindContinue
     
     
        .Execute2007
        booFound = .Found
        If booFound Then
            replStr = Selection.Text
            newStr = Left(replStr, 2) & " min " & Mid(replStr, 4, 2) & " s " & Right(replStr, 2)
            Selection.Text = newStr
        End If
     
    End With
    Loop While booFound
     
    End Sub
    La boucle sur le booFound, c'es tpour limiter la recherche.

    Si le texte est trouvé, on modifie la sélection.
    On récupère le texte par le contenu de la sélection et on le remplace par le nouveau texte.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    C'est parfait. Je dois dire que je suis beaucoup plus à l'aise sous Excel.

    Entre-temps, j'ai trouvé par la fonction Rechercher/Remplacer
    texte cherché : ([0-9]{2})[0-9]{2}).([0-9]{2})
    texte à remplacer : \1 min \2 s \3
    option caractères génériques


    Merci pour tout.

    GGal2

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/08/2008, 16h26
  2. [RegEx] Recherche et Remplacement d'une chaîne dans un fichier
    Par jpascal dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2007, 19h35
  3. [Tableaux] Problème avec remplacement dans chaîne
    Par Baptiste Wicht dans le forum Langage
    Réponses: 5
    Dernier message: 13/07/2006, 10h04
  4. Trouver ' et remplacer par \' dans une chaîne
    Par micatmidog dans le forum Général Python
    Réponses: 9
    Dernier message: 23/12/2005, 16h09
  5. [String] Remplacement caractères dans une chaîne
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2004, 11h15

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