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 pour suppression de caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Par défaut VBA pour suppression de caractères
    Bonjour,

    je débute en VBA alors excusez moi par avance si mes questions vous semblent bêtes.

    Je travaille avec des numéros d'affaires.

    (x sont des chiffres)
    ils doivent etre formatées en 1xxxxxx ou 9xxxxx donc commencant par 1 avec 6 caractères derrière ou 9,8,7 avec 5 chiffres derrière.
    Je ne peux pas coder directement dans les cellules car je décalle chaque semaine les numéros de façon à ce que les derniers se retrouvent en première colonne.

    Je cherche donc à coder en VBA l'action de supprimer des caractères de façon par exemple à ce que R11-1xxxxxx devienne 1xxxxxx et r11-9xxxxx devienne 9xxxxx.

    Je vosu remercie par avance pour l'aide que vous pourrez m'apporter.

    Pierre

  2. #2
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A:A").replace "R11-",""
    permet de remplacer la chaine "R11-" par vide dans la colonne A

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Par défaut
    Bonjour,

    Merci pour l'aide apportée.
    effectivement ça fonctionne.

    J'ai simplement oublié de préciser que les numéros sont formatés de la façon suivante:

    R11-1****** ou
    R11-09***** ou
    R11-08***** ou
    R11-07***** ou
    09***** ou
    08***** ou
    07*****

    Le but est donc de les mettre sous la forme 1******,9*****,8*****,7*****.

    Donc le remplacement de R11- par "" et de R11-0 par "" fonctionne pour les 4 premiers cas.

    Pas dans les cas ou le numéro commence par 09,08 ou 07.

    J'ai essayé d'enlever le 0 mais à ce moment là il m'enlève bien sur tous les 0 contenus dans le nombre.

    Je pense qu'il faudrait quelque chose comme:

    SI gauche(nombre,1)=0 alors on prend droite(nombre,6).

    Tous mes numéros sont contenus dans le colonne B.

    Par avance merci de l'aide que vous pourrez m'apporter.

    Pierre

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut

    dans la seule mesure où tous les cas possibles sont ceux de tes exemples, ce sera simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val(Mid(mavar, InStr(mavar, "-") + 1))
    où la variable mavar contient la chaîne à traiter.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Par défaut
    Bonjour Babaothe,

    justement j'ai modifié ma question, donc je pense que cette fonction ne marche plus dans le cas où je n'ai plus de "-" à un moment donc dans les cas pour lesquels je me retrouve avec 09,08 ou 07 et les 5 chiffres qui viennent derrière.

    Pierre

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par pierreferte Voir le message
    Bonjour Babaothe,

    ... je pense que cette fonction ne marche plus dans le cas où je n'ai plus de "-" à un moment donc dans les cas pour lesquels je me retrouve avec 09,08 ou 07 et les 5 chiffres qui viennent derrière.
    Ah ?
    Et l'as tu essayée ?
    je viens de le faire avec 0838976 et elle me donne bien 838976
    Et l'explication est fort simple : instr sur "-" = 0 puisque pas de tiret : donc instr + 1 = 1 et donc mid commence à 1 et Val retourne la valeur numérique de la chaîne .
    et si tu veux conserver le "0" (en plus et bien que tes exemples parlent de sa suppression), il te suffit d'utiliser Format !

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

Discussions similaires

  1. [XL-2010] Macro VBA pour supprimer des caractère situés après une valeur
    Par Guillaume_PMO dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/03/2011, 17h06
  2. [Excel] Macro pour suppression de caractères bizarres
    Par mika0102 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/07/2008, 13h29
  3. Réponses: 9
    Dernier message: 15/05/2008, 16h05
  4. Echapper des caractères avec VBA pour requete SQL
    Par mpereg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 03h41
  5. Réponses: 8
    Dernier message: 10/02/2007, 02h44

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