Recherche nombre dans une colonne ... [Résolu]

Signaler
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006
-
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006
-
Bonjour.

Voila je travaille sur un programme vb depuis un moment et la je bloque complètement. Sur une feuille excel j'ai plusieurs variables. Ma première variable est le temps. Je voudrait faire une recherche dans cette variable. En fait avant dans un inputbox je demande quel temps je veux donc l'utilisateur doit rentrer un nombre. Jusque la pas de problème. La où ca se corse c'est quand je veux que mon programme trouve ce nombre donné dans ma variable temps.
De plus, je voudrait qu'il garde cette ligne en mémoire car après je veux récupérer sur cette ligne les chiffres des 2 variables qui suivent pour faire un calcul par la suite. Je voudrait donc donner un nom à ces 2 chiffres récupérés.
Si quelqu'un pouvait m'aider je lui en s'aurai très reconnaissante.

10 réponses

Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
1
C'est simple,

tu boosses sous excel,
tu bosses sous vb éditor

dans tous les cas, la façon de réaliser le code est la même, la seule nuance est au niveau de l'appel de la sheet

En excel,

sur ta feuille, tu crée un bouton, click droit, affecter une macro, tu colles cela dedans:

valeur = inputbox ("question")

Dim trouve as Boolean
trouve = False
i = 0

ActiveSheet.Range("A1").Activate

Do while trouve = False

if valeur = Activecell.Offset(i,0).Value then
trouve = true
valeur1 = Activecell.Offset(i,1).Value
valeur2 = Activecell.Offset(i,2).Value
endif

i = i + 1

Loop

msgbox valeur1 & vbcrlf & valeur 2

ensuite, tu remplies 20 lignes sur les trois premières colonnes

tu cliques sur le bouton précédemment créé (en veillant de bien sortir du mode création)

tu t'arranges pour rentrer un ciffre existant dans la boite de dialogue qui apparait

et tu vas voire une nouvelle boite de dialogue apparaitre avec les valeurs sur la même ligne que celle où se situe le chiffre recherché!
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Je comprend pas trop je t'avou. tu veux pouvoir recupérer ta variable de temps et c'est quoi cette histoire de 2 chiffres?
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

en fait ma première colonne contient des chiffres de temps. Quand on rentre un chiffre dans l'inputbox je voudrais trouvais ce chiffre dans ma première colonne. Les colonnes 2 et 3 contiennent des chiffres la 2 contenant des taux et la 3 des variances.
si par exemple je rentre le nombre 14. Dans la colonne temps je cherche 14. Je voudrais récupérer sur la ligne de ce 14 les nombres qui sont dans les colonnes 2 et 3. J'espère avoir été plus claire.
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
1
Démarche:
on balaie toutes les lignes de la colonne 1 à la recherche de
la valeur entrée dans la boite de dialogue,
lorsque l'on trouve la bonne valeur,on extrait les deux d'à côté

valeur = inputbox (ce que tu demandes)

Dim trouve as Boolean
trouve = False
i = 0

ActiveSheet.Range("A1").Activate

Do while trouve = False

 if  valeur = Activecell.Offset(i,0).Value then
      trouve = true
      valeur1 = Activecell.Offset(i,1).Value
    valeur2 = Activecell.Offset(i,2).Value
endif

i = i + 1

Loop




slts!

API @ la Loupe
http://xav.prog.power.free.fr
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

j'ai compris ce que tu avais mis zavier mais la ligne suivante : 
 if  valeur = Activecell.Offset(i,0).Value then 
me renvoie toujours l'erreur d'exécution '1004' : erreur définie par l'application ou par l'objet.
Je ne vois pas comment la résoudre. 
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
1
bizarre, cela fonctionne parfaitement chez moi!

tu travailles bien en VBA, à partir du moment où il ne te génère pas d'erreur sur ActiveSheet.Range("A1").Activateje ne vois pas pourquoi il t'envoi chier après????

essaie de mettre avant le IF r = Activecell.Offset(1, 0)

et après if valuer = r

si cela marche tu remplace 1 par i et ainsi de suite jusqu'à ce que cela fonctionne!

slts!
API @ la Loupe
http://xav.prog.power.free.fr
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

je n'ai plus d'erreur mais au lieu de me récupérer les valeurs des 2 colonne qui suivent, il me récupère la tout première cellule active (1ère ligne, 1ère colonne).
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

en fait après vérification la boucle if ne marche pas du tout mais il ne donne pas d'erreur
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

de plus je travaille sur vb6 donc je ne sais pas si ca correspond vraiment à vba (je ne m'y connait pas trop)
Messages postés
17
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006

je te remercie beaucoup ca fonctionne très bien mais j'ai du rajouté juste les déclarations de variables suivantes :
Dim i As Integer
Dim valeur1 As Double
Dim valeur2 As Double
Dim valeur As Integer