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 :

Problème avec la méthode find


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut Problème avec la méthode find
    Bonjours à tous et à toutes,

    J'ai un message d'erreur:

    Erreur d'exécution '91':
    Variable objet ou variable de bloc With non définie

    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
    Sub BEV(m As Byte)
     
    Dim i As Integer, j As Integer
    Dim d As Date
    Dim c As Integer, a As Integer
     
        d = "01/" & m & "/" & Year(Date)
     
        MsgBox d
     
        c = Sheets("Présence").Rows(18).Find(d, LookAt:=xlWhole).Column
     
     
        MsgBox c
     
    End Sub
    L'erreur provient au mon ou je souhaite définir c. Pourtant d est bien défini.

    Pourtant avec la box je vois bien que d est bien définie exemple: 01/04/2017.
    En ligne 18 j'ai bien une cellule qui est égale à ça. Je ne comprend pas mon erreur.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d=DateSerial( Year(Date),m,1)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Merci mais cela ne change rien du tout.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Un passage de ceci :
    https://www.rondebruin.nl/win/s9/win006.htm
    mérite ton attention

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Find renvoie un Range localisant la position de la cellule contenant la valeur cherchée
    si la valeur n'existe pas, alors ton résultat est un objet Nothing

    on utilise toujours une variable Range quand on fait un Find
    ensuite on teste si le Range n'est pas Nothing
    S'il n'est pas nothing, là on va récupérer sa propriété .Column

    Mais on ne doit jamais directement utiliser la propriété d'un Range basé sur un Find, sans tester s'il y a bien eu un résultat trouvé

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A tester :
    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
     
    Sub BEV(m As Byte)
     
        Dim Cel As Range
        Dim i As Integer, j As Integer
        Dim d As Date
        Dim c As Integer, a As Integer
     
        d = DateSerial(Year(Date), m, 1)
     
        MsgBox d
     
        Set Cel = Sheets("Présence").Rows(18).Find(d, , xlFormulas, xlWhole)
     
        If Not Cel Is Nothing Then c = Cel.Column
     
        MsgBox c
     
    End Sub

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    Find renvoie un Range localisant la position de la cellule contenant la valeur cherchée
    si la valeur n'existe pas, alors ton résultat est un objet Nothing

    on utilise toujours une variable Range quand on fait un Find
    ensuite on teste si le Range n'est pas Nothing
    S'il n'est pas nothing, là on va récupérer sa propriété .Column

    Mais on ne doit jamais directement utiliser la propriété d'un Range basé sur un Find, sans tester s'il y a bien eu un résultat trouvé

    Merci c'est vrai que habituellement je fait ce test. Mais là je sais que la valeur que je cherche existe et il ne la trouve pas.

Discussions similaires

  1. [XL-2010] Problème avec la méthode Find
    Par bboy-eazy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/12/2016, 15h42
  2. Problème avec la méthode find
    Par Heuvanek dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/06/2015, 09h42
  3. problème avec la méthode find et find next
    Par Sylvie66 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2015, 17h33
  4. Problème avec ma méthode Find
    Par cdurep dans le forum Excel
    Réponses: 2
    Dernier message: 04/03/2014, 10h30
  5. [XL-2010] Problème avec la méthode find d'un objet Range dans une zone filtrée
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/02/2014, 23h27

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