Extraction de donnée d'une date à une autre

Bonjour à tous,

Je reviens vers vous pour une énième question :

J'ai coder mon UserForm pour qu'il fasse une extraction de donnée d'un classeur fermé. Dans mon code, il va chercher le fichier, puis il va extraire les données des colonnes que j'ai choisi sous forme de ListBox. Jusqu'ici mon code marche très bien.

Maintenant, je voudrais rajouter des lignes pour qu'il extrait les données d'une date allant d'aujourd'hui à 7 jours en arrière.

mon code est le suivant :

Private Sub userform_initialize()

Dim Datedebut As Date

Dim Datefin As Date

Dim i As Integer

Dim Temp As Date

Datedebut = Format(Now, "dd/mm/yyyy")

Datefin = Format(Now - 7, "dd/mm/yyyy")

Temp = Datedebut

While Temp < Datefin

'Dim cnn As ADODB.Connection

  'Microsoft ActiveX DataObject doit être coché

  'BD est le nom de l'onglet ou se trouve le tableau à récupérer

        Set cnn = New ADODB.Connection

    With CreateObject("ADODB.Connection")

        .Open = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Outils_Pointage\Ressources\Recapitulatif_general.xlsm ;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""

    Me.ListBox1.List = Application.Transpose(.Execute("SELECT [Date],[OS],[UO],[Préparateur],[Etat du dossier],[Temps Réalisé] FROM [Données_à_extraire$A1:AA65000]").GetRows)

    .Close

    Me.ListBox1.ColumnCount = 6

    Me.ListBox1.ColumnWidths = "80;120;120;120;120;120"

    End With

Wend

End Sub

Comme vous pouvais le voir j'ai déja commencé en y mettant les variable mais rien n'y fait il ne m'affiche plus rien. Mon UserForm s'ouvre bien mais les données ne s'affichent plus du tout...

Merci pour votre aide

Bonne journée.

Bonjour Cac0,

A essayer:

Datedebut = CLng(Now()))

Datefin = CLng(Now())-7)

While Datedebut < Datefin

Bonjour Cac0,

A essayer:

Datedebut = CLng(Now()))

Datefin = CLng(Now())-7)

While Datedebut < Datefin

Bonjour,

Merci de ta réponse, mais cela ne change rien, quand je fais F8, il passe bien par tes lignes mais il ne va pas dans mon code d'extraction..

C'est normal "Datedebut " est toujours inférieur à "Datedefin",

Sub test()
Dim Datedebut As Long
Dim Datefin As Long

Datedebut = CLng(Now())

Datefin = CLng(Now()) - 7

While Datefin < Datedebut
    MsgBox ("Date: " & CDate(Format(Datefin, dddd)))

    Datefin = Datefin + 1
Wend

End Sub

Merci,

Ton code marche mais ce n'est- pas ce que j'attendais puisque il me mets juste des message box m'indiquant la date d'il y a 6 jours jusqu'a maintenant, puis ensuite il m'affiche mon extraction ahah

Du coup si tu as une alternative je suis preneuse

Le code que je t'ai fournis n'est qu'un exemple maintenant a toi de mettre ce que tu souhaites dedans.

Merci, mais ton code ne me permet en aucun cas d'extraire mes données d'une date de début a une date de fin ?

Je veux dire même en m'aidant de ce que tu m'as envoyé ?

En ayant vu ton code de ton 1er post celui ci avait une erreur , a aucun moment tu ne rentrait dans ta boucle, je te propose une solution pour cela.

Maintenant pour ton extraction, comment veux tu que l'on t'aide, tu ne fournis même pas un fichier, car j'imagine que tu travaille avec 2 fichiers .

Que veux tu extraire? Ou ? depuis quel fichier ?

Si tu souhaites une résolution de ton problème, il faudrait à mon sens plus d'explications et matière à travailler, car sans fichier c'est travailler dans le vide

En ayant vu ton code de ton 1er post celui ci avait une erreur , a aucun moment tu ne rentrait dans ta boucle, je te propose une solution pour cela.

Maintenant pour ton extraction, comment veux tu que l'on t'aide, tu ne fournis même pas un fichier, car j'imagine que tu travaille avec 2 fichiers .

Que veux tu extraire? Ou ? depuis quel fichier ?

Si tu souhaites une résolution de ton problème, il faudrait à mon sens plus d'explications et matière à travailler, car sans fichier c'est travailler dans le vide

Et bien justement, dans mon code d'extraction (qui marche tout seul), tu peux voir que je prends un classeur fermé grâce au chemin "outilPointage\Ressource ...." Ensuite dans mon code je sélectionne les colonnes nommées "Date, os,uo " ... du classeur fermé, qui vienne de la feuille "Donnée à extraire" , pour mettre tout ca sous forme de liste box dans mon UserForm.

Tout est marqué dans mon code

Mon problème étant qu'il extrait vraiment toute les lignes de mon classeur fermé, mais moi j'aimerai qu'il prenne que les lignes se trouvant entre la date aujourd'hui et 7 jours avant.

Bonjour à tous,

Voici une proposition.

Dans le fichier code_générique.txt, du code générique ADO pour se connecter à tout xls*

Ce code est à copier/coller tel quel dans un module ordinaire quelconque de ton projet.

Dès lors le code du Userform_Initialize devient simple :

Private Sub Userform_Initialize()
Dim Requete As String

    Requete = "SELECT `Date`,`OS`,`UO`,`Préparateur`,`Etat du dossier`,`Temps Réalisé` " & _
              " FROM [Données_à_extraire$A:AA]" & _
              " WHERE `Date` BETWEEN " & (Now - 7) & " AND " & Now

    Connect_Xls "F:\Outils_Pointage\Ressources\Recapitulatif_general.xlsm"
    With Me.ListBox1
        .List = Select_Db(Req, 1)
        .ColumnCount = 6
        .ColumnWidths = "80;120;120;120;120;120"
    End With
    Close_Cnx
End Sub

Pierre

14code-generique.txt (1.69 Ko)

Bonjour à tous,

Voici une proposition.

Dans le fichier code_générique.txt, du code générique ADO pour se connecter à tout xls*

Ce code est à copier/coller tel quel dans un module ordinaire quelconque de ton projet.

Dès lors le code du Userform_Initialize devient simple :

Private Sub Userform_Initialize()
Dim Requete As String

    Requete = "SELECT `Date`,`OS`,`UO`,`Préparateur`,`Etat du dossier`,`Temps Réalisé` " & _
              " FROM [Données_à_extraire$A:AA]" & _
              " WHERE `Date` BETWEEN " & (Now - 7) & " AND " & Now

    Connect_Xls "F:\Outils_Pointage\Ressources\Recapitulatif_general.xlsm"
    With Me.ListBox1
        .List = Select_Db(Req, 1)
        .ColumnCount = 6
        .ColumnWidths = "80;120;120;120;120;120"
    End With
    Close_Cnx
End Sub

Pierre

Bonjour, merci pour ta réponse

Lorsque je mets le code que tu m'as donner, il ne compile pas.... j'ai donc fais F8 pour voir et voila ce que ca me donne :

captureerreur3

Ce message s'affiche pour le mot "Req"

Merci !

J'ai écrit trop vite!

C'est :

        .List = Select_Db(Requete, 1)
Rechercher des sujets similaires à "extraction donnee date"