J'ai un classeur avec une liste de noms qui désignent un ensemble de plages
de mes différentes sheets.
Via Excel Automation, j'accède à ces noms et à leurs références depuis
l'objet "ExcelApplication.Names".
Après je peux récupérer le nom (propriété Name) et la référence (propriété
RefersTo).
Jusque là pas de problème.
Maintenant, l'automation Office côté serveur étant déconseillée par
Microsoft, je voudrais faire "la même chose", mais en accédant à cette liste
de noms via ADO.Net, mais je ne trouve aucune information à ce sujet.
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
michdenis
Bonjour Chistophe,
Si c'est réellement avec ADO.Net ... oublie ce qui suit ....
Voici une procédure utilisant DAO qui retourne le nom de chaque feuille d'un classeur fermé + le "NOM" de toutes les plages de cellules nommées de ce classeur.
Tu as besoin d'ajouter la référence suivante à ton projet : "Microsoft Dao 3.6 objects librairy" '----------------------------------- Sub ListTables() Dim db As Database, TableCount As Long, i As Long Dim dPath As String 'Default location of Northwind.mdb dPath = "C:ATravailClasseur1.xls" 'Open nwind.mdb Set db = OpenDatabase(dPath, False, False, "excel 8.0") 'Set a variable to number of tables TableCount = db.TableDefs.Count 'Loop through all tables For i = 0 To TableCount - 1 'Display the table name MsgBox db.TableDefs(i).Name Next 'Close the database db.Close End Sub '-----------------------------------
Pour obtenir l'équivalent avec ADO, tu as cette procédure :
Ajoute ces 2 références à ton projet : '"Microsoft ActiveX Data Objects 2.1 Library" '"Microsoft ADO Ext. 2.1 for DDL and Security "."
Sub ListTables() Dim cnn As New ADODB.Connection Dim cat As New ADOX.Catalog Dim tbl As ADOX.Table
cat.ActiveConnection = cnn For Each tbl In cat.Tables MsgBox Left$(tbl.Name, Len(tbl.Name) - 1) Next tbl
Set cat = Nothing cnn.Close Set cnn = Nothing End Sub '-------------------------------------------
Salutations!
"Christophe QUEVAL" a écrit dans le message de news: % Bonjour,
J'ai un classeur avec une liste de noms qui désignent un ensemble de plages de mes différentes sheets. Via Excel Automation, j'accède à ces noms et à leurs références depuis l'objet "ExcelApplication.Names". Après je peux récupérer le nom (propriété Name) et la référence (propriété RefersTo). Jusque là pas de problème.
Maintenant, l'automation Office côté serveur étant déconseillée par Microsoft, je voudrais faire "la même chose", mais en accédant à cette liste de noms via ADO.Net, mais je ne trouve aucune information à ce sujet.
Quelqu'un aurait-il une piste ?
Merci :-)
Christophe
Bonjour Chistophe,
Si c'est réellement avec ADO.Net ... oublie ce qui suit ....
Voici une procédure utilisant DAO qui retourne le nom de chaque feuille d'un classeur fermé + le "NOM" de toutes les plages de
cellules nommées de ce classeur.
Tu as besoin d'ajouter la référence suivante à ton projet :
"Microsoft Dao 3.6 objects librairy"
'-----------------------------------
Sub ListTables()
Dim db As Database, TableCount As Long, i As Long
Dim dPath As String
'Default location of Northwind.mdb
dPath = "C:ATravailClasseur1.xls"
'Open nwind.mdb
Set db = OpenDatabase(dPath, False, False, "excel 8.0")
'Set a variable to number of tables
TableCount = db.TableDefs.Count
'Loop through all tables
For i = 0 To TableCount - 1
'Display the table name
MsgBox db.TableDefs(i).Name
Next
'Close the database
db.Close
End Sub
'-----------------------------------
Pour obtenir l'équivalent avec ADO, tu as cette procédure :
Ajoute ces 2 références à ton projet :
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Sub ListTables()
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
cat.ActiveConnection = cnn
For Each tbl In cat.Tables
MsgBox Left$(tbl.Name, Len(tbl.Name) - 1)
Next tbl
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Sub
'-------------------------------------------
Salutations!
"Christophe QUEVAL" <cquevalNOSPAM@SPAMNONONOmasternaut.com> a écrit dans le message de news:
%23eBpqtT5FHA.1148@tk2msftngp13.phx.gbl...
Bonjour,
J'ai un classeur avec une liste de noms qui désignent un ensemble de plages
de mes différentes sheets.
Via Excel Automation, j'accède à ces noms et à leurs références depuis
l'objet "ExcelApplication.Names".
Après je peux récupérer le nom (propriété Name) et la référence (propriété
RefersTo).
Jusque là pas de problème.
Maintenant, l'automation Office côté serveur étant déconseillée par
Microsoft, je voudrais faire "la même chose", mais en accédant à cette liste
de noms via ADO.Net, mais je ne trouve aucune information à ce sujet.
Si c'est réellement avec ADO.Net ... oublie ce qui suit ....
Voici une procédure utilisant DAO qui retourne le nom de chaque feuille d'un classeur fermé + le "NOM" de toutes les plages de cellules nommées de ce classeur.
Tu as besoin d'ajouter la référence suivante à ton projet : "Microsoft Dao 3.6 objects librairy" '----------------------------------- Sub ListTables() Dim db As Database, TableCount As Long, i As Long Dim dPath As String 'Default location of Northwind.mdb dPath = "C:ATravailClasseur1.xls" 'Open nwind.mdb Set db = OpenDatabase(dPath, False, False, "excel 8.0") 'Set a variable to number of tables TableCount = db.TableDefs.Count 'Loop through all tables For i = 0 To TableCount - 1 'Display the table name MsgBox db.TableDefs(i).Name Next 'Close the database db.Close End Sub '-----------------------------------
Pour obtenir l'équivalent avec ADO, tu as cette procédure :
Ajoute ces 2 références à ton projet : '"Microsoft ActiveX Data Objects 2.1 Library" '"Microsoft ADO Ext. 2.1 for DDL and Security "."
Sub ListTables() Dim cnn As New ADODB.Connection Dim cat As New ADOX.Catalog Dim tbl As ADOX.Table
cat.ActiveConnection = cnn For Each tbl In cat.Tables MsgBox Left$(tbl.Name, Len(tbl.Name) - 1) Next tbl
Set cat = Nothing cnn.Close Set cnn = Nothing End Sub '-------------------------------------------
Salutations!
"Christophe QUEVAL" a écrit dans le message de news: % Bonjour,
J'ai un classeur avec une liste de noms qui désignent un ensemble de plages de mes différentes sheets. Via Excel Automation, j'accède à ces noms et à leurs références depuis l'objet "ExcelApplication.Names". Après je peux récupérer le nom (propriété Name) et la référence (propriété RefersTo). Jusque là pas de problème.
Maintenant, l'automation Office côté serveur étant déconseillée par Microsoft, je voudrais faire "la même chose", mais en accédant à cette liste de noms via ADO.Net, mais je ne trouve aucune information à ce sujet.