J'ai une erreur d'exécution '438': Propriété ou méthode non gérée par cet objet...
voici mon code:
Function RECUP(Fichier As String, Feuille As String, Ligne As Long, Col As Integer)
With CreateObject("Excel.Application").Workbooks .Open (Fichier) MsgBox .Worksheets(Feuille).Cells(Ligne, Col) .Close False End With End Function
Sub test() ret = RECUP("C:ListeDoss.xls", "Feuil2", 2, 1) End Sub
HD
Le problème est que celà ne fonctionne pas... J'ai une erreur d'exécution '438': Propriété ou méthode non gérée par cet objet...
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object Library"... Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros à son minimum sur Word (pour voir si celà venait de celà)... Mais rien y fait.
Le message d'erreur ne concerne que la ligne: .Worksheets(Feuille).Cells(Ligne, Col)
Le problème est que celà ne fonctionne pas...
J'ai une erreur d'exécution '438': Propriété ou méthode non gérée par cet
objet...
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object
Library"...
Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros
à son minimum sur Word (pour voir si celà venait de celà)... Mais rien y
fait.
Le message d'erreur ne concerne que la ligne:
.Worksheets(Feuille).Cells(Ligne, Col)
Le problème est que celà ne fonctionne pas... J'ai une erreur d'exécution '438': Propriété ou méthode non gérée par cet objet...
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object Library"... Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros à son minimum sur Word (pour voir si celà venait de celà)... Mais rien y fait.
Le message d'erreur ne concerne que la ligne: .Worksheets(Feuille).Cells(Ligne, Col)
Geo
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object Library"...
OK
Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros à son minimum sur Word (pour voir si celà venait de celà)...
Inutile votre macro s'exécute, la preuve :
Le message d'erreur ne concerne que la ligne: .Worksheets(Feuille).Cells(Ligne, Col)
Msgbox ne peut afficher qu'une chaîne de caractère, ce que vous avez là est une Range Excel, il ne sait pas quoi en faire. Et vous avez modifié le code, le Open n'était pas là. Je vous propose le code suivant où : - Toutes les variables sont déclarées, c'est tellement mieux - les différentes opérations sont décomposées Function RECUP(Fichier As String, Feuille As String, _ Ligne As Long, Col As Integer) As String Dim R As String Dim Cls As Workbooks Dim Cl As Workbook Dim F As Worksheet Dim Cel As Excel.Range Set Cls = CreateObject("Excel.Application").Workbooks Set Cl = Cls.Open(Fichier) Set F = Cl.Worksheets(Feuille) Set Cel = F.Cells(Ligne, Col) R = Cel.Text Cl.Close False RECUP = R End Function
Sub test() MsgBox RECUP("xxxxxxx", "Feuil1", 2, 1) End Sub
-- A+
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object Library"...
OK
Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros à son
minimum sur Word (pour voir si celà venait de celà)...
Inutile votre macro s'exécute, la preuve :
Le message d'erreur ne concerne que la ligne:
.Worksheets(Feuille).Cells(Ligne, Col)
Msgbox ne peut afficher qu'une chaîne de caractère, ce que vous avez là
est une Range Excel, il ne sait pas quoi en faire.
Et vous avez modifié le code, le Open n'était pas là.
Je vous propose le code suivant où :
- Toutes les variables sont déclarées, c'est tellement mieux
- les différentes opérations sont décomposées
Function RECUP(Fichier As String, Feuille As String, _
Ligne As Long, Col As Integer) As String
Dim R As String
Dim Cls As Workbooks
Dim Cl As Workbook
Dim F As Worksheet
Dim Cel As Excel.Range
Set Cls = CreateObject("Excel.Application").Workbooks
Set Cl = Cls.Open(Fichier)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cl.Close False
RECUP = R
End Function
Sub test()
MsgBox RECUP("xxxxxxx", "Feuil1", 2, 1)
End Sub
J'ai pourtant bien ajoutée la référence "Microsoft Excel 12.0 Object Library"...
OK
Le classeur en question n'est pas protégé... et j'ai mis la sécu des macros à son minimum sur Word (pour voir si celà venait de celà)...
Inutile votre macro s'exécute, la preuve :
Le message d'erreur ne concerne que la ligne: .Worksheets(Feuille).Cells(Ligne, Col)
Msgbox ne peut afficher qu'une chaîne de caractère, ce que vous avez là est une Range Excel, il ne sait pas quoi en faire. Et vous avez modifié le code, le Open n'était pas là. Je vous propose le code suivant où : - Toutes les variables sont déclarées, c'est tellement mieux - les différentes opérations sont décomposées Function RECUP(Fichier As String, Feuille As String, _ Ligne As Long, Col As Integer) As String Dim R As String Dim Cls As Workbooks Dim Cl As Workbook Dim F As Worksheet Dim Cel As Excel.Range Set Cls = CreateObject("Excel.Application").Workbooks Set Cl = Cls.Open(Fichier) Set F = Cl.Worksheets(Feuille) Set Cel = F.Cells(Ligne, Col) R = Cel.Text Cl.Close False RECUP = R End Function
Sub test() MsgBox RECUP("xxxxxxx", "Feuil1", 2, 1) End Sub
-- A+
HD
Un grand MERCI à toi Géo !!! ça fonctionne !!! :-)
Un grand MERCI à toi Géo !!! ça fonctionne !!! :-)
Le classeur Excel qui est ouvert comporte une macro en démarrage... Peut on ouvrir ce classeur sans exécuter la macro située en Workbooks_Open ?
Geo
Aïe... Problème...
Le classeur Excel qui est ouvert comporte une macro en démarrage... Peut on ouvrir ce classeur sans exécuter la macro située en Workbooks_Open ?
Il y a une instruction spécifique à Excel, mais ça m'échappe. Regardez sur le site que je vous ai indiqué ou posez la question sur le forum Excel. A moins qu'un Excellien passe par ici.
-- A+
Aïe... Problème...
Le classeur Excel qui est ouvert comporte une macro en démarrage... Peut on ouvrir ce
classeur sans exécuter la macro située en Workbooks_Open ?
Il y a une instruction spécifique à Excel, mais ça m'échappe.
Regardez sur le site que je vous ai indiqué ou posez la question sur le
forum Excel.
A moins qu'un Excellien passe par ici.
Le classeur Excel qui est ouvert comporte une macro en démarrage... Peut on ouvrir ce classeur sans exécuter la macro située en Workbooks_Open ?
Il y a une instruction spécifique à Excel, mais ça m'échappe. Regardez sur le site que je vous ai indiqué ou posez la question sur le forum Excel. A moins qu'un Excellien passe par ici.
-- A+
Geo
ça y'est j'ai trouvé...
Set Cls = CreateObject("Excel.Application").Workbooks Cls.Application.EnableEvents = False Set Cl = Cls.Open(Fichier) Set F = Cl.Worksheets(Feuille) Set Cel = F.Cells(Ligne, Col) R = Cel.Text Cls.Application.EnableEvents = True Cl.Close False
Merci pour le retour
-- A+
ça y'est j'ai trouvé...
Set Cls = CreateObject("Excel.Application").Workbooks
Cls.Application.EnableEvents = False
Set Cl = Cls.Open(Fichier)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cls.Application.EnableEvents = True
Cl.Close False
Set Cls = CreateObject("Excel.Application").Workbooks Cls.Application.EnableEvents = False Set Cl = Cls.Open(Fichier) Set F = Cl.Worksheets(Feuille) Set Cel = F.Cells(Ligne, Col) R = Cel.Text Cls.Application.EnableEvents = True Cl.Close False