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

Macros et VBA Excel Discussion :

Supprimer chaine de caractère (uniquement 2e occurence)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    698
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 698
    Par défaut Supprimer chaine de caractère (uniquement 2e occurence)
    Bonjour,

    Avant, avec le code ci-dessous, je pouvais supprimer la chaine "ABCD0012345".
    Or maintenant, ma cellule contient 2 fois une chaine de ce type. Du coup, c'est la première qui est supprimée au lieu de la dernière uniquement.

    Sauriez-vous me dire quel petit ajustement je peux faire pour que seule la 2e et dernière chaine "ABCDxxxxxxx" soit supprimée dans ma cellule ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim regEx As Object
            Dim strInputs As Variant
            Dim strInput, strOutput As String
                strInputs = Array(ActiveCell.Offset(0, 3).Value)
                Set regEx = CreateObject("VBScript.RegExp")
     
                regEx.Pattern = "ABCD[0-9]{7}"
     
                For Each strInput In strInputs
                        strOutput = regEx.Replace(strInput, "")
                        ActiveCell.Offset(0, 3).Value = strOutput
                Next
    Merci à tous pour votre aide,
    Laurent

  2. #2
    Membre expérimenté
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 161
    Par défaut
    Salut,
    j'ai une solution à proposer mais ce n'est certainement la plus optimisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestSuppression()
    Dim regEx As Object
    Dim strInput, strOutput As String
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.Pattern = "(ABCD[0-9]{7})(.*?)(ABCD[0-9]{7})(.*)"
    strInput = "ABCD0012345KKABCD1156789EIEIE1293"
    strOutput = regEx.Replace(strInput, "$1$2$4")
    Debug.Print strOutput
    End Sub
    le résultat est :
    ABCD0012345KKEIEIE1293
    Le principe est de capturer des groupes et de pas restituer le groupe 3

    Nullosse le plus nul des apprentis programmeurs

Discussions similaires

  1. Supprimer chaine de caractères entre 2 balises
    Par wolfatthedoor dans le forum Requêtes
    Réponses: 0
    Dernier message: 01/04/2014, 00h47
  2. Supprimer chaine de caractères indefinie avec PHP
    Par Pierrot11 dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2014, 15h51
  3. [SED] : Supprimer chaine de caractère
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 13/10/2010, 17h32
  4. supprimer chaine de caractère
    Par boboss123 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 25/11/2009, 12h01
  5. supprimer chaine de caractère .bat
    Par maxeur dans le forum Windows
    Réponses: 2
    Dernier message: 24/04/2007, 10h48

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