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 :

Recherche d'une valeur dans des lignes cachées [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 213
    Points : 86
    Points
    86
    Par défaut Recherche d'une valeur dans des lignes cachées
    Bonjour à toute et tous

    Je galère un peu.

    J'ai crée, pour un club, une feuille permettant l'encodage de l'inscription des joueurs pour participer à un tournois.
    Le système ne peut pas encoder 2x le même nom (logique)

    Afin de simplifier la vie de la personne dédié à l'inscription, il y a une liste contenant tout les joueurs.
    Elle doit simplement cliquer sur ce nom et, automatiquement, celui-ci est ajouté à la liste des inscrits.

    Jusqu'ici, rien de compliqué et tout fonctionne correctement.

    Vu le nombre élevé de joueurs (> 200), j'ai fait une liste filtrée. Afin de retrouver le nom du joueur plus facilement.

    Mais voilà, lorsque cette liste est filtrée, il y a des lignes qui sont cachées.
    Résultat, la fonction "find' ne fonctionne plus !
    Je sais encoder le nom plusieurs fois. Ce qui n'est pas bon.

    J'ai cherché un peu partout mais les idées que je trouve sur Google ne fonctionne pas
    D'où ma venue.

    Y aurais-t'il une astuce pour rechercher un nom dans une liste dont certaines lignes sont cachées?

    Merci de votre aide
    Bon weekend
    André

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 244
    Points : 5 616
    Points
    5 616
    Par défaut
    Il semblerait qu'il faille utiliser la fonction MATCH plutôt que la fonction FIND. Un exemple:
    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
    Option Explicit
     
    'inspiré de https://stackoverflow.com/questions/6297624/perform-a-find-on-hidden-cells
    Function FindCell(ByRef searchRange As Range, ByVal what As Variant) As Range
        On Error Resume Next
        Set FindCell = Cells(Application.WorksheetFunction.Match(what, searchRange, 0), 1)
        If Err.Number <> 0 Then FindCell = Nothing
        Err.Clear
    End Function
     
    Sub Trouve()
        Dim rep As Variant, r As Range
        rep = InputBox("Entrer un nom", "Nom?", "")
        If rep <> "" Then
            Set r = FindCell(Range("B:B"), rep)
            If r Is Nothing Then
                MsgBox rep & " pas trouvé!"
            Else
                MsgBox rep & " en ligne n°" & r.Row
            End If
        End If
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 213
    Points : 86
    Points
    86
    Par défaut Vous êtes un as !
    Bonjour EricDgn,

    Vous êtes balaise ! Votre code fonctionne à merveille.

    Grand merci !

    Bonne vaccances si c''est votre cas.
    (pas le mien)

    Bien à vous

    Andre

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 213
    Points : 86
    Points
    86
    Par défaut Mise à jour bien utile
    Bonjour,

    J'aimerais partager avec vous une information qui me semble important

    La fonction que vous m'avez gentiment transmis, ne fonctionne que si la recherche se fait verticalement
    Par contre, si la recherche doit se faire horizontalement, cela ne fonctionne pas du tout.

    Je l'ai donc remis à jour afin quel fonctionne dans n'importe quel condition

    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
    Function ChercheValeur(ByRef searchRange As Range, ByVal what As Variant) As Long
     
        ' Cette fonction remplace la fonction standard de recherche 'Find'
        ' Elle permet de chercher même si la ligne (colonne) est cachée
        ' searchRange : Zone de recherche
        '        what : la valeur à chercher
     
        ' la fonction retourne la position RELATIVE (pas l'absolue) de la valeur
        ' si la valeur n'est pas trouvée, la fonction retourne "0"
        ' ----------------------------------------------------------------------
     
        Dim valeur As Long
        On Error Resume Next
     
        valeur = Application.WorksheetFunction.Match(what, searchRange, 0)
     
        ChercheValeur = valeur
     
        If Err.Number <> 0 Then ChercheValeur = 0
        Err.Clear
    End Function
    Voilà, Je pense que cela peu faire plaisir

    Bonne journée
    André

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/03/2017, 22h11
  2. [XL-2010] recherche une valeur dans des cellules fusionnées
    Par gigalia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2016, 17h32
  3. [XL-2007] Recherche d'une valeur dans une ligne en fonction valeur combobox d'un userform
    Par celthi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2015, 21h25
  4. insérer des lignes par rapport a une valeur dans la ligne au-dessus
    Par samihichem dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/05/2015, 09h08
  5. Réponses: 2
    Dernier message: 17/02/2015, 10h33

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