Lire un fichier Excel Fermé [Résolu]

Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Dernière intervention
8 décembre 2015
- 29 nov. 2009 à 22:02 - Dernière réponse :
Messages postés
130
Date d'inscription
jeudi 16 avril 2009
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
29 nov. 2009 à 23:46
3
Merci
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]

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Dernière intervention
8 décembre 2015
30 nov. 2009 à 08:20
0
Merci
Dim xls As New Class1

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


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


nitho l'amateur
Commenter la réponse de cs_nitho
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
30 nov. 2009 à 10:18
0
Merci
collé dans une classe nommée CLASS1 ?
avec les références indiquées en commentaires?
Commenter la réponse de PCPT
Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Dernière intervention
8 décembre 2015
30 nov. 2009 à 10:54
0
Merci
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
Commenter la réponse de cs_nitho
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
30 nov. 2009 à 11:19
0
Merci
tu as toutes les données pour t'en sortir, on dépasse le tout cuit là !!

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


nitho l'amateur
Commenter la réponse de cs_nitho

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.