DarkRider26
Messages postés32Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention15 juin 2006
-
21 avril 2006 à 11:25
DarkRider26
Messages postés32Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention15 juin 2006
-
21 avril 2006 à 11:41
Bonjour à tous !
J'ai un fichier excel qui me sert de base de données. Mes champs sont de type : code société, code établissement, nom, prénom, matricule etc ...
Je dois rechercher dedans les personnes de code société 01, de code etablissement ROM, dont la date d'entrée est comprise entre le 28/02/2006 et le 30/03/2006. Le champs date entrée est dans les champs, et sous format date normal.
Voici mon code :
Sub recherche()
Dim i As Integer
i = 1
While Cells(i, 1) <> ""
While Cells(i, 1) = "01"
While Cells(i, 3) = "ROM"
While "28/02/2006" < Cells(i, 17) < "30/03/2006"
MsgBox (Cells(i, 6))
Wend
i = i + 1
Wend
i = i + 1
Wend
i = i + 1
Wend
End Sub
Ce n'est qu'une bribe mais il ne fonctionne déja pas ... En effet vb et excel plante, enfin il ne répondent pas et rien n'abouti ... je suis obligé de faire Echap.
Je pense déja que mon algo est faux et aussi que la recherche des dates dans mon while n'est pas correct mais je ne sais pas faire
DarkRider26
Messages postés32Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention15 juin 2006 21 avril 2006 à 11:35
tu pense qu'il faut faire avec des if ?
En fait dans cette base d'une traitaine de champs, j'ai 1400 enregistrements lol !!!
Je viens de tenter ça tourne, mais le soucis est que même sur un essai de 5 enregistrement dont un qui doit marcher cad me mettre la MsgBox, et bien le teste sur la date ne fonctionne pas. La case cells(i,17) est en format date, mais je ne vois pas comment faire ...
En tout cas merci beaucoup déja !! Si tu as une petite idée pour la date ?
DarkRider26
Messages postés32Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention15 juin 2006 21 avril 2006 à 11:41
EUREKA !§! le secret est là : CDate
Sub recherche()
Dim i As Integer
i = 1
While Cells(i, 1) <> ""
If Cells(i, 1) = "01" Then
If Cells(i, 3) = "ROM" Then
If CDate("28/02/2006") < Cells(i, 17) And Cells(i, 17) < CDate("30/03/2006") Then
MsgBox (Cells(i, 6))
End If
End If
End If
i = i + 1
Wend
End Sub
Ca marche !! merci encore ! par contre comment fait tu pour mettre le code ici avec les couleurs ?