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-97] Erreur dans la recherche


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
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut [E-97] Erreur dans la recherche
    Bonjour,

    j'ai créé plusieurs fonctions de recherche toutes basée sur le même principe et qui fonctionne sauf une qui me donne une erreur de type incompatible.

    Toute mes fonction on cette forme exactement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim thecell As Range
     
     For Each thecell In Range("B1", Cells(Rows.Count, "B").End(xlUp))
         With thecell.Offset(0, 1)
             .EntireRow.Hidden = Year(CDate(.Value)) <> CInt (textbox.value)       End With
     Next
    Et elles fonctionne.

    Je viens de faire cette même recherche sur un autre document et erreur: type incompatible alors que j'ai bien une date avec l'année de la forme jj/mm/aaaa.

    Par ailleurs je fais une recherche sur le mois de la meme forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim thecell As Range
     
     For Each thecell In Range("B1", Cells(Rows.Count, "B").End(xlUp))
         With thecell.Offset(0, 1)
             .EntireRow.Hidden = Month(CDate(.Value2)) <>Cint(textbox2.value)
         End With
     Next
    Je pense que la syntaxe n'est pas mauvaise mais je me retrouve avec la même erreur que plus haut.

    Une idée? Merci.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Une idée ?

    Peut-être, mais...

    Cdate et Textbox tu ne dis pas ce que valent ces variables.
    Tu as checké ?

    De plus, je ne vois vraiment pas le rapport entre ton indice de boucle et ces 2 valeurs. j'en déduis que tu caches tout ou rien en fontion de leur valeur.

    Spécial....

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Etant donné que mon format date est au format jj/mm/aaaa et que c'est précisé dans le texte, je pensé que c'était clair.

    Donc voilà un exemple: on est le 01/04/2009, textbox.value est égal à 2009 et textbox2.value est égal à 04. Etant donné que j'ai déjà réussi à faire fonctionner cette fonction sur un autre fichier, je dois pouvoir ne faire une recherche que sur l'année que sur le mois ou bien les deux.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Par défaut
    1ère question : as-tu essayé de décomposer la ligne pour voir ce qui coince ? est-ce que c'est Cdate(.value) ?
    je me souviens avoir été obligé de faire des manips bizarre pour lever certains pbs du même style : essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Month(Format(.Value, "dd/mm/yyyy"))
    2ème question : ce ne serait pas plutot Cdate(.value) au lieu de Cdate(.value2) ? j'ai fait des essais avec .value2, les résultats sont aberrants (la date renvoyée par VBA ne correspond pas à la date affichée dans Excel)

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    J'accorde que value2 doit merdé . mais en fait j'ai déjà des problèmes rien qu'avec l'année. La ligne posant problème est la ligne avec le CDate.

    Une autre question qui n'est pas tout à fait en rapport: Est-ce que le fait d'avoir un filtre automatique peut gêner?

    Bon, ma recherche sur l'année repasse (recopie du tableau en partant des coordonnées 1:1). Par contre, j'ai toujours un souci sur le mois. Il me sort n'importe quoi.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Bon,
    mon mois me donne un type incompatible alors que le code est le même que pour l'année (avec Month à la place de Year) et je vois pas pourquoi ça déconne.
    A moins que cela vienne du format date que je rentre en dd/mm/yyyy et que lui comprend mm/dd/yyyy mais même ça explique pas.

    voilà le code de l'année et du mois:
    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
    'recherche par rapport à l'année
    If (TextBox2.Value <> "") Then
    For Each thecell In Range("A1", Cells(Rows.Count, "A").End(xlUp))
        If Not IsEmpty(thecell) Then
            With thecell.Offset(1, 2)
                .EntireRow.Hidden = Year(CDate(.Value)) <> CInt(TextBox2.Value)
            End With
        End If
    Next
    End If
     
    'recherche par rapport au mois
    If (TextBox1.Value <> "") Then
        For Each thecell In Range("A1", Cells(Rows.Count, "A").End(xlUp))
            If IsEmpty(thecell) Then
            With thecell.Offset(1, 2)
                .EntireRow.Hidden = Month(CDate(.Value)) <> CInt(TextBox1.Value)
            End With
            End If
        Next
    End If
    Si vous, vous voyez le problème parce que moi pas.

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

Discussions similaires

  1. Sharpoint 2007 erreur dans la recherche
    Par abrmed dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 10/04/2015, 09h53
  2. Erreur de syntaxe dans une recherche FULLTEXT
    Par MatthieuFourcade dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/04/2009, 17h03
  3. [Débutant] Recherche d'erreur dans un code
    Par feynman dans le forum Fortran
    Réponses: 7
    Dernier message: 17/07/2007, 20h48
  4. Erreur syntaxe dans une recherche multicritère
    Par cigale13 dans le forum Access
    Réponses: 2
    Dernier message: 12/06/2006, 09h58
  5. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 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