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 pour trouver une HEURE avec FIND.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    commercant
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercant

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Problème pour trouver une HEURE avec FIND.
    Bonjour, je recherche dans une plage [R42:R50] l'heure spécifiée en cellule [Z15].
    Excel stock les dates et heures sous forme de nombre à virgule flottante.
    L'idée est de rechercher la date correspondant à ce nombre car il est difficile de trouver un nombre à virgule flottante avec FIND.
    Mais, j'ai l'erreur suivante:

    "erreur d'exécution 5: Argument ou appel de procédure incorrect"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test_find2_00h00()
    Dim cel As Range
    Dim d As Date
     
    d = [z15]
     
      Set cel = Sheets("pl").Range("r42:r50").Find(what:=d, LookAt:=xlValue)
     
      If cel Is Nothing Then
        MsgBox "wrong"
      Else
        MsgBox cel.Address
      End If  
    End Sub
    Je ne comprends pas, j'ai testé un code similaire dans un autre classeur sans problème.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Ton code fonctionne chez moi. Sur quelle ligne as-tu l'erreur? As-tu vérifier le Z15 de la feuille active?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Homme Profil pro
    commercant
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercant

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    salut merci
    c'est la ligne 8 qui pose problème
    idem pour moi, le code marche dans un classeur vierge mais pas dans mon classeur projet.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    commercant
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercant

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    en [Z15] j'ai mis une heure au format [h]mm style 42:00 ou 42h00
    Z15 correspond à un nombre d'heure et non pas un horaire.

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    La ligne 8 que tu renseignes (dans le code que je vois dans ton premier message) est vide...

    Cela étant dit, la recherche de valeurs temporelles avec FIND pose souvent problème. Perso, je préfère utiliser MATCH (EQUIV en VBA)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test_find2_00h00()
      Dim cel As Range
      Dim Pos
      Dim d
     
      d = Range("z15").Value
      Pos = Application.Match(d, Worksheets("pl").Range("r42:r50"), 0)
     
      If IsError(Pos) Then
        MsgBox "wrong"
      Else
        MsgBox Worksheets("pl").Range("r" & 41 + Pos).Address
      End If
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Futur Membre du Club
    Homme Profil pro
    commercant
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercant

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    ca marche du 1er coup , MERCI ENORMEMENT !!!
    il s'agissait de la ligne 7, je m'étais trompé. J'espère que ca servira à d'autres....

    Néanmoins j'ai trouvé une partie de la solution:

    -l'heure en [Z15] est entrée manuellement ou obtenue par formule au format hh:mm example 18:00
    - mon range [R:R] etait au format: nombre, exemple 0.75=18/24

    Cependant pour les heures > 23:59 le code avec Find ne marche plus !? Bizzard mas il ya surement une raison logique.

    Si quelqu'un veut creuser la solution avec find pour le plaisir ....

    Encore merci .

Discussions similaires

  1. [XL-2003] Probléme pour ecrire une macro avec Combobox et incrementation dans plusieurs colonne
    Par mimil49 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/07/2011, 10h28
  2. problème pour separer une table avec une procedure
    Par mathieu38 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/04/2009, 09h25
  3. Problème pour trouver une icone
    Par Elstak dans le forum VB.NET
    Réponses: 11
    Dernier message: 11/07/2008, 15h24
  4. DateTime :: problème pour changer une heure
    Par olivier1209 dans le forum C#
    Réponses: 4
    Dernier message: 28/01/2008, 09h42
  5. [VB.NET][WebServices] Problème pour trouver une Assembly
    Par sleeloo dans le forum Services Web
    Réponses: 3
    Dernier message: 19/11/2006, 12h45

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