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

VBA Word Discussion :

VBA macro, j'utilise vbYesNoCancel, mais j'ai besoin d'un choix supplémentaire


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2017
    Messages : 10
    Points : 11
    Points
    11
    Par défaut VBA macro, j'utilise vbYesNoCancel, mais j'ai besoin d'un choix supplémentaire
    Bonjour,

    la macro qui suit est un bidouillage probablement pas très catholique mais bon, voici ce qu'elle fait : (c'est une recherche - remplacement)
    je cherche dans le texte : "- " (tiret suivi d'un espace)
    si je réponds OUI, le tiret et l'espace sont supprimés
    si je réponds NON, je supprime l'espace en gardant le tiret

    Mais maintenant j'aimerais avoir un 3ème choix : garder le tiret et l'espace
    est-ce qu'avec une petite modification du code on peut y arriver ?
    Merci de m'aider, je ne suis pas programmeur du tout
    voici le code :

    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 CESURE_NORMALE()
    '
    ' INSPIRED FROM A basic Word macro coded by Greg Maxey
    'suppression de tiret-espace (OUI) ou de l'espace uniquement (NON)
    '
    Dim oRng As Word.Range
    Set oRng = ActiveDocument.Range
    With oRng.Find
    .Text = "- "
    .MatchWildcards = False
    .Wrap = wdFindStop
    While .Execute
    oRng.Select
    Select Case MsgBox("Remplacer par RIEN ? (OUI enlevera tiret et espace - NON enlevera espace seul)", vbYesNoCancel + vbQuestion, "Message")
    Case vbYes
    oRng.Text = "" ' Je ne garde rien
    Case vbCancel
    Exit Sub
    Case Else: ' Je garde le tiret
    oRng.Text = Chr(45)
    End Select
    oRng.Collapse wdCollapseEnd
    Wend
    End With
    Select Case MsgBox("Recherche Terminee", vbInformation + vbOKOnly, "Message")
    End Select
    End Sub

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonsoir,
    Je pense que le msgbox est limité à trois boutons.

    Tu as donc deux solutions :
    • Tu joues avec deux msgbox
    • Tu te crées ton propre contrôle

  3. #3
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2017
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par QuestVba Voir le message
    Bonsoir,
    Je pense que le msgbox est limité à trois boutons.

    Tu as donc deux solutions :
    • Tu joues avec deux msgbox
    • Tu te crées ton propre contrôle
    Ah ok !
    créer mon propre controle, ça je saurais pas faire du tout, mais ton autre idée me parait jouable
    je vais essayer et je te tiendrai au courant.
    En attendant, merci pour le tuyau, ça m'aide bcp !!!
    a+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2017
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par QuestVba Voir le message
    Bonsoir,
    Je pense que le msgbox est limité à trois boutons.

    Tu as donc deux solutions :
    • Tu joues avec deux msgbox
    • Tu te crées ton propre contrôle
    Bon me revoilà
    alors maintenant ça marche, mais ce n'est pas très propre car je repasse inutilement par le message de "Recherche terminée"
    voilà un texte d'exemple et le code qui marche :
    si qu'elqu'un pouvait m'aider à l'améliorer, ce serait super parce que là, je ne vois pas
    -------------
    Vraisembla- blement (pour vraisemblablement)
    Ivry- sur- Seine (pour Ivry-sur-Seine)
    Oui - non (pour oui - non : ici je garde tout)
    Traite- ment (pour traitement)
    -------------
    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
    Sub CESURE_NORMALE()
    '
    ' INSPIRED FROM A basic Word macro coded by Greg Maxey
    ' suppression de tiret et espace OU de l'espace uniquement OU laisse intacte
    '
    Dim oRng As Word.Range
    Set oRng = ActiveDocument.Range
    With oRng.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "- "
    .MatchWildcards = False
    .Wrap = wdFindStop
        While .Execute
        oRng.Select
            Select Case MsgBox("Remplacer par RIEN ? (OUI enlevera tiret et espace - NON passe à la suite)", vbYesNoCancel + vbQuestion, "Message")
                Case vbYes
                    oRng.Text = "" ' Je ne garde rien
                Case vbCancel
                    Exit Sub
                Case Else: ' 2eme et 3eme choix
     
                    Select Case MsgBox("Garder le tiret ? (OUI gardera juste le tiret - NON garde tiret et espace)", vbYesNoCancel + vbQuestion, "Message")
                        Case vbYes
                            oRng.Text = "-"
                        Case vbCancel
                            Exit Sub
                        Case Else: ' garde tiret ET espace
                            oRng.Text = "- "
                    End Select
    oRng.Collapse wdCollapseEnd
    Select Case MsgBox("Recherche Terminee", vbInformation + vbOKOnly, "Message")
    End Select
    End Select
    Wend
    End With
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2017
    Messages : 10
    Points : 11
    Points
    11
    Par défaut select case imbriqués, choix multiples
    cette macro traite des césures laissées par un export PDF vers doc ou docx (tiret suivi d'un espace)
    utilise des Select Case imbriqués
    validation manuelle
    Merci à QuestVba pour son aide

    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
    Sub CESURE_NORMALE()
    '
    '
    ' INSPIRED FROM A basic Word macro coded by Greg Maxey
    ' suppression de tiret-espace (OUI) ou de l'espace uniquement (NON, OUI) ou laisse tel quel (NON, NON)
    '
    '
    Dim oRng As Word.Range
    Set oRng = ActiveDocument.Range
    With oRng.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "- "
    .MatchWildcards = False
    .Wrap = wdFindStop
        While .Execute
        oRng.Select
            Select Case MsgBox("Remplacer par RIEN ? (OUI enlevera tiret et espace - NON passe à la suite)", vbYesNoCancel + vbQuestion, "Message")
                Case vbYes
                    oRng.Text = "" ' Je ne garde rien
                Case vbCancel
                    Exit Sub
                Case Else: ' 2eme et 3eme choix
                    Select Case MsgBox("Garder le tiret ? (OUI gardera juste le tiret - NON garde tiret et espace)", vbYesNoCancel + vbQuestion, "Message")
                        Case vbYes
                            oRng.Text = "-"
                        Case vbCancel
                            Exit Sub
                        Case Else: ' garde tiret ET espace
                            oRng.Text = "- "
                        End Select
    oRng.Collapse wdCollapseEnd
    ' Wend
    ' End With
    ' Wend
    ' End With
    End Select
    Wend
    End With
    Select Case MsgBox("Recherche Terminee", vbInformation + vbOKOnly, "Message")
    End Select
    End Sub

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

Discussions similaires

  1. [OpenOffice][Tableur] Transformer une macro VBA pour l'utiliser avec LibreOffice
    Par harsss dans le forum OpenOffice & LibreOffice
    Réponses: 12
    Dernier message: 02/07/2016, 17h53
  2. Réponses: 1
    Dernier message: 06/04/2009, 11h19
  3. VBA Macro utilisable dans un dossier ciblé / Bouton personnalisé
    Par pythagore3_14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/07/2008, 09h35
  4. [VBA]macro Word avec données de MySQL
    Par Taz_8626 dans le forum VBA Word
    Réponses: 3
    Dernier message: 17/07/2006, 12h39
  5. [VBA] Err.Raise : utilisation de vbObjectError
    Par Julien Dufour dans le forum Access
    Réponses: 7
    Dernier message: 04/04/2006, 16h14

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