Vb recherche d'une valeur dans une colonne
zecoolman
-
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
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
4 réponses
-
-
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-
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? -
'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
-
-
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 -
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