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 un bloc de texte


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
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut Supprimer un bloc de texte
    Bonjour,

    Dans un fichier excel, j'ai une colonne "Commentaires" qui contient du texte. Je desire cependant supprimer uniquement dans chacune des cellules de cette colonne tous les bloc de texte commencant par BO* et se terminant par *BO

    exemple : le petit garcon BO* court dans la foret *BO avec son amie.

    Le resultat sera le petit garcon avec son amie.

    Votre aide est apprécie. Merci d'avance.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    ta question se réduirait-elle finalement (commentaires ou non) à ceci :
    Comment, dans une chaîne de caractères, supprimer de cette chaîne tout se qui se trouverait entre les balises "BO*" et "*BO" ?

    Car je suppose que tu maîtrises déjà le reste (parcourir toutes les cellules d'une colonne en vue d'agir sur le contenu (chaîne de caractères) de chacune d'elles ... (si non : commence donc par celà....)

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    oui, voila ce que je fais pour au moins trouver le bloc mais qui ne retrouve pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub supprime_bloc()
    Dim NoCol As Integer, NoLig As Long
        NoCol = 19 ' à adapter
        For NoLig = 2 To 10 
            If InStr(1, Cells(NoLig, NoCol), "**BO") = 1 Then
            MsgBox "Trouve"
            Else
            MsgBox "Non Trouve"
            End If
        Next
    End Sub
    Il me renvoit toujours non trouve alors je suis sur que je pointe sur la bonne colonne. De plus, disons que je reussi a trouver, comment supprimer cette partie. Je sais uniquement commnent supprimer la ligne au complete mais je dois simplement supprimer ce bloc de la cellule et laisser le reste du commentaire.

    Merci de ton aide.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    On y va pas à pas :

    On commence par instr

    la lecture de ton aide en ligne t'apprendra que cette fonction te renvoit la position du début de la chaîne recherchée ou 0 (en cas d'inexistence de la chaîne recherchée) Cette position n'est 1 que si la chaîne recherchée est en début de la chaine dans laquelle tu recherches...

    Alors : 1 ou > 0 ?

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    ok, c'est bon, je reussi à trouver la chaine de caractère recherchée avec Instr puisqu'elle est effectivement au debut de la chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub supprime_test()
    Dim NoCol As Integer, NoLig As Long
        PremiereLigne = 2
        NoCol = 21
        For NoLig = 2 To 30
            If InStr(1, Sheet2.Cells(NoLig, NoCol), "**BO") = 1 Then
            MsgBox "Trouve a la ligne " & Cells(NoLig, NoCol)
            Else
            MsgBox "Non Trouve "
            End If
        Next
    End Sub
    Je me positionne bien sur **BO mais la comment je dois m'y prendre pour supprimer ce qui se trouve dans **BO et **BO End incluant **BO et BO End

    Par ailleurs, il se pourrait aussi que le bloc **BO ... **BO End ne soit pas tout le temps au debut de la cellule. Y a t-il une autre fonction que Instr qui fais mieux le travail peut importe ou est pacer le bloc **BO ... **BO End ?

    Merci

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Je rêve..... !
    Instr fait parfaitement l'affaire ...

    Mais remplace donc = 1 par > 0 (je croyais avoir été clair... et que l'aide en ligne ne l'était pas moins !!!)....

    Pour la suite : je ne vais pas écrire ton code, mais te demander de réfléchir sur cet exemple fort simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto = "abcde BO* fghijkl *BO blabla"
    MsgBox Left(toto, InStr(toto, "BO*") - 1) & Mid(toto, InStr(toto, "*BO") + 3)
    Je te souhaite bonne et simple réflexion...

Discussions similaires

  1. [RegEx] Supprimer un bloc d'un fichier texte
    Par adrien334 dans le forum Langage
    Réponses: 7
    Dernier message: 04/03/2009, 15h22
  2. [JTextField] Supprimer une partie du texte
    Par jean_bobi dans le forum Composants
    Réponses: 4
    Dernier message: 26/09/2005, 15h22
  3. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15
  4. inclure une image dans un bloc de texte
    Par allowen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/08/2005, 14h11
  5. [langage] Ecrire un bloc de texte dans un fichier
    Par sarahbes dans le forum Langage
    Réponses: 6
    Dernier message: 10/06/2004, 11h40

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