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 :

Faire la recherche d'un élement dans une colonne avec la fonction match


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Faire la recherche d'un élement dans une colonne avec la fonction match
    Bonjour,

    je souhaite effectuer la recherche d'un élément dans une colonne en utilisant la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.match(elt,sheets(nomfeuille).columns(numerocolonne),0)
    cela fonctionne bien sauf qu'en plus j'aimerais commencer à une certaine ligne.
    Quand la colonne est déclaré en lettre je fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.match(elt,sheets(nomfeuille).range(col & ligne & ":" & col & derniereligne),0)
    Cependant j'ai la contrainte: colonne en chiffre. j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.match(elt,sheets(nomfeuille).range(cells(ligne,col),cells(derniereligne,col)),0)
    le problème est que pour que cette ligne de code marche la feuille où s'effectue la recherche doit être active(je doit faire un sheets(nomfeuille).select à chaque fois).
    cela ne m'arrange pas car je fais cette opération plusieur dans une fonction et dans des feuilles différentes et mon classeur a 50 feuilles.

    J'ai une autre solution qui consiste à créer une fonction qui donne l'équivalence de la colonne chiffre en lettre et dans ce cas j'applique ma fonction et j'utilise la méthode qui marche avec la colonne en lettre.
    Cette solution étant aussi couteuse j'aimerais savoir s'il en existe une autre

    Merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Application.thisworkbook.sheets(nomfeuille)
        application.match(elt,.range(.cells(ligne,col),.cells(derniereligne,col)),0)
    end with
    Cordialement,

    PGZ

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    j'ai essayé la syntaxe elle marche mais le problème que j'ai avec c'est le "with...end with" qui va avec car je suis sur un projet où j'avais déjà tout codé et les colonnes étaient en lettre.
    Cette nouvelle contrainte s'étant ajouté je dois faire des modifications au code que j'ai déjà et la fonction application.match je l'ai à plusieurs endroit par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not iserror(application.match(elt, sheets(feuille).range(col & ligne & ":" & col & derniereligne),0)
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets(feuille2).cells(application.match(elt,sheets(feuille).range(col & ligne & ":" & col & derniereligne),0), colonne)
    c'est pourquoi je dis que la solution que tu me propose ne m'arrange pas trop.
    Mais s'il n'y a pas d'autre solution devrais je mettre mes deux exemples dans "with"?

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    le with n'est pas impératif, mais il allège le code et améliore la lisibilité.

    Cordialement.
    G@dz.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci pour vos réponses

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

Discussions similaires

  1. [XL-2007] Recherche de plusieurs mots dans une colonne
    Par merlinus3000 dans le forum Excel
    Réponses: 2
    Dernier message: 30/09/2013, 12h38
  2. [Toutes versions] Recherche du dernier numéro dans une colonne
    Par MP5078 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2012, 11h59
  3. [XL-2007] Recherche d'un nombre dans une colonne
    Par DNB91 dans le forum Excel
    Réponses: 1
    Dernier message: 10/06/2011, 18h08
  4. Faire la somme de n valeurs dans une colonne
    Par glamgeek dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/03/2009, 12h56
  5. Recherche d'un mot dans une colonne classée
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/03/2008, 14h20

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