Lister les onglets d'un document Excel depuis Access VBA
4 réponses
Laurent
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai
bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA
me retourne des noms de feuille qui n'existe absolument pas dans le
document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test".
Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement,
Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche'
:)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------'
' ¦ This function lists all the ¦
' ¦ worksheets of a given Excel file ¦
' ¦ and returns a string ¦
' ---------------------------------------'
'Declarations
Dim DB As DAO.Database
Dim td As DAO.TableDef
Dim strSpreadSheetList As String
Dim strSpecCharacter1 As String
Dim strSpecCharacter2 As String
strSpecCharacter1 = cInvertedComma & "'"
strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows ->
' -> '$' in a spreadsheet (double $$) is replaced by '#'
' -> ' ' in a spreadsheet ($) is replaced by ""
' -> '#' is replaced by '$'
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michel
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
bonjour
Ta methode me semble compliquee
essaie ce code
Sub xl()
Dim xlapp As New Excel.Application
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
ATTENTION ajoute la reference a excel dans ton module
@Plus
Michel
"Laurent" <laurent_dick@gmx.ch_STOPSPAM> a écrit dans le message de
news:ua5Tq8ZJKHA.1492@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel.
J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access
VBA me retourne des noms de feuille qui n'existe absolument pas dans le
document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test".
Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu
?
Merci pour votre aide et bel après-midi
Cordialement,
Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui
'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------'
' ¦ This function lists all the ¦
' ¦ worksheets of a given Excel file ¦
' ¦ and returns a string ¦
' ---------------------------------------'
'Declarations
Dim DB As DAO.Database
Dim td As DAO.TableDef
Dim strSpreadSheetList As String
Dim strSpecCharacter1 As String
Dim strSpecCharacter2 As String
strSpecCharacter1 = cInvertedComma & "'"
strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows ->
' -> '$' in a spreadsheet (double $$) is replaced by '#'
' -> ' ' in a spreadsheet ($) is replaced by ""
' -> '#' is replaced by '$'
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Laurent
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter
d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement,
Laurent
"michel" <michel.chambrllon@gmail.comAOT> wrote in message
news:ehW$YEiJKHA.4652@TK2MSFTNGP04.phx.gbl...
bonjour
Ta methode me semble compliquee
essaie ce code
Sub xl()
Dim xlapp As New Excel.Application
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
ATTENTION ajoute la reference a excel dans ton module
@Plus
Michel
"Laurent" <laurent_dick@gmx.ch_STOPSPAM> a écrit dans le message de
news:ua5Tq8ZJKHA.1492@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel.
J'ai bien compris que Excel ramène un $ à la fin de chaque nom de
feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access
VBA me retourne des noms de feuille qui n'existe absolument pas dans le
document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée
"test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu
?
Merci pour votre aide et bel après-midi
Cordialement,
Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui
'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------'
' ¦ This function lists all the ¦
' ¦ worksheets of a given Excel file ¦
' ¦ and returns a string ¦
' ---------------------------------------'
'Declarations
Dim DB As DAO.Database
Dim td As DAO.TableDef
Dim strSpreadSheetList As String
Dim strSpecCharacter1 As String
Dim strSpecCharacter2 As String
strSpecCharacter1 = cInvertedComma & "'"
strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows ->
' -> '$' in a spreadsheet (double $$) is replaced by '#'
' -> ' ' in a spreadsheet ($) is replaced by ""
' -> '#' is replaced by '$'
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Michel__D
Bonjour,
Dans ce cas essaye comme ceci :
Sub xl() Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application") xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Bonjour,
Dans ce cas essaye comme ceci :
Sub xl()
Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application")
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter
d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement,
Laurent
"michel" <michel.chambrllon@gmail.comAOT> wrote in message
news:ehW$YEiJKHA.4652@TK2MSFTNGP04.phx.gbl...
bonjour
Ta methode me semble compliquee
essaie ce code
Sub xl()
Dim xlapp As New Excel.Application
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
ATTENTION ajoute la reference a excel dans ton module
@Plus
Michel
"Laurent" <laurent_dick@gmx.ch_STOPSPAM> a écrit dans le message de
news:ua5Tq8ZJKHA.1492@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel.
J'ai bien compris que Excel ramène un $ à la fin de chaque nom de
feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access
VBA me retourne des noms de feuille qui n'existe absolument pas dans le
document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée
"test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu
?
Merci pour votre aide et bel après-midi
Cordialement,
Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui
'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------'
' ¦ This function lists all the ¦
' ¦ worksheets of a given Excel file ¦
' ¦ and returns a string ¦
' ---------------------------------------'
'Declarations
Dim DB As DAO.Database
Dim td As DAO.TableDef
Dim strSpreadSheetList As String
Dim strSpecCharacter1 As String
Dim strSpecCharacter2 As String
strSpecCharacter1 = cInvertedComma & "'"
strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows ->
' -> '$' in a spreadsheet (double $$) is replaced by '#'
' -> ' ' in a spreadsheet ($) is replaced by ""
' -> '#' is replaced by '$'
Set xlapp = CreateObject("Excel.Application") xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Laurent
Excellent, merci beaucoup
:)
Cordialement, Laurent "Michel__D" wrote in message news:%23jk%
Bonjour,
Dans ce cas essaye comme ceci :
Sub xl() Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application") xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'
' --- Function output --- fcnGetExcelTabList = strSpreadSheetList
Excellent, merci beaucoup
:)
Cordialement,
Laurent
"Michel__D" <Michel.NOSPAM@orange-ft.com.invalid> wrote in message
news:%23jk%23r3zJKHA.6016@TK2MSFTNGP05.phx.gbl...
Bonjour,
Dans ce cas essaye comme ceci :
Sub xl()
Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application")
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter
d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement,
Laurent
"michel" <michel.chambrllon@gmail.comAOT> wrote in message
news:ehW$YEiJKHA.4652@TK2MSFTNGP04.phx.gbl...
bonjour
Ta methode me semble compliquee
essaie ce code
Sub xl()
Dim xlapp As New Excel.Application
xlapp.workbooks.Open "test2.xls"
For Each feuille In xlapp.ActiveWorkbook.Sheets
Debug.Print feuille.Name
Next
Set xlapp = Nothing
End Sub
ATTENTION ajoute la reference a excel dans ton module
@Plus
Michel
"Laurent" <laurent_dick@gmx.ch_STOPSPAM> a écrit dans le message de
news:ua5Tq8ZJKHA.1492@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel.
J'ai bien compris que Excel ramène un $ à la fin de chaque nom de
feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction,
Access VBA me retourne des noms de feuille qui n'existe absolument pas
dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée
"test". Ma fonction Access me retourne "tbTmpBatchConversion" et
"test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous
résolu ?
Merci pour votre aide et bel après-midi
Cordialement,
Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui
'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------'
' ¦ This function lists all the ¦
' ¦ worksheets of a given Excel file ¦
' ¦ and returns a string ¦
' ---------------------------------------'
'Declarations
Dim DB As DAO.Database
Dim td As DAO.TableDef
Dim strSpreadSheetList As String
Dim strSpecCharacter1 As String
Dim strSpecCharacter2 As String
strSpecCharacter1 = cInvertedComma & "'"
strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows ->
' -> '$' in a spreadsheet (double $$) is replaced by '#'
' -> ' ' in a spreadsheet ($) is replaced by ""
' -> '#' is replaced by '$'
Cordialement, Laurent "Michel__D" wrote in message news:%23jk%
Bonjour,
Dans ce cas essaye comme ceci :
Sub xl() Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application") xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub
PS:Bien entendu, il faut que Excel soit installé.
Laurent a écrit :
Bonjour Michel,
Merci pour ta réponse. En fait, j'avais trouvé cette méthode pour éviter d'ajouter une référence supplémentaire .
Bonne soirée
Cordialement, Laurent
"michel" wrote in message news:ehW$
bonjour Ta methode me semble compliquee essaie ce code Sub xl() Dim xlapp As New Excel.Application xlapp.workbooks.Open "test2.xls" For Each feuille In xlapp.ActiveWorkbook.Sheets Debug.Print feuille.Name Next Set xlapp = Nothing End Sub ATTENTION ajoute la reference a excel dans ton module @Plus Michel "Laurent" a écrit dans le message de news:
Bonjour,
Je cherche à lire la liste des des onglets composant un document Excel. J'ai bien compris que Excel ramène un $ à la fin de chaque nom de feuille.
Maintenant, quelque chose m'échappe, car si je lance ma fonction, Access VBA me retourne des noms de feuille qui n'existe absolument pas dans le document.
Pour résumer : dans Excel, j'ai une seule et unique feuille nommée "test". Ma fonction Access me retourne "tbTmpBatchConversion" et "test".
Si vous avez déjà été confronté à ce problème, comment l'avez-vous résolu ?
Merci pour votre aide et bel après-midi
Cordialement, Laurent
PS : A toute fin utile, une copie de mon code, si vous voyez ce qui 'pêche' :)
---------------------------------------------
Public function fcnGetExcelTabList (ByVal strPath As String) As String
' ---------------------------------------' ' ¦ This function lists all the ¦ ' ¦ worksheets of a given Excel file ¦ ' ¦ and returns a string ¦ ' ---------------------------------------'
'Declarations Dim DB As DAO.Database Dim td As DAO.TableDef Dim strSpreadSheetList As String Dim strSpecCharacter1 As String Dim strSpecCharacter2 As String strSpecCharacter1 = cInvertedComma & "'" strSpecCharacter2 = "'" & cInvertedComma
Set DB = DAO.OpenDatabase(strPath, True, False, "Excel 8.0;")
' Replaces the following strings as follows -> ' -> '$' in a spreadsheet (double $$) is replaced by '#' ' -> ' ' in a spreadsheet ($) is replaced by "" ' -> '#' is replaced by '$'