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 une celule dans des plages ne fonctionne pas [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut recherche une celule dans des plages ne fonctionne pas
    Bonjour,
    je voudrais vérifier que le user connecté appartient bien à une des trois tables utilisateurs.
    J'ai écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim PlgAll As Range, Iset As Range
    Set Cel = Sheets("Données").Range("A2")
    Set PlgAll = Union(Range("TbStg[N° d''agent]"), Range("TbAT[AT user]"), Range("TbAll[All user]"))
    Set Iset = Application.Intersect(Cel, PlgAll)
    If Iset Is Nothing Then
     MsgBox "Cellule hors plage"
    Else
     MsgBox "Cellule dans plage"
    End If
    ou encore plus simple pour essayer de comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Not Intersect(ActiveCell, Range("C5:C27")) Is Nothing Then
     MsgBox "Dans la plage"
     Else
     MsgBox "Pas dans la plage"
     End If
    End Sub
    aucun code ne fonctionne pourtant dans mon fichier =A2=C20 renvoie VRAI

    Est-ce que quelqu'un peut m'aider svp.
    Merci

  2. #2
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    j'ai remplacé "Nothing" par "Cel", mais maintenant il trouve Cel à chaque fois, même quand Cel n'appartient à aucune table
    Merci

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Ok, dans mon cas il faut oublier Intersect, puisque la donnée recherchée n'est pas en dehors des tableaux de recherche donc pas d'intersection possible.
    Donc je suis partie sur un autre type de code qui fonctionne presque, il me reste un pb de casse à résoudre.
    Donc voici le code qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each c In PlgAll
     If c = Cel Then 
        MsgBox "Donnée trouvée"
        Exit Sub
     End If
     Next
     MsgBox "Donnée non trouvée"
    le pb c'est que la donnée recherchée est un code utilisateur récupérer et il s'avère que selon les postes de travail il peut être en majuscule ou en minuscule ; donc cela ne fonctionne pas toujours !
    je suppose qu'il faut que j'utilise Lcase...
    Effectivement Fonctionne parfaitement à tous les coups

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Pour comparer des pommes avec des pommes, mieux vaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If  LCase(c.value)  = LCase(Cel.value) Then

  5. #5
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Merci Docmarti,
    C'est une très bonne remarque,
    Je corrige tout de suite.
    Merci encore

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

Discussions similaires

  1. rechercher une valeur dans une plage
    Par aaristocat dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/06/2018, 12h15
  2. Réponses: 3
    Dernier message: 21/01/2016, 09h20
  3. [XL-2003] Rechercher une variable dans une plage de données
    Par gandalf20000000 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/11/2009, 12h56
  4. [code]Recherche d'une chaine dans des fichiers
    Par guillaume_pays_ceven dans le forum Contribuez
    Réponses: 5
    Dernier message: 21/06/2007, 15h32

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