Rechercher : dans
Par :

Vb recherche d'une valeur dans une colonne

Dernière réponse le 21 nov 2008 à 15:11:45 zecoolman, le 21 nov 2008 à 11:02:18 
 Signaler ce message aux modérateurs

Bonjour,

Mon problème est le suivant :

J'ai un tableau en feuil1 et à l'aide d'un bouton je souhaiterais que ces valeurs se sauvegarder dans le tableau (feuil2) avec la date de façon à garder une historique de mes valeurs!
J'ai donc créer dans le tableau 2 une colonne avec toutes les dates de façon à effectuer une recherche, dès que la date d'aujourd'hui correspond à la date du tableau 2, mettre les valeurs dans le tableau 2 et sauvegarder!

Seulement je n'arrive pas à faire fonctionner la fonction Find dans vb? Est-ce que quelqun aurait une idée!

Merci

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « vb recherche d'une valeur dans une colonne » dans :
Les fonctions Ligne, Lignes, Colonne, Colonnes VoirVous avez un tableau et vous l'avez nommé NomTableau (par exemple) avec : INSERTION / NOM / DEFINIR ..... cocher les cases du tableau et nommer le tableau NomTableau (par exemple) Dans ce tableau, vous voulez connaitre, quelque soit son...
[VBA] RechercheV Polyvalente VoirRECHERCHE POLYVALENTE Pour les accros et les inconditionnels des fonctions d'Excel, avant de crier au scandale, lisez les quelques lignes suivantes. La RechercheV d'origine a beaucoup de limites: La colonne de la donnée doit être avec un offset...

1

Bidouilleu_R, le 21 nov 2008 à 11:13:50

Met un morceau de ton code ce sera plus simple.

Répondre à Bidouilleu_R

2

zecoolman, le 21 nov 2008 à 11:31:50

En fait dès que je clike sur le boutpn j'aimerais que dans mon tableau de la feuil2 s'affiche les valeurs que j'ai entré devant la date (déjà écrite dans le tableau 1 et 2) puis sauvegarde

private Sub Validez_Click()


Dim ValAChercher
ValAChercher = Feuil1.Range("B1").Value
'la valeur que je cherche dans mon tableau Feuil2 est la date que j'ai entrer dans le tableau Feuil1
Feuil2.Range("a4:a500").Select
'dimensionnement de la colonne dans laquelle je cherche ma date

Do
Set c = Selection.Find(ValAChercher:=Label2.Caption, LookIn:=xlValues, LookAt:=xlPart)

Feuil2.Range("A" & c).Value = Feuil1.Range("B1").Value
Feuil2.Range("B" & c).Value = Feuil1.Range("B8").Value
Feuil2.Range("C" & c).Value = Feuil1.Range("C8").Value
Feuil2.Range("D" & c).Value = Feuil1.Range("D8").Value
Feuil2.Range("E" & c).Value = Feuil1.Range("C13").Value
Feuil2.Range("F" & c).Value = Feuil1.Range("C14").Value
Feuil2.Range("G" & c).Value = Feuil1.Range("C15").Value
Feuil2.Range("H" & c).Value = Feuil1.Range("D13").Value
Feuil2.Range("I" & c).Value = Feuil1.Range("D14").Value
Feuil2.Range("J" & c).Value = Feuil1.Range("D15").Value
Feuil2.Range("K" & c).Value = Feuil1.Range("G8").Value
Feuil2.Range("L" & c).Value = Feuil1.Range("H8").Value
Feuil2.Range("M" & c).Value = Feuil1.Range("I8").Value
Feuil2.Range("N" & c).Value = Feuil1.Range("J8").Value
Feuil2.Range("O" & c).Value = Feuil1.Range("K8").Value
Feuil2.Range("P" & c).Value = Feuil1.Range("L8").Value

Loop

End Sub

Répondre à zecoolman

3

Bidouilleu_R, le 21 nov 2008 à 13:57:51

Bon ton programme et faux!

lorsque tu écrit "set c" tu fais réferences à un objet cellule qui contient toutes les propriété de la cellule
'valeur couleur hauteur tout

puis tu cherches une date ok ! ça marche tu trouves la date 21/11/2008
puis tu écris ....

Feuil2.Range("B" & c).Value = Feuil1.Range("B8").Value
la valeur de Cest 21/11/2008 en nombre cela donne 36....

là je ne comprends pas
je pense que tu veux trouver la date puis écrire à côté est-ce exact?

Répondre à Bidouilleu_R

4

Bidouilleu_R, le 21 nov 2008 à 14:07:59

'Ce code ecrase la date que tu as recherchée je ne trouve pas cela logique.

Private Sub Validez_Click()


Dim ValAChercher
ValAChercher = Sheets("Feuil1").Range("B1").Value
'la valeur que je cherche dans mon tableau Feuil2 est la date que j'ai entrer dans le tableau Feuil1
Sheets("Feuil2").Select
Range("a4:a500").Select
'dimensionnement de la colonne dans laquelle je cherche ma date

With Worksheets(2).Range("a1:a500")
Set C = .Find(ValAChercher, LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
' ici c'est pas logique
C.Offset(0, 0).Value = Range("B1").Value


'Feuil2.Range("A" & C).Value = Feuil1.Range("B1").Value
C.Offset(0, 1).Value = Feuil1.Range("B8").Value
C.Offset(0, 2).Value = Feuil1.Range("C8").Value
C.Offset(0, 3).Value = Feuil1.Range("D8").Value
C.Offset(0, 4).Value = Feuil1.Range("C13").Value
C.Offset(0, 5).Value = Feuil1.Range("C14").Value
C.Offset(0, 6).Value.Value = Feuil1.Range("C15").Value
C.Offset(0, 7).Value = Feuil1.Range("D13").Value
C.Offset(0, 8).Value = Feuil1.Range("D14").Value
C.Offset(0, 9).Value = Feuil1.Range("D15").Value
C.Offset(0, 10).Value = Feuil1.Range("G8").Value
C.Offset(0, 11).Value = Feuil1.Range("H8").Value
C.Offset(0, 12).Value = Feuil1.Range("I8").Value
C.Offset(0, 13).Value = Feuil1.Range("J8").Value
C.Offset(0, 14).Value = Feuil1.Range("K8").Value
C.Offset(0, 15).Value = Feuil1.Range("L8").Value

Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With






End Sub

Répondre à Bidouilleu_R

5

Bidouilleu_R, le 21 nov 2008 à 14:20:01

Désolé j'avais pas vu c'était trop gros Feuil1.range..... écrire sheets("Feuil1").range



Private Sub Validez_Click()


Dim ValAChercher
ValAChercher = Sheets("Feuil1").Range("B1").Value
'la valeur que je cherche dans mon tableau Feuil2 est la date que j'ai entrer dans le tableau Feuil1
Sheets("Feuil2").Select
Range("a4:a500").Select
'dimensionnement de la colonne dans laquelle je cherche ma date

With Worksheets(2).Range("a1:a500")
Set C = .Find(ValAChercher, LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
' ici c'est pas logique
C.Offset(0, 0).Value = Range("B1").Value


'Feuil2.Range("A" & C).Value = Feuil1.Range("B1").Value
C.Offset(0, 1).Value = sheets("Feuil1").Range("B8").Value
C.Offset(0, 2).Value = sheets("Feuil1")..Range("C8").Value
C.Offset(0, 3).Value = sheets("Feuil1")..Range("D8").Value
C.Offset(0, 4).Value = sheets("Feuil1")..Range("C13").Value
C.Offset(0, 5).Value = sheets("Feuil1")..Range("C14").Value
C.Offset(0, 6).Value.Value = sheets("Feuil1")..Range("C15").Value
C.Offset(0, 7).Value = sheets("Feuil1")..Range("D13").Value
C.Offset(0, 8).Value = sheets("Feuil1")..Range("D14").Value
C.Offset(0, 9).Value = sheets("Feuil1")..Range("D15").Value
C.Offset(0, 10).Value = sheets("Feuil1")..Range("G8").Value
C.Offset(0, 11).Value = sheets("Feuil1")..Range("H8").Value
C.Offset(0, 12).Value = sheets("Feuil1")..Range("I8").Value
C.Offset(0, 13).Value = sheets("Feuil1")..Range("J8").Value
C.Offset(0, 14).Value = sheets("Feuil1")..Range("K8").Value
C.Offset(0, 15).Value = sheets("Feuil1")..Range("L8").Value

Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With






End Sub

Répondre à Bidouilleu_R

6

 zecoolman, le 21 nov 2008 à 15:11:45

Bon j'ai bien vu que j'avais qq fautes!!! Mais en copiant-collant ton programme Bidouilleu_R je ne comprend pas ce que offset viens foutre là!!!!! Mais j'ai trouvé ma solution :
Dim today As Date
Dim celluletrouvee As Range
Dim ligne As Integer
Dim colonne As Integer

today = Feuil1.Range("B1").Value

Set celluletrouvee = Feuil2.Range("A4:A380").Find(today, lookat:=xlWhole)

If celluletrouvee Is Nothing Then
MsgBox ("Veuillez mettre à jour les dates sur la feuille Hist!!! " + Chr(13) + Str(Date))
Else
ligne = celluletrouvee.Row

Feuil2.Range("B" & ligne).Value = Feuil1.Range("B8").Value
Feuil2.Range("C" & ligne).Value = Feuil1.Range("C8").Value
Feuil2.Range("D" & ligne).Value = Feuil1.Range("D8").Value
Feuil2.Range("E" & ligne).Value = Feuil1.Range("C13").Value
Feuil2.Range("F" & ligne).Value = Feuil1.Range("C14").Value
Feuil2.Range("G" & ligne).Value = Feuil1.Range("C15").Value
Feuil2.Range("H" & ligne).Value = Feuil1.Range("D13").Value
Feuil2.Range("I" & ligne).Value = Feuil1.Range("D14").Value
Feuil2.Range("J" & ligne).Value = Feuil1.Range("D15").Value
Feuil2.Range("K" & ligne).Value = Feuil1.Range("G8").Value
Feuil2.Range("L" & ligne).Value = Feuil1.Range("H8").Value
Feuil2.Range("M" & ligne).Value = Feuil1.Range("I8").Value
Feuil2.Range("N" & ligne).Value = Feuil1.Range("J8").Value
Feuil2.Range("O" & ligne).Value = Feuil1.Range("K8").Value
Feuil2.Range("P" & ligne).Value = Feuil1.Range("L8").Value

End If



End Sub

et ça marche pil poil ce que je voulais faire
Merci quand même

Répondre à zecoolman
Collection CommentÇaMarche.net