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 :

Fonction Match avec paramètre heure [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Access,Windev et Swift
    Inscrit en
    Décembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur Access,Windev et Swift
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 40
    Par défaut Fonction Match avec paramètre heure
    Bonjour,
    je me decide a poster car je n'ai pas trouvé la réponse et que je cherche maintenant depuis deux jours...
    J'ai une colonne dans une feuille de calcul qui contient des heures de 20min en 20 min et j'essai en vain avec la fonction Match dans un module d'extraire le numéro de la ligne qui contient l'heure la plus proche d'une heure donnée afin de créer un planning.

    Voici a quoi cela ressemble:
    Col A
    05:00:00
    05:20:00
    05:40:00
    etc...

    Dans le module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Valeur="05:20:00"
    Colonne=Application.Match(Valeur, Range("A1:A30"),1)
    ceci renvoie une erreur 1004

    Si j'essai comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Valeur="05:20:00"
    Colonne=Application.Match(Clng(Valeur), Range("A1:A30"),1)
    j'obtiens une erreur 13 incompatibilité de type

    Le comble est que si je remplace les heures par des nombres, cela fonctionne .Il s'agit donc d'un problème de type de valeur mais je ne trouve pas.
    J'ai tout essayé en conversion de valeur mais a chaque fois ça plante...

    Auriez-vous une idée?

    Merci d'avance

    Philippe

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Effectivement
    renvoie une erreur 13, alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hc = CDbl(CDate("7:10"))
    fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rng As Range, hc As Double
     Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A2:A15")
     hc = CDbl(CDate("7:10"))
     MsgBox "Recherche avec cdbl " & Application.WorksheetFunction.Match(hc, rng, 1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
    Dim Valeur As Date
    Dim NoLigne As Double
        Valeur = CDate("05:20:00")
        NoLigne = Application.Match(CDbl(Valeur), Range("A1:A30"), 1)
    End Sub
    Cordialement.

    EDIT: Trop tard ! Bonjour Philippe.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Access,Windev et Swift
    Inscrit en
    Décembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur Access,Windev et Swift
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 40
    Par défaut
    Genial, ca marche !!!
    Je vous remercie beaucoup.
    Phil

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

Discussions similaires

  1. Fonction scalaire avec paramètre de type DateTime2
    Par FRinguette dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/10/2014, 00h16
  2. fonction JS avec paramètre xsl
    Par a.dequidt dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/10/2010, 15h53
  3. fonction générique avec paramètres
    Par daninou dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 04/09/2009, 12h01
  4. [PHP-JS] Fonction js avec paramètre PHP
    Par pcayrol dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2007, 10h59
  5. Réponses: 4
    Dernier message: 11/09/2005, 01h21

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