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 :

Récupérer ligne d'une valeur [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Récupérer ligne d'une valeur
    Bonjour à tous,
    Voilà j'essaye de récupérer la position de valeurs dans une feuille Excel où il y a mes données (current).
    Tout d'abord je rentre les valeurs que je cherche dans une autre feuille (Current.chart) que j'inscris dans un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim t(4) As Single, eff(14) As Single
    Dim At(4) As Integer
    Dim location As Object
    Dim i As Integer
     
     
    Sheets("Current.chart").Select
    'On récupère les valeurs des instants où on veut calculer l'efficacité
    t(0) = Range("Current.Chart!Q6")
    t(1) = Range("Current.Chart!Q7")
    t(2) = Range("Current.Chart!Q8")
    t(3) = Range("Current.Chart!Q9")
    Ensuite je vais dans ma feuille "current" et je cherche la ligne où je vais trouver les valeurs de t(0) etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sheets("current").Select
     
    For i = 0 To 3
     
        Set location = Range("A:A").Find(t(i))
        At(i) = location.Row        'bug quand on cherche un nombre à virgule
     
    Next i
    Et là j'ai l'erreur d’exécution 91 quand je cherche la position d'un nombre à virgule (problématique vu que c'est ce que je cherche).

    J'ai essayé de chercher des entiers et no problem et je ne comprends pas d'où vient ce problème ni comment le corriger.

    Merci d'avance pour votre aide et vos réponses.

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour simbax.

    Les valeurs sur la feuille ne sont pas de type Single.

    Pour des valeurs numériques, essaie plutôt le type Variant ou le type Double:

    ou
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
    Cordialement

    Docmarti.

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,


    voici une proposition, j'en ai profité pour optimisé la rédaction, je te laisse remettre tes variables et suites de code qu'on ne voyait pas dans tes exemples
    en gros, ton tableau t(4) faut pas le typer, ou alors le mettre en variant
    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
    22
    23
    24
    Sub titi()
    Dim t(4)
    Dim At(4) As Integer
    Dim location As Object
    Dim i As Integer
     
     
     
    With ThisWorkbook.Worksheets("Current.chart")
        For i = 0 To 3
            t(i) = .Cells(i + 6, 17).Value
        Next i
    End With
     
     
    With ThisWorkbook.Worksheets("current")
        For i = 0 To 3
            Set location = Range("A:A").Find(t(i), , , xlWhole)
            At(i) = location.Row
            MsgBox t(i) & " est à la ligne " & At(i)
        Next i
    End With
     
    End Sub

    EDIT : j'ai supprimé la référence au séparateur ... encore une connerie de ma part

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci à vous deux pour vos réponses aussi rapides.
    Ta solution Docmarti a fonctionné avec t(4) en variant mais pas la tienne joe.levrai. Pour ta solution il me met toujours l'erreur 91.
    J'ai une autre question : ma recherche elle se fait sur des nombres en format d'heures et actuellement avec cette version je suis obligé de convertir manuellement ma colonne en heure.
    Est qu'il y a moyen de modifier la partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
    avec un argument qui me permettrait de chercher dans le format heure?

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    c'est étrange, quand je colle cette macro dans un classeur vierge, je met de A1 à A4 des chiffres identiques (avec ou sans virgule) dans les feuil1 et feuil2

    j'obtiens bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1 est à la ligne 1
    2 est à la ligne 2
    3 est à la ligne 3
    1,2 est à la ligne 4
    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
    22
    23
    24
    Sub titi()
    Dim t(4)
    Dim At(4) As Integer
    Dim location As Object
    Dim i As Integer
     
     
     
    With ThisWorkbook.Worksheets("Feuil1")
        For i = 0 To 3
            t(i) = .Cells(i + 1, 1).Value
        Next i
    End With
     
     
    With ThisWorkbook.Worksheets("Feuil2")
        For i = 0 To 3
            Set location = Range("A:A").Find(t(i), , , xlWhole)
            At(i) = location.Row
            Debug.Print t(i) & " est à la ligne " & At(i)
        Next i
    End With
     
    End Sub

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Citation Envoyé par simbax Voir le message
    Merci à vous deux pour vos réponses aussi rapides.
    Ta solution Docmarti a fonctionné avec t(4) en variant mais pas la tienne joe.levrai. Pour ta solution il me met toujours l'erreur 91.
    J'ai une autre question : ma recherche elle se fait sur des nombres en format d'heures et actuellement avec cette version je suis obligé de convertir manuellement ma colonne en heure.
    Est qu'il y a moyen de modifier la partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
    avec un argument qui me permettrait de chercher dans le format heure?
    Je n'arrive pas non plus à voir le problème avec le code de joe.levrai.

    Et je ne vois pas exactement quel but tu poursuis avec un format heure.

    Il faudrait plus de détails. Peux-tu envoyer un classeur xls contenant quelques données?
    Cordialement

    Docmarti.

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je pense qu'il n'a pas montré toute sa procédure

    il doit y avoir une suite où il récupère ses valeurs pour les écrire ailleurs ?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut heu
    bonjour

    je pense qu'il y a confusion ici c'est le commentaire qui me perturbe
    si je comprend bien sil il doit y avoir des nombres a virgule c'est la valeur que tu cherche pas le row

    se serait pas plutôt
    j'dis ca moi j'dis rien hein !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sheets("current").Select
     
    For i = 0 To 3
     
        Set location = Range("A:A").Find(t(i))
        At(i) = location.Row        'bug quand on cherche un nombre à virgule
     
    Next i
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Il explique bien qu'il cherche à localiser la ligne où est située la donnée

    or, son tableau t, mal déclaré, ne rapatriait pas les nombres à virgule

    son location est donc vide ... quand il veut en affecter le numéro de ligne à son tableau At ben ça plante

    le problème, c'est qu'il n'explique pas ce qu'il veut ensuite faire(et même ce qu'il fait éventuellement avant) ...d'où le fait qu'on ne peut pas aller plus loin dans l'aide qu'on peut lui apporter

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    je comprend mieux en resilsant tout le post

    ce qui me met la puce a l'oreille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
    en fait tu recherche des heures
    seul probleme que tu n'a pas pris en compte
    c'est que d'une feuille a l'autre les chose peuvent etre radicalement différentes
    en effet
    si tu entre des heures en dur dans l'un et des nombres converti au format heure dans l'autre tu risque pas de les trouver
    tout réside la en fait

    reste pour toi a faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i= 0 to 3  
    t(i)=format("blablabla,"00:00:00") ou le format que tu veut 
    next
    et peut être même que la méthode find ne fonctionnera pas
    il te faudra peut être boucler
    en testant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i= 0 to 3
    if sheets(x).cells(i+1,y)=format(blablabla,"00:00:00) then .....
     
    next
    et place tes commentaire au bon endroit la prochaine fois va n'est pas a la ligne "at(i)=" que ca bug c'est celle du dessus logiquement
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    je suis pas sûr pour ta dernière phrase

    son location = nothing non ? ça ne plante pas

    c'est quand il lis la propriété .row que ça plante ?

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    suis je bête
    il faudrait qu'il essaie "endroit" a la place de "location " location étant une fonction existante je crois


    Pièce jointe 176021
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oulà merci à vous pour toutes vos réponses.

    Je vais vous donner plus d'informations sur mon fichier :
    c'est une macro développée par un fabricant d'un appareil de mesure qui fait beaucoup de choses mais pas suffisamment donc j'essaye de l'améliorer.
    je veux faire un calcul d'efficacité sur certaines périodes de mesures.

    Pour la partie de joe.levrai le debugger me dit que l'erreur vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Worksheets("Current.chart")
    @patricktoulon c'est debugger qui me met qu'il y a une erreur sur cette ligne là.

    J'espère que j'ai été assez clair dans mes explications, c'est un problème assez dur à expliquer ^^

    Mes fichiers sont sous copyright je ne vais pas les uploader.

    Le copyright m'interdit-il de modifier le code source ou pas?
    Si oui je peux faire un autre fichier de macro qui peut me permettre de modifier le fichier sans toucher au code de celui-ci ou pas?

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu as bien une feuille nommée comme ça ?
    c'est bien une feuille de travail (Worksheet) ?

    essaye comme ça et regarde si ça passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Sheets("Current.chart")
    en fait ... tu peux nous montrer ton code complètement, en l'état où il est actuellement ?
    on a aucune visibilité, on sait pas comment il était au départ... ni ce que tu y a ajouté suite à nos propositions

    et vu que t'as des erreurs pour tout le monde ... on navigue à vue là

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Voilà le code que j'ai écrit :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub Efficacite()
    Dim t(4) As Variant, eff(14) As Single
    Dim At(4) As Integer
    Dim location As Object
    Dim i As Integer, j As Integer
    Dim Cmax As Double, Cmin As Double
    Dim MyRange As Range
     
    Sheets("Current.chart").Select
    'On récupère les valeurs des instants où on veut calculer l'efficacité
    t(0) = Range("Current.Chart!Q6")
    t(1) = Range("Current.Chart!Q7")
    t(2) = Range("Current.Chart!Q8")
    t(3) = Range("Current.Chart!Q9")
     
    Sheets("current").Select
     
     
    For i = 0 To 3
     
         Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
     
        At(i) = location.Row        'bug quand on cherche un nombre à virgule
     
    Next i
     
     
     
    'calcul de moyenne (provisoire)
    For i = 1 To 14
     
            Set MyRange = Range(Cells(At(0), i + 34), Cells(At(1), i + 34))
            Avg = WorksheetFunction.Application.Average(MyRange)
            eff(i) = Avg
    Next i
     
    Sheets("Current.chart").Select
     
    'test de vérification des valeurs
    Range("A40") = t(0)
    Range("A41") = At(0)
    Range("A42") = Avg
    Range("A43") = t(3)
     
    End Sub
    Avec Sheets ça fonctionne parfaitement.

    Pour la partie formatage qu'a donné patricktoulon, je suis désolé mais je n'ai pas compris

    PS : @joe.levrai désolé mais j'ai conservé ma syntaxe je modifierai plus tard quand je voudrai optimiser, sans rancune

  16. #16
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    on est là pour débloquer des situations avant tout

    si en plus on peut aider à optimiser l'écriture de code, c'est du bonus

    on va pas se chiffonner si tu n'utilises pas 100% de nos préconisations, mais garde quand même ses idées sous le coudes, elles sont là pour te faire progresser

    bon pour résumer, tout est fonctionne où tu as encore des problèmes avec les heures ? tu as bien vérifié que le format de ta cellule de départ et de ta cellule d'arrivée et identique ?

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai toujours le problème quand je cherche mes heures.
    En effet, je les rentre les heures entre Q6 et Q9 dans Current.chart, je les cherche dans current et là bug, erreur 91 sur
    à l'indice i=0, que ce soit sur ton code ou le mien.

    Ci dessous le tableau que j'ai rentré (j'ai fait copier-coller les valeurs depuis current)
    11:53:55
    11:53:55
    12:00:17
    12:00:17

  18. #18
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Citation Envoyé par simbax Voir le message
    J'ai toujours le problème quand je cherche mes heures.
    En effet, je les rentre les heures entre Q6 et Q9 dans Current.chart, je les cherche dans current et là bug, erreur 91 sur
    FIND a ses exigences.

    EDIT: FIND avec xlFormulas :

    Si le format des cellules de la colonne "A" est de type numérique, il faut que la valeur What soit de type numérique (obtenu ci-dessous avec CDbl)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Set location = Range("A:A").Find(what:=CDbl(t(i)), LookIn:=xlFormulas, LookAt:=xlPart)
    Si le format des cellules est de type Date (le format Heure est de type Date), il faut que la valeur What soit de type Date (obtenu ci-dessous avec CDate)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Set location = Range("A:A").Find(what:=CDate(t(i)), LookIn:=xlFormulas, LookAt:=xlPart)
    Cordialement

    Docmarti.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Salut, je viens de finir et ça marche.
    Je n'ai pas essayé la méthode de docmarti pour le format (je ne l'avais pas vue ^^), j'ai fait ceci, qui doit je pense être bien moins optimisé:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim t(4) As Variant, eff1(14), eff2(14), eff3(14), conc1(14), Cmax(14), conc3(14) As Single
    Dim At(4) As Integer
    Dim location As Object
    Dim i As Integer
    Dim Cmin(14) As Double
    Dim MyRange As Range
     
     
    'On récupère les valeurs des instants où on veut calculer l'efficacité
    Sheets("Current.chart").Select
     
    t(0) = Range("Current.Chart!Q6")
    t(1) = Range("Current.Chart!Q7")
    t(2) = Range("Current.Chart!Q8")
    t(3) = Range("Current.Chart!Q9")
     
     
     
    'On recherche l'emplacement et on reformate t(i)
    Sheets("current").Select
    For i = 0 To 3
        t(i) = Format(t(i), "hh:mm:ss")
     
         Set location = Sheets("current").Range("A:A").Find(what:=t(i), LookIn:=xlFormulas)
     
            If location Is Nothing Then
                MsgBox t(i) & " n'a pas été trouvé."
                MsgBox "Abandon."
                Exit Sub
            Else
                At(i) = location.Row
            End If
    Next i
    En fait à chaque tour de boucle je change le format de t(i) en heure et ça fonctionne!!
    De plus j'ai géré l'erreur, si il ne trouve pas la valeur il abandonne.

    Merci à joe.levrai, docmarti et patricktoulon pour votre aide.
    Je passe le sujet en RESOLU

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    et bien dis donc il a fallu 9 posts supplémentaires pour appliquer un format a tes variables
    ce que je t'ai dis en post 10
    enfin l'essentiel c'est que ca soit bon hein!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. [XL-2010] Récupérer ligne entière suivant valeur d'une autre feuille
    Par neGo33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/05/2015, 17h37
  2. Réponses: 3
    Dernier message: 13/11/2010, 00h14
  3. Réponses: 3
    Dernier message: 26/03/2008, 19h47
  4. [TABLE]Récupérer et stocker une valeur
    Par stéphane_ais2 dans le forum Access
    Réponses: 11
    Dernier message: 10/03/2006, 15h52
  5. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 15h04

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