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 :

Filtre sur le nombre de caracteres dans cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    Par défaut Filtre sur le nombre de caracteres dans cellule
    Bonjour,
    J'espere que vous n'etes pas tout en vacances pour pouvoir m'aider

    J'ai un fichier contenant environ 35 000 lignes.
    La colonne G contient un code isin (code consituté de 12 caractères)
    cependant cette colonne contient aussi d'autres informations qui ne sont pas des codes isin.

    Mon objectif est de voir apparaitre que les codes isin dans cette colonne.
    Pour cela j'ai 2 possibilités en tete.

    - Mettre un filtre pour n'afficher que les codes isin.

    - Vérifier les lignes une par une et d'éliminer celle ne contenant pas de code isin. (pour celle ci je sais faire, mais j'ai peur que la macro s'éternise au vu du nombre de ligne à traiter)

    Auriez vous une idée pour le code de la 1ere idée, ou une 3eme solution ?

    Merci

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Tes codes "isin" commencent tous par une même chaîne de caractères, du genre isin02365478, isin14578932, isin33564778 ?

    Ce qui permettrait d'utiliser un filtre élaboré
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    Par défaut
    en fait le code isin, est un code qui identifie un actif financier afin d'etre echangé sur les differents places boursieres :
    exemple
    Peugeot : FR0000121501
    Eurotunnel : FR0010533075
    Apple : US0378331005
    Nestlé : CH0012056047

    edit : L'élement commum aux codes isin est son nombre de cacratere qui sera toujours de 12.
    Les 2 premieres lettres representent le pays, mais certains codes ont aussi des lettres au milieu RU000A0JKQU8 (Magnit)

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si tu n'as pas d'autre point commun que le nombre de caractères, perso je ne vois pas comment pouvoir faire ce tri via un filtre.

    Même avec une macro, ne se baser que sur la longueur de la chaîne de caractère, cela me semble plutôt léger niveau fiabilité, SCHMILBLICKS et ZYGOMATIQUES seront également pris avec dans le tri.
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Peut-être un tri basé sur le nombre de chiffre dans ton code isin,
    je ma rappel avoir fais un filtre pour les date en faisant truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if cells(x,y).value like "##/##/####" then Traitement
    Avec cette condition si j'avais la chaine suivante -> 05/11/1986 il le détectait mais si j'avais to/to/1890 alors à ce moment il passait par haut dessus.

    Essaye avec un filtre .. like "**##########"

    aprés je ne suis sûr de rien mais si ça peut t'aiguiller vers une piste..

    Denioo

  6. #6
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    Par défaut
    le like "**##########" accepte apparement toutes les chaines quelques soit le nombre d'element

    Quelle est la difference entre le symbole * et # ?

    merci

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    # = 1 caractère numérique
    * = chaîne de caractères comprise entre 1 et...un peu plus de 2.000.000.000 de caractères de tous types

    si tu écrits ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if cells(x,y).value like "###" then '<-- chaîne de caractères composée de 3 caractères numériques
    if cells(x,y).value like "###*" then '<-- chaîne de caractères commençant par 3 caractères numériques, suivie d'autres caractères
    if cells(x,y).value like "*" then '<-- toutes les chaînes de caractères de tous types
    if cells(x,y).value like "*##" then '<-- toutes les chaînes de caractères de tous types se terminant par minimum deux caractères numériques
    Dans ton cas, tu pourrais simplement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Len(cells(x,y)) = 12 then
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Discussions similaires

  1. Compter le nombre de caracteres dans un filtre d'un TMAP
    Par TheTcha dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 04/01/2013, 14h57
  2. Réponses: 10
    Dernier message: 03/04/2008, 14h13
  3. Compter le nombre de caractere dans une chaine
    Par jmjmjm dans le forum C++
    Réponses: 13
    Dernier message: 19/11/2006, 11h37
  4. Réponses: 10
    Dernier message: 02/11/2006, 00h06
  5. Compter le nombre de caracteres dans un champs
    Par joxbl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/02/2006, 14h37

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