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 :

Macro VBA pour supprimer des caractère situés après une valeur


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Macro VBA pour supprimer des caractère situés après une valeur
    Bonjour!

    Je cherche à faire une macro VBA:
    J'ai une colonne avec des noms de projets. Certains contiennent les caractères "by XXXXXXX", d'autres non.
    Je souhaiterais parcourir les enregistrements et supprimer le "by XXXXX" lorsque que je le rencontre.

    J'ai déjà une boucle, mais je n'arrive pas à faire la suppression des caracteres à partir de "by".

    Merci d'avance si quelqu'un peut m'aider!

    Guillaume

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Points : 67
    Points
    67
    Par défaut
    Il faut faire le test suivant: If Left(contenu_de_ta_cellule,2) = "by" Then ...

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci!

    Oui mais comment supprimer tous les caractères à partir de "by"?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Points : 67
    Points
    67
    Par défaut
    Je comprends pas bien ce que tu veux. Si tu veux "by" dans ta cellule, tu n'as qu'à écraser ta cellule en écrivant "by" dedans. Si tu veux ce qu'il y a après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_chaine = Right(ma_chaine, len(ma_chaine)-3)

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Non ca ne marche pas, car après le "by", il peut y avoir 3 ou 15 caractères à supprimer. Je cherche donc un moyen de supprimer tous les caractères à droite à partir de ma variable "by".

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Points : 67
    Points
    67
    Par défaut
    As-tu des caractères à conserver avant "by"?

  7. #7
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Et avec ceci :
    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
     
    Sub Test()
     
        Dim Pos As Integer
        Dim I As Long
     
        'dans la colonne A
        For I = 1 To Range("A" & Rows.Count).End(xlUp).Row
     
            With Range("A" & I)
     
                Pos = InStr(.Value, "by")
     
                If Pos <> 0 Then
                    .Value = Left(.Value, InStr(.Value, "by") + 1)
                End If
     
            End With
     
        Next I
     
    End Sub
    Hervé.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    oui, en fait avant, j'ai le nom du projet, je dois garder ces caractères.
    Par exemple:
    "project1 by tony" doit devenir project1

    et
    "project2 helena" doit rester ainsi car ne contient pas "by"

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Points : 67
    Points
    67
    Par défaut
    Je comprends mieux. Là, c'est ce que Theze t'as donné qu'il te faut. Change le +1 en -2, par contre, sinon tu vas conserver le "by".

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci à vous deux, ca marche!!!!!

  11. #11
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Oups, il te faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Value = Left(.Value, InStr(.Value, "by") - 2)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Value = Left(.Value, Pos - 2)
    car il ne sert à rien d'appeler deux fois la même fonction (InStr), ça ralenti le code.

    Hervé.

Discussions similaires

  1. [XL-2003] Macro supprimer des classeurs Excel après une exportation
    Par greenfire15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2012, 10h54
  2. [XL-2007] Macro pour supprimer des lignes sous conditions de valeur de cellule
    Par frisco75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/09/2011, 14h33
  3. [XL-2007] Code VBA pour supprimer des lignes sous condition - problème
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2011, 09h09
  4. macro excel pour supprimer des lignes comportant un caractere spécial
    Par fredo49 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/04/2011, 16h32
  5. Réponses: 2
    Dernier message: 27/08/2008, 09h13

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