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 :

Identifier une partie d'un text dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Identifier une partie d'un text dans une cellule
    Bonjour à tous,

    Je suis confronté à un problème en VBA ou je reste bloquer depuis un petit moment. Je suis sur que la solution doit etre simple, mais elle ne me saute pas au yeux.

    Voici le problème:

    Dans la colonne A, admettons que j'aie FR_SUB (A1), HO FR LU (A2), AF OL (A3), DU FI (A4), FR_SUB. Dans la colonne B, Je désire renommer toutes les cellules qui comportent "FR" par FRI

    Mon fichier joint devrait aider à la compréhension...

    Voilà comment j'ai codé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 0 To 4
     
    If worksheetfunction.IsNumber(worksheetfunction.search("FR", Cells( 1+i,1)) Then
     
    Cells(1+i, 2)= "FRI"
     
    Else
     
    Cells(1+i, 2)=Cells(1+i,1).value
     
    End if
     
    Next i
    Pour la première ligne ca marche, mais dès qu'il n'y a plus "FR" dans la cellule, ca bugge! Et ce n'est pas censé buggé il me semble ma macro se stoppe à la ligne 3....

    Donc si qlq pouvait m'expliquer ce qu'il y a de faut, j'en serais très ravi!!

    Merci bcp

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A:A").Copy Range("B1")
    Range("B:B").Replace "*FR*", "FRI"
    Pour ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 0 To 4
        If Not IsError(Application.Search("FR", Cells(1 + i, 1))) Then
            Cells(1 + i, 2) = "FRI"
        Else
            Cells(1 + i, 2) = Cells(1 + i, 1).Value
        End If
    Next i
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci bcp pour la réponse, ca m'a bien aidé.

    Cependant, il est vrai que je ne comprends pas la logique de l'erreur de ma première programmation. Enfin bref...

    Merci encore une fois

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheetfunction.search("FR", Cells( 1+i,1))
    si FR n'est pas trouvée dans cells(i+1,1) l'expression retournée est une erreur.
    sinon le premier code fait ce dont tu as besoin sans passer par une boucle sur chaque cellule
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. [Débutant] Mise en gras d'une partie d'un texte dans un RichTextBox
    Par sergelagier dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/06/2013, 16h26
  2. récupérer une partie d'un texte dans une variable
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/05/2008, 11h18
  3. Réponses: 4
    Dernier message: 30/10/2006, 00h53
  4. Réponses: 2
    Dernier message: 26/07/2006, 10h03
  5. inserer une image et du texte dans une Jlist
    Par cellestion dans le forum Composants
    Réponses: 4
    Dernier message: 03/03/2006, 23h47

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