VBA Problème récupération format Date Recordset

  • Initiateur de la discussion Initiateur de la discussion creal69360
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

creal69360

XLDnaute Junior
Bonjour,

J'ai crée une Recordset afin de récupérer d'une grosse base des données selon certains critères (saisis dans un userform) que je rajoute à la clause where. Jusque là aucun problème, ma requête fonctionne très bien et me récupère les bonnes données.

J'ai cependant un soucis au niveau des dates, en effet un grand nombre de colonnes contiennent des dates (elles peuvent aussi contenir du texte). Le soucis est que lorque j'exécute ma recordset, les dates sont transformées en integer au format standard donc changer le format avec .numberformat n'a aucun impact (mes données ne sont plus considérées comme des données numériques). Je voudrais donc savoir si il existe une solution pour avoir des dates à la place de nombres. Voici ci-dessous mon code pour exécuter la recordset (Utilisable uniquement sous Excel 2007):


sub recup()

Dim cn, cn1 As ADODB.Connection
Dim rst, rst1 As ADODB.Recordset
Dim texte_SQL As String
Dim where as string



where = where & "[Manager]='" & filtre.zl_manager_projet & "'"

Set cn = New ADODB.Connection

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & chemin_base & ";Extended Properties=Excel 8.0;"

texte_SQL = "Select * from [" & onglet_source & "$] " & where
Set rst = New ADODB.Recordset


Set rst = cn.Execute(texte_SQL)

ThisWorkbook.Sheets(onglet_dest).Cells.ClearContents

For i = 0 To rst.Fields.Count - 1
ThisWorkbook.Sheets(onglet_dest).Cells(4, i + 1) = rst.Fields(i).Name
Next i

ThisWorkbook.Sheets(onglet_dest).Range("a5").CopyFromRecordset rst

rst.Close
Set rst = Nothing

cn.Close
Set cn = Nothing

end sub
 
Re : VBA Problème récupération format Date Recordset

Bonjour.
Oui j'ai fait des édits au poste #13 depuis que vous avez récupéré le code. Il ne change plus les valeurs de cellules vides et évite un plantage pour des non vides qui ne pourraient être converties en dates.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
733
Réponses
7
Affichages
721
Réponses
5
Affichages
495
Réponses
15
Affichages
3 K
Réponses
12
Affichages
1 K
Retour