Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

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

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
 

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

Merci à vous !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…