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 :

[E-07] Recherche dans un tableau à 2 entrées en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [E-07] Recherche dans un tableau à 2 entrées en VBA
    Bonjour,

    Je débute en VBA et cherche à traduire la fonction EXCEL de recherche d'une valeur dans un tableau à deux entrées: quelle est la valeur de la cellule qui se trouve à l'intersection de la ligne [mot_à_trouver_ligne] et la colonne [mot_à_trouver_colonne].
    Dans EXCEL c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(PLAGE;EQUIV(mot_à_trouver_ligne;PLAGE;0);EQUIV(mot_à_trouver_colonne;PLAGE;0))
    Merci de votre aide

    nb: je suis sous EXCEL 2007

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut mrah1 et le forum
    =INDEX(PLAGE;EQUIV(mot_à_trouver_ligne;PLAGE;0);EQUIV(mot_à_trouver_colonne;PLAGE;0))
    Ce serait plus facile si au lieu de Plage tu avais donné l'adresse de la plage. en admettant que "plage" soit une plage nommée et que les mots à touver seraient "AA" et "BB", ça donnerait une macro de ce genre :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub test()
    Dim L As Long       'variable ligne
    Dim C 'As Integer    'Variable colonne
    Dim Mot_à_trouver_ligne As String
    Dim Mot_à_trouver_colonne As String
    Mot_à_trouver_ligne = "aa"
    Mot_à_trouver_colonne = "bb"
    For L = [plage].Row To [plage].Row + [plage].Rows.Count - 1
    'Pour L=1ère ligne de plage à 1ère+nombre de ligne de plage
        If Cells(L, [plage].Column) = Mot_à_trouver_ligne Then Exit For
        'si la cellule de la 1ère colonne de plage, ligne L est égale à
        'Mot_à_trouver, on sort de la boucle
    Next L
    'L suivant
    If L > [plage].Row + [plage].Rows.Count - 1 Then
    'si L est supérieur à la dernière ligne de plage alors
        MsgBox "pas de """ & Mot_à_trouver_ligne & """ dans la colonne " & [plage].Column
        'on affiche une boîte de dialogue
        Exit Sub
        'on sort
    End If
    For C = [plage].Column To [plage].Column + [plage].Columns.Count - 1
    'pour C=1 colonne de plage jusqu'à dernière colonne de plage
        If Cells([plage].Row, C) = Mot_à_trouver_colonne Then Exit For
    Next C
    If C > [plage].Column + [plage].Columns.Count - 1 Then
        MsgBox "pas de """ & Mot_à_trouver_colonne & """ dans la ligne " & [plage].Row
        Exit Sub
    End If
    MsgBox "le mot à trouver est """ & Cells(L, C) & """", vbOKOnly, "résultat"
    'boite de dialogue affichant le résultat
    End Sub
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    J'ai recopié et tester ton code:
    - j'ai un message d'erreur "erreur de compilation bloc if sans end if". Où est ce que je dois insérer les end if ?

    - pour ta remarque sur "plage", c'est le nom que je voudrais donner à la zone B1:F6 de ma feuille active ("feuille3").

    Quelle serait la bonne syntaxe ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut mrah1 et le forum
    Pas de message perso pour autre chose que des MP
    J'ai rectifié mes deux erreurs (j'ai eut le temps de tester). La correction est dans la macro initiale
    A+

Discussions similaires

  1. [Tableaux] recherche dans un TABLEAU
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2006, 00h06
  2. [VBA-E]Recherche dans un tableau
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 05/07/2006, 10h35
  3. Recherche dans un tableau
    Par Bes74 dans le forum Access
    Réponses: 5
    Dernier message: 04/07/2006, 17h26
  4. [VBA-E] recherche dans un tableau
    Par tibss dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 03/05/2006, 17h52
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

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