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 :

Erreur d'éxécution sur un Find dont la valeur recherchée est variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Erreur d'éxécution sur un Find dont la valeur recherchée est variable
    Voici le code qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ActiveSheet.Unprotect "pwd"
    Dim Sem As Long
    Sem = InputBox("Entrez le numéro rechercher", "Recherche")
    Dim Co As Integer
    Co = Range("A2").EntireRow.Find(Sem, LookAt:=xlWhole).Column
    MsgBox Co
    Lorsque je lance cette macro à partir d'un bouton j'ai une erreur d’exécution 91 : Variable ou objet de bloc with non défini sur le second Find

    Ma ligne 2 (où je fais ma recherche) comprend plusieurs premières colonnes différentes d'un nombre et ensuite j'ai une formule qui me donne 1111122222333334444 (un chiffre par cellule jusque 30) ... j'ai essayé de ne mettre qu'une fois les chiffres et pas plusieurs fois d'affilé et le problème reste le même. Je souhaite récupérer la valeur de la première colonne comporte le chiffre 2 si je met 2 dans mon input box par exemple.

    J'ai aussi essayé de faire Co = Range("A2").EntireRow.Find(2, LookAt:=xlWhole).Column mais j'ai la même erreur ...

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    (toi, également, tu aurais pu bonjour )

    J'ai testé ton code et n'ai pas eu de problème, peut-être faut-il vérifier le format de tes cellules ou voir si des espaces inutiles sont dans celles-ci.

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ah effectivement Bonjour le forum je m'excuse pour cette impolitesse =) j'ai voulu aller trop vite!

    Je te remercie d'avoir testé mon code, ça me rassure un peu que la syntaxe soit bonne, mais du coup le problème n'en ai que plus complexe à trouver.

    Concernant mes cellules elles sont remplies par la formule " = Semaine(case situé en dessous)" Cette fameuse case étant une date

    Et la formule semaine est un module dont le code à été récupéré sur ce forum
    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
    '---------------------------------------------------------------------------------------
    Public Function Semaines(LaDate As Variant) As Variant
    '---------------------------------------------------------------------------------------
    ' Procedure : Semaine
    ' Date      : vendredi 21 décembre 2007 13:56
    ' Auteur    : Maxence Hubiche (mhubiche@club-internet.fr -  06.18.61.14.35)
    ' Objet     : Renvoie le numéro de la semaine pour le calendrier français
    ' Spec      : Cette fonctino empèche le débordement en semaine 53, en mettant les jours
    '               de la semaine 53 en semaine 1
    ' Retour    : Renvoie un Byte (n° de la semaine) ou Null si l'argument n'était pas une date
    '---------------------------------------------------------------------------------------
    '
        Dim bytTemp As Byte
        If IsDate(LaDate) Then
            bytTemp = CByte(DatePart("ww", LaDate, vbMonday, vbFirstFourDays)) Mod 53
            If bytTemp = 0 Then bytTemp = 1
            Semaines = bytTemp
        Else
            Semaines = Null
        End If
    End Function
    Donc le format de ma cellule est standard, mais le problème peut donc venir de la formule que j'utilise ?

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    essayes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Co = Range("A2").EntireRow.Find(Sem, Range("A2"), LookIn:=xlValues, lookat:=xlWhole).Column
    car ce sont des formules
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je te propose une adaptation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Sem As Integer
    Dim Co As Integer, dercol As Long
    dercol = Cells(2, Columns.Count).End(xlToLeft).Column
    Sem = InputBox("Entrez le numéro rechercher", "Recherche")
    Co = Range("A2").EntireRow.Find(Sem, Cells(2, dercol), LookIn:=xlValues, lookat:=xlWhole).Column
    MsgBox Co
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup les deux solutions fonctionnent très bien!!!! Pour bien comprendre pourrais-tu m'expliquer quel est l'avantage de la seconde?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/12/2013, 16h58
  2. Réponses: 3
    Dernier message: 15/09/2009, 17h56
  3. erreur sur un find
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/04/2009, 15h41
  4. Erreur d'éxécution sur ACCESS 2007
    Par moilou2 dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/06/2008, 15h50
  5. [XSLT]Sort sur un attribut dont la valeur est en param
    Par Trin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/11/2005, 16h16

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