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 Barbatruc
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:

dg62

XLDnaute Barbatruc
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.
 

Ic0ne1300

XLDnaute Nouveau
Merci !
Du coup lorsque je compile j'ai le message d'erreur suivant qui s'affiche :
CaptureErreur2.PNG
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon