Lire un fichier Excel Fermé

Résolu
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015 - 29 nov. 2009 à 22:02
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015 - 30 nov. 2009 à 11:56
Bonjour à tous, c'est encore moi. je veux lire une cellule d'un fichier Excel existant sans l'ouvrir. J'utilise donc ADO.
voici mon code:

Private Sub Form_Load()
Dim path As String
Dim cnn As Object
Dim rst As Object
Set cnn = CreateObject("ADODB.Connection")

path = "C:\truc.xls"
'cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=" & path & _
               " Extended Properties=""Excel 11.0;HDR=NO;IMEX=1"""
 
cnn.Open "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=" & path
Set rst = CreateObject("ADODB.Recordset")
'rst.CursorLocation = adUseClient
'rst.CursorType = adUseStatic
'rst.LockType = adLockReadOnly

Set rst = cnn.Execute("Select * from [Actua$C4:C5]") 
 
MsgBox rst.GetString
 
rst.Close
cnn.Close
 
Set cnn = Nothing
Set rst = Nothing
End Sub


En bleu des bouts de codes qui me généraient des erreurs. Mon problème est que sur l'exemple ci dessus je dois écrire C4:C5 pour avoir la valeur de la cellule C5. ce qui est très pénible si ont veut utiliser ce code comme fonction car il faudra à chaque fois passer 2 adresses de cellules plutôt qu'une. j'ai essayé C5:C5 mais une erreur disant "BOF ou EOF true ..." Ce qui a du sens. Si quelqu'un peu m'aider à n'utiliser que l'adresse de la cellule qui m'intéresse je serais ravi .
Je ne demande pas de m'écrire un truc du genre "C" & i &":C" & i+1 Je cherche une vrai solution.
Je compte sur votre aide.
Merci d'avance.

nitho l'amateur

8 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 nov. 2009 à 23:46
salut,

une petite classe toute prête :
http://www.codyx.org/snippet_connexion-fichier-excel-comme-base-donnees_790.aspx#2374


une petite fonction sur mesure
Function GetCellValue(ByVal sXlsPath As String, ByVal sSheetName As String, ByVal sCell As String) As Variant
'   sCell = SSN (ABC...NUMERO)
    Dim xls As New Class1
    xls.DBConnect sXlsPath, False
    xls.RSExecute "SELECT * FROM  [" & sSheetName & "$" & sCell & ":" & sCell & "];"
    GetCellValue = xls.RS.Fields(0).Value
    Set xls = Nothing
End Function



et le tour est joué
MsgBox GetCellValue("c:\temp.xls", "Feuil1", "C5")



merci néanmoins d'éviter les MP pour ce genre de demande

bonne soirée
[hr]
3
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
30 nov. 2009 à 08:20
Dim xls As New Class1

Erreur de compilation: Type défini par l'utilisateur non défini


nitho l'amateur
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2009 à 09:59
et le lien indiqué??
0
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
30 nov. 2009 à 10:14
J'ai tout collé dans mon code apart les exemples mais il y a toujours erreur.


nitho l'amateur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2009 à 10:18
collé dans une classe nommée CLASS1 ?
avec les références indiquées en commentaires?
0
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
30 nov. 2009 à 10:54
Pour les références c'est fait mais pour la classe...J'avais collé dans la fenêtre de code bref.
Le seul pb est que lorsque l'on met une adresse de cellule vide, une erreur survient. "Erreur d'exécution 94: Utilisation non autorisé de Null" Je sais que c'est une erreur récupérable mais si vous avez une idée...


nitho l'amateur
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2009 à 11:19
tu as toutes les données pour t'en sortir, on dépasse le tout cuit là !!

voir isnull(...)
0
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
30 nov. 2009 à 11:56
Ok Ok, je croyais que l'erreur émanait du module de classe. Merci pour tout PCPT


nitho l'amateur
0
Rejoignez-nous