XL 2013 Extraitre des données allant d'une date à une autre

Ic0ne1300

XLDnaute Nouveau
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 :
VB:
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.
 

dg62

XLDnaute Accro
Bonjour Icone1300

Etes-vous sur de cela ?
VB:
While Temp < Datefin
vous sortez immédiatement de la boucle sauf erreur. C'est dans votre requête select que vous devez faire votre condition "Select... From... Where...".
 
Dernière édition:

Ic0ne1300

XLDnaute Nouveau
Merci de votre réponse,
Est-ce possible que vous m'indiquiez directement sur mon code ce que je dois changer exactement, étant débutante je ne comprends pas trop comment faire....

Merci de votre attention
 

dg62

XLDnaute Accro
re,
VB:
 Me.ListBox1.List = Application.Transpose(.Execute("SELECT [Date],[OS],[UO],[Préparateur],[Etat du dossier],[Temps Réalisé] FROM [Données_à_extraire$A1:AA65000] WHERE [date]>= datefin").GetRows)
et supprimer la boucle while wend

syntaxe à vérifier.
 

dg62

XLDnaute Accro
Est-ce qu'il y a bien correspondance ente le nom des champs de la requête et ceux de la table ?
 

dg62

XLDnaute Accro
Essayez de mettre une majuscule à date en fin de requête

Where [Date]>=datefin
 

Ic0ne1300

XLDnaute Nouveau
J'ai essayé déjà avec les majuscules, dans tous les sens, mais rien n'y fait, toujours ce même message d'erreur dès qu'il arrive a la ligne que tu m'as changé
 

Roblochon

XLDnaute Impliqué
Bonjour,

Euh... il me semble que cela pourrait être:

VB:
Me.ListBox1.List = Application.Transpose(.Execute("SELECT [Date],[OS],[UO],[Préparateur],[Etat du dossier],[Temps Réalisé] FROM [Données_à_extraire$A1:AA65000] WHERE [date]>=" & datefin & ").GetRows)
Sinon datefin est attendu comme paramètre de la requête. A vérifier.

Bonne fin d'après-midi
 

tatiak

XLDnaute Barbatruc
Perso, ça ne me dérange pas que les demandeurs postent sur différents forums.
Je voulais simplement indiquer que j'avais fait une réponse qui me semble fonctionnelle avec ce code (et le module générique proposé en .txt)
VB:
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
 

Fichiers joints

Roblochon

XLDnaute Impliqué
Bonjour @tatiak
Perso, ça ne me dérange pas que les demandeurs postent sur différents forums.
Moi non plus quand ils le signalent et donnent des nouvelles, surtout s'ils ont eu une réponse satisfaisante. Je venais de construire un exemple proche du tien à partir d'un de mes fichiers, quand j'ai vu qu'il avait déjà eu une réponse. Cela m'apprendra à ne pas devancer la demande...

Cordialement
 

Ic0ne1300

XLDnaute Nouveau
Bonjour à tous,

Merci de vos réponses, effectivement j'ai publié sur les deux forums pour avoir plusieurs avis..
Suite à cela, le code de Pierre (Tatiak) ne fonctionne pas, j'ai un problème de Byref il semblerai :confused:

Merci à vous !
 

tatiak

XLDnaute Barbatruc
La bonne orthographe est plutôt :
VB:
        .List = Select_Db(Requete, 1)
Pierre
 

Ic0ne1300

XLDnaute Nouveau
Bonjour,
Merci de ton aide, du coup il y avait plusieurs petites erreurs que j'ai reussi a corriger, mais maintenant il compile jusqu'a mon UserForm et au lieu de m'afficher mon historique il m'affiche cela :Captureerreur4.PNG
 

Discussions similaires


Haut Bas