XL 2013 Excel VBA - Extraire des valeurs numériques d'une cellule mélangeant texte et valeurs numériques

elio_30

XLDnaute Nouveau
Bonjour,

Voilà, pour vous donner un peu de contexte, je suis en train de créer une macro qui crée un diagramme de Gantt. La première feuille contient toutes les taches à réaliser, leur durée et leurs antécédents (les taches qu'il faut obligatoirement avoir faites avant). Sur la deuxième feuille, une tâche par ligne (encore) et un jour par colonne, la macro colorie les cases pendant laquelle la tache est en cours.

Voilà, j'ai une cellule (la J47) mélangeant du texte et des valeurs numériques de la manières suivante sur ma feuille1:

=A10&", "&A17&", "&A45&" et "&A14 (ce qui donne "10, 17, 45 et 14")
ou =CONCATENER(A10;", ";A17;", ";A45;" et ";A14)

Dans une macro (j'ai commencé aujourd'hui, je suis un bleu),
j'ai besoin de récupérer ces valeurs numériques et les utiliser pour vérifier si la condition "tableau(10)<>0 ET tableau(17)<>0 ET tableau(45)<>0 ET tableau(17)<>0" est vérifiée ou pas. Et si cette condition est vérifiée, associer le maximum des tableau(10), tableau(17), etc à la variable locale 'maxi'.
J'aimerais donc obtenir un bout de code permettant de faire cela et fonctionne que la case soit:

10, 17, 45 et 14
ou
17, 49 et 14
ou
45 et 19
ou
23

Merci pour votre aide, et désolé si ce n'est pas clair.

Elio
 
Dernière édition:
Solution
Bonjour,

Voilà, pour vous donner un peu de contexte, je suis en train de créer une macro qui crée un planning en coloriant des cases. La première feuille contient toutes les taches à réaliser, leur durée et leurs antécédents (les taches qu'il faut obligatoirement avoir faites avant). Sur la deuxième feuille, une tâche par ligne (encore) et un jour par colonne, la macro colorie les cases pendant laquelle la tache est en cours.

Voilà, j'ai une cellule (la J47) mélangeant du texte et des valeurs numériques de la manières suivante sur ma feuille1:

=A10&", "&A17&", "&A45&" et "&A14 (ce qui donne "10, 17, 45 et 14")
ou =CONCATENER(A10;", ";A17;", ";A45;" et ";A14)

Dans une macro (j'ai commencé aujourd'hui, je suis un bleu),
j'ai...

Jacky67

XLDnaute Barbatruc
Bonjour,

Voilà, pour vous donner un peu de contexte, je suis en train de créer une macro qui crée un planning en coloriant des cases. La première feuille contient toutes les taches à réaliser, leur durée et leurs antécédents (les taches qu'il faut obligatoirement avoir faites avant). Sur la deuxième feuille, une tâche par ligne (encore) et un jour par colonne, la macro colorie les cases pendant laquelle la tache est en cours.

Voilà, j'ai une cellule (la J47) mélangeant du texte et des valeurs numériques de la manières suivante sur ma feuille1:

=A10&", "&A17&", "&A45&" et "&A14 (ce qui donne "10, 17, 45 et 14")
ou =CONCATENER(A10;", ";A17;", ";A45;" et ";A14)

Dans une macro (j'ai commencé aujourd'hui, je suis un bleu),
j'ai besoin de récupérer ces valeurs numériques et les utiliser pour vérifier si la condition "tableau(10)<>0 ET tableau(17)<>0 ET tableau(45)<>0 ET tableau(17)<>0" est vérifiée ou pas. Et si cette condition est vérifiée, associer le maximum des valeurs à la variable locale 'maxi'(ici le max serait donc de 45).
J'aimerais donc obtenir un bout de code permettant de faire cela et fonctionne que la case soit:

10, 17, 45 et 14
ou
17, 49 et 14
ou
45 et 19
ou
23

Merci pour votre aide, et désolé si ce n'est pas clair.

Elio
Bonjour,
Je n'ai pas tout compris...
Néanmoins, pour récupérer la valeur max de J47 ce code
VB:
Sub test()
    Dim x, c, y&, tmp$
    tmp = Replace([j47], "et", ",")
    x = Split(tmp, ",")
    For Each c In x
        If c > y Then y = c
    Next
    MsgBox "Max = " & y
End Sub
 

elio_30

XLDnaute Nouveau
Bonjour,
Je n'ai pas tout compris...
Néanmoins, pour récupérer la valeur max de J47 ce code
VB:
Sub test()
    Dim x, c, y&, tmp$
    tmp = Replace([j47], "et", ",")
    x = Split(tmp, ",")
    For Each c In x
        If c > y Then y = c
    Next
    MsgBox "Max = " & y
End Sub
Bonjour Jacky67,

Merci beaucoup pour ton aide, ton code fonctionne parfaitement.
je vais essayer de l'adapter un peu à mon programme mais ça devrait le faire! :))

Bonne soirée!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 089
Messages
2 085 206
Membres
102 819
dernier inscrit
Michew13