Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2011, 16h06   #1
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 0
Points : 0
Par défaut Erreur sur un Type non défini

Citation:
Envoyé par Sclarckone Voir le message
En effet le 'xlsx' n'existait pas du "temps" de Jet 4.0. Essaie:

Code :
.Provider = "Microsoft.ACE.OLEDB.14.0"
Et si ça ne marche pas tu peux essayer celui d'Excel 2007:

Code :
.Provider = "Microsoft.ACE.OLEDB.12.0"
Bonjour,
Je travaille avec EXCEL 2007, j'ai recopié le code ci-dessus de cette discussion pour récupérer des données depuis un classeur (.XLS) fermé...
A la compilation, j'ai un message d'erreur:
Type défini par l'utilisateur non défini!

Voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
Sub extractionValeurCelluleClasseurFerme()
    Dim Source As OLEDBDB.Connection
    Dim Rst As OLEDBDB.Recordset
    Dim ADOCommand As OLEDB.Command
    Dim Fichier As String, Cellule As String, Feuille As String
 
    'Adresse de la cellule contenant la donnée à récupérer
    Cellule = "CS5:CS5"
      'Pour une plage de cellules, utilisez:
      'Cellule = "A4:C10"
 
    Feuille = "normal$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
    'Chemin complet du classeur fermé
    Fichier = "nom_classeur.XLS"
 
    Set Source = New OLEDB.Connection
    Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
    Set ADOCommand = New OLEDB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
    End With
 
    Set Rst = New OLEDB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
 
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
 
    Range("A2").CopyFromRecordset Rst
 
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Sub
Merci d'avance de votre aide c'est urgent!
tchow est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h23.


 
 
 
 
Partenaires

Hébergement Web