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-E] Recherche de valeur fonction Match


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut [VBA-E] Recherche de valeur fonction Match
    Bonjour,

    J'essaie, en vain, d'utiliser la fonction excel "Match".

    MATCH(lookup_value,lookup_array,match_type)

    Le probleme est qu'en cas de recherche infructueuse la fonction retourne une erreur (c'est malin).

    Citation Envoyé par L'aide Excel
    If MATCH is unsuccessful in finding a match, it returns the #N/A error value.
    Donc quand j'execute mon joli code (t'es toute true sous ton pull, y a l'runtime qu'est maboul, joli coooode), je me retrouve avec une erreur du type 1004 :
    Citation Envoyé par L'IDE
    Run-time error '1004':

    Unable to get the Match property of the WorksheetsFunction class

    [End] [Debug] [Help]
    Pour completer la mise en situation j'utilise la fonction comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim TLogProjectNum as Integer
    Dim searchRange As Range
    Dim Result As Double
     
    TLogProjectNum = 113571
    Set searchRange = Worksheets("Projects").Columns.EntireColumn("B")
    'match_type = 0 pour une recherche stricte (et non completement aleatoire)
    Result = Application.WorksheetFunction.Match(TLogProjectNum, searchRange, 0)
    Apres un long moment de solitude dans l'aide VB, VBA, Excel, les Faqs, les tutos, et les forums de toutes nationalités, je me decide a poster.


    Voila, si quelqu'un a une astuce pour gerer l'erreur (j'ai essaye les "On error" et tout, rien a faire, quand ca veut pas ...), ca serait evidemment tres appreciable, et je suis pret a partager mes cookies.

    ps: Desole si je suis un peu confus, mais le whisky m'a epuisé hier, et mon seul repas depuis plus de 24h, c'est mes cookies, donc quand je dis que je suis pret a partager, c'est pas rien, ca me coute.
    pps: sinon j'ai un snickers aussi

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as la fonction VBA Eqv qui ferait aussi bien l'affaire, non ?
    Regarde dans l'aide
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    D'apres ce que j'en ai vu dans l'aide, elle permet de faire une comparaison et non une recherche sur une plage de données

    Etait-ce ce a quoi tu pensais ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En effet mais pour moi, en français, Match = EQUIV... d'où le lapsus... Désolé.
    Regarde si ce code peut te servir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub comparerPlages()
    Dim tab1 As Range
    Dim tab2 As Range
    Dim Col1 As String
    Dim Col2 As String
     
    Set F1 = Worksheets("Feuil1")
    Set F2 = Worksheets("Feuil2")
    Set tab1 = F1.Range("A1:E15")
    Set tab2 = F2.Range("A1:E15")
    For Each Cel In tab1.Columns
        Col1 = Columns(Cel.Column).Address(RowAbsolute:=False, ColumnAbsolute:=False)
        Col2 = Col1
        F1.Range(Col2).Select
        Set r1 = F1.Range(Col1).ColumnDifferences(Comparison:=F2.Range(Col2))
        Debug.Print "Col = " & Col1 & "   Col2 = " & Col2 & "  " & " r1 = " & r1.Address
    Next
        If Not r1 Is Nothing Then MsgBox r1.Address
     
    End Sub
    A+

  5. #5
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    déjà je suis choqué de lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TLogProjectNum = 113571
    vu que tu as typé TLogProjectNum comme Integer
    et que la valeur max d'un Integer est 32767

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    Je l'attendais, en realite j'ai juste ecrasé ma main sur le pad numérique pour donner une valeur au hasard, sinon mes valeurs ne depassent pas '10000'.

    Merci pour le code ouskel'n'or, je regarde ca de suite.

Discussions similaires

  1. codage vba pour rechercher une valeur selon 2 critères
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2011, 22h29
  2. Recherche de valeur fonction Match
    Par Filippo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/01/2009, 20h44
  3. [VBA-E] rechercher des valeurs?
    Par godSP2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2007, 21h55
  4. [VBA-E] Recherche d'une valeur
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/08/2006, 10h27
  5. [VBA]Affectation d'une valeur à une cellule par une fonction
    Par lallougri dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/02/2006, 15h24

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