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 :

.find ne fontionne pas sur autre poste


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut .find ne fontionne pas sur autre poste
    Bonjour à tous,

    Voilà, j'ai un problème avec l'objet .find

    Sur l'ordinateur de mon bureau ceci fontionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Aller As Date
    Dim Cellule As String
     
        Set reponse = Worksheets("Calendrier").Range("F11:F600").Find(What:=Date, LookIn:=xlValues)
        Cellule = reponse.Address
        Range(Cellule).Activate
        ActiveCell.Offset(0, 1).Activate
    Parcontre sur l'ordinateur de mon atelier ça ne marche pas. Find ne trouve pas la valeur.

    Par ailleurs, tous les autres macros fonctionnent.
    J'ai déja réinstallé la bibliothèque d'objets mais ça n'a pas résolu le problème.


    Le ficher est le même sur les deux ordinateurs puisque je le balade avec un clé USB.

    L'ordinateur de mon bureau est sous XP et celui de l'atelier sous 98 mais les versions d'exel sont les mêmes et ça ne m'a jamais posé de problèmes.

    Help !!!

    Merci d'avance.

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    peut-être vérifier les paramètres régionaux pour le format de date, à tout hasard.

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour
    Citation Envoyé par menuisier Voir le message
    Set reponse = Worksheets("Calendrier").Range("F11:F600").Find(What:=Date, LookIn:=xlValues)
    Le paramètre What me semble bien bizarre : ce n'est ni une donnée, ni une variable, mais un type!

    Cordialement,

    PGZ

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse,

    J'ai vérifié, les parametres régionaux sont identiques !

    Ca ne doit donc pas venir de la.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci pqz,

    peut etre préfère tu comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set reponse = Worksheets("Calendrier").Range("F11:F600").Find(What:=CDate(Aller), LookIn:=xlValues)
    J'ai cette ligne dans un autre macro dans le même ficher mais cette ligne marche pas non plus.

    Dans cette ligne le variable Aller est renseigné par un Inputbox, dans la ligne de mon premier message c'est la date du système qu'il doit trouver (Fonction Date). Et encore, ça marche parfaitement bien sur un ordinateur mais pas sur l'autre.

    Je vais quand même voir si en déclarant d'abord un variable date si ça ira mieux.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé de remplacer la Fonction Date par une variable définie au préalable. Mais ça ne change rien : ca fonctionne au bureau mais pas a l'atelier.

    Voici ma modif. :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Aller As Date
    Dim Cellule As String
     
    Aller = Date
     
     
        Set reponse = Worksheets("Calendrier").Range("F11:F600").Find(What:=CDate(Aller), LookIn:=xlValues)
        Cellule = reponse.Address
        Range(Cellule).Activate
        ActiveCell.Offset(0, 1).Activate

    J'ai l'impression que ce n'est pas le code qui soit fautif mais autre chose, mais QUOI ?

    En tous cas, merci déja à ceux qui ce sont interessé(e)s à mon problème.

  7. #7
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Tu peux si la date du jour est le 10/12:
    • t'assurer que cette date est bien présente
    • ajouter la date du 12/10.
    Si le pb vient du format des dates, c'est que le format "date courte" n'est pas le même sur l'autre machine. Dans ce cas, tu peux faire un dernier essai avec DateValue(Aller).

    Mais si le pb n'est pas là...

    Cordialement,

    PGZ

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par pgz Voir le message
    t'assurer que cette date est bien présente
    ajouter la date du 12/10
    La date est présente.
    Les dates dans la colonne F sont des resutats de formules du genre (F12)=(F11)+1. J'ai donc essayé aussi de rentrer la date 10/12/2010 en "dur".
    Mais ça ne trouve toujours rien.

    Comme j'ai ecrit au début, j'ai déja vérifié les paramètres régionaux : la "date courte" est au bon format et identique à l'autre ordinateur

    J'ai donc fait un essay avec DateValue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set reponse = Worksheets("Calendrier").Range("F11:F10000").Find(What:=DateValue(Aller), LookIn:=xlValues)
    Même topo : fonctione parfaitement au bureau mais pas a l'atelier.

    J'ai aussi une version ou je recherche une date rentrée a l'aide d'une MsgBox, donc là, c'est une date rentrée a la main au bon format et non pas la date du système, et c'est toujours pareil.

    Pour finir, j'ai modifie un peu le ficher : J'ai remplacé les dates a rechercher par des numéros et là ça marche sur les deux ordinateurs.

    C'est donc bien un problème au niveau des dates...

    Je ne sais plus quoi faire, peut-etre acheter un autre ordinateur...

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    C'est vrai que cela donne des envies de crime... Un bon coup de savate, peut-être?

    Bon, ce n'est pas très satisfaisant, mais tu peux chercher à contourner la difficulté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set reponse = Worksheets("Calendrier").Range("F11:F10000").Find(What:=CLng(Aller), LookIn:=xlFormulas)
    POur voir.

    PGZ

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci pour le tuyeau PGZ, je vais essayer ça ce soir, aujourd'hui il fait trop beau pour se coller derrière un ordi. Hier aussi d'aillieurs.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut RESOLU !! ou Plutôt CONTOURNE !!
    J'ai trouvé une solution dans un tutoriel sur Excel Downloads.

    En utilisant cette methode :

    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
     
     
    Dim Aller As Date
     
    Aller = Date
     
     
       If IsDate(Aller) Then
         p = Application.Match(CDbl(CDate(Aller)), [F11:F10000], 0)
         If IsError(p) Then
            MsgBox "Date en dehors du calendrier !"
         Else
            [F11].Offset(p - 1, 1).Select
         End If
     
        End If
    L'avantage de cette methode est que elle est capable de reconnaitre les équivalances entre plusieurs formats de Date.

    Et surtout, ça marche sur les deux ordinateurs !!

    Merci tout de même pour vos contributions !

    Cordialement,

    Menuisier

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Lien utille

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

Discussions similaires

  1. Base sécurisé qui ne l'ai plus sur autre poste
    Par charliejo dans le forum Sécurité
    Réponses: 4
    Dernier message: 29/07/2008, 18h22
  2. [WD12] opacité ne fonctionne pas sur un poste ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 3
    Dernier message: 11/07/2008, 12h02
  3. probleme de zones reactives ne marche pas sur un poste
    Par zabdaniel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 11/06/2008, 16h40
  4. MSN Récupérer Conversation sur Autre Poste
    Par FloLens dans le forum Messagerie instantanée
    Réponses: 3
    Dernier message: 28/09/2007, 13h56
  5. Réponses: 14
    Dernier message: 27/08/2006, 19h47

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