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 :

[VBA excel] Extraire une chaine de caract. d'une cellule.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 20
    Points
    20
    Par défaut [VBA excel] Extraire une chaine de caract. d'une cellule.
    Bonjour à tous !

    Mon pb est simple, ms mon prog ne marche pas. Je souhaite faire une boucle qui prend la chaine de carctère contenue ds une cellule et la remplace par une chaine de caract. composée des 8 premiers caractères.

    Voici le prog que j'ai fait, ms qui ne marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Compt As Integer
        Compt = 1
        Do
            Range("C" & Compt).Value = Left(Range("C" & Compt).value, 8)
            Compt = Compt +1
        Loop Until Range("C" & Compt + 1).Value = Empty
     
    End Sub
    Merci d'avance pr votre aide

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    qu'appelle tu marcher ... il as des jambes ton code ..? que ce passe-t'il lorsque tu l'exécute ton code..?


    sinon je vois que tu utilise une variable compt comme index dans ta boucle... le probléme c'est que je ne vois pas où tu fais évoluer cet index..?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    lol. Merci pr ton aide encore une fois!

    En effet, j'ai oublié de mettre l'incrémentation du compteur ds mon post, ms ds mon prog, il y est effectivement.

    Lorsque j'exécute le prog, il se deplace de lign en ligne mais n'effectue aucun changment de chaines de caractères.

    Il s'arrete bien lorsq il rencontre une case vide.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    il y as quoi dans tes cellules....?

    tu est sur que la feuille active est la bonne...? (quand tu utilise range sans rien devant tu agit sur la feuille active...)

    comment sait-tu qu'il se déplace bien de ligne à ligne ..?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    Mes cellules contiennent une chaines du type "5DIF0038 EB11" et je cherche à enlever " EB11" (dc remplacer la chaine par "5DIF0038").

    Oui, je suis sur d'etre sur la feuille active puisq :
    1. je vois le curseur se déplacer de lgn en lgn (il effectue d'autres taches de mises en forme)

    2. Lorsq'il s'arrete, il reste sur la dernière case active (quelque soit la cellule de départ).

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben si ton curseur bouge tu n'utilise pas le code que tu nous montre ... celui-ci n'agit pas sur le curseur ( il n'en as pas besoin pour modifier la valeur des cellules) et ce code fonctionne... il modifie bien la colonne C... essai ce code seul ...

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Je comprend pas a quoi sert ta variable "compt"

    Pourquoi tuf ais pas un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i = 1 to range("A1").end(xldown).row
     cells(i,1).value = left(cells(i,1).value,8)
    next i
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par illight
    Je comprend pas a quoi sert ta variable "compt"

    .....
    oui c'est mieux si tu la nomme i ta variable

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    Merci !!
    En effet, mon programme de correction des chaines de caractères marchait bien !! Le bug avait lieu ds la mise en forme du texte...
    ...et si le curseur bougeait, c t effectivement à cause de la mise en forme.

    Merci encore !!!

  10. #10
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Citation Envoyé par bbil
    oui c'est mieux si tu la nomme i ta variable

    Bah vi on voit mieux a quoi elle correspond
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/12/2013, 18h10
  2. vba excel verifier une chaine de caractere dans une colonne
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/09/2010, 13h35
  3. Réponses: 1
    Dernier message: 06/05/2007, 17h42
  4. Extraire les n premiers termes d'une chaine
    Par knecmotet dans le forum C++
    Réponses: 4
    Dernier message: 03/03/2005, 15h05
  5. Réponses: 10
    Dernier message: 22/05/2004, 13h51

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