Vb recherche d'une valeur dans une colonne

zecoolman -  
 zecoolman -
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

4 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
met un morceau de ton code ce sera plus simple.
0
zecoolman
 
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
0
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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?
0
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
'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
0
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
0
zecoolman
 
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
0