OVH Cloud OVH Cloud

Est ce possible ?

5 réponses
Avatar
JCM
Bonjour a tous

je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur Excell
Est-ce possible, si oui un bout de code serait le bien venu

merci pour vos reponses
Cordialement
JCM

5 réponses

Avatar
YannX
Cf FAQ : par exemple http://www.excelabo.net/xl/feuilles.php
Dim Feuille As Worksheet
For Each Feuille In Worksheets
....
Next Feuille

@+



"JCM" a écrit dans le message de
news:
Bonjour a tous

je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur


Excell
Est-ce possible, si oui un bout de code serait le bien venu

merci pour vos reponses
Cordialement
JCM


Avatar
Hervé
Salut JCM,
Teste ceci mais auparavant, coche la référence à Excel :
Private Sub Form_Click()
Dim AppExcel As Excel.Application
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim Chemin As String

Chemin = "D:Mon classeur.xls"

Set AppExcel = Excel.Application
'si tu ne veux pas voir le
'classeur sinon, True
AppExcel.Visible = False

'ouvre le classeur
Set Classeur = Workbooks.Open(Chemin)

'passe en revue
For Each Feuille In Classeur.Worksheets
Debug.Print Feuille.Name
Next Feuille

'ferme le classeur sans enregistrer
Classeur.Close False

'ferme Excel
AppExcel.Quit

Set Feuille = Nothing
Set Classeur = Nothing
Set AppExcel = Nothing
End Sub

Hervé.

"JCM" a écrit dans le message news:

Bonjour a tous

je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur


Excell
Est-ce possible, si oui un bout de code serait le bien venu

merci pour vos reponses
Cordialement
JCM


Avatar
Pat Dev VB
Vous pouvez sans problème lister les feuilles d'un classeur excel sous vb6
Voici en gros ce que ça donne :

Une fois que vous avez fait référence à votre classeur dans vb via un objet
Workbook,"Workbook.Worksheets.count" vous raménera le nombre de feuilles.

N'hésitez pas à me contacter en cas de souci.



"JCM" a écrit :

Bonjour a tous

je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur Excell
Est-ce possible, si oui un bout de code serait le bien venu

merci pour vos reponses
Cordialement
JCM


Avatar
JCM
Bonjour à tous

Merci à YannX, Hervé et Pat Dev VB pour vos réponses.
Une absence prolongée ne m'a pas permis de tester, si j'ai un problème je
reviendrai vers vous
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%23FdZEE$
Salut JCM,
Teste ceci mais auparavant, coche la référence à Excel :
Private Sub Form_Click()
Dim AppExcel As Excel.Application
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim Chemin As String

Chemin = "D:Mon classeur.xls"

Set AppExcel = Excel.Application
'si tu ne veux pas voir le
'classeur sinon, True
AppExcel.Visible = False

'ouvre le classeur
Set Classeur = Workbooks.Open(Chemin)

'passe en revue
For Each Feuille In Classeur.Worksheets
Debug.Print Feuille.Name
Next Feuille

'ferme le classeur sans enregistrer
Classeur.Close False

'ferme Excel
AppExcel.Quit

Set Feuille = Nothing
Set Classeur = Nothing
Set AppExcel = Nothing
End Sub

Hervé.

"JCM" a écrit dans le message news:

> Bonjour a tous
>
> je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur
Excell
> Est-ce possible, si oui un bout de code serait le bien venu
>
> merci pour vos reponses
> Cordialement
> JCM




Avatar
JCM
Re-bonjour

J'ai testé ton code dans mon appli, pour afficher les pages du classeur dans
un Combo, pas de problème cela fonctionne.
Toutfois, dans le combo.click je veux afficher les données de la feuille
dans un MSFlexgrid et là j'ai un beug : la feuille est introuvable, voici
mon code :

le chemin est donné par : strFileNameExcel = CmdLgMain.fileName

ensuite :

Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing

Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell, ADOcnExcel)

'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
MSExcell.col = 1
MSExcell.Text = ADOrstExcell("DEP")
MSExcell.col = 2
MSExcell.Text = ADOrstExcell("AR")
MSExcell.col = 3
MSExcell.Text = ADOrstExcell("CTN")
MSExcell.col = 4
MSExcell.Text = ADOrstExcell("VILLE")
MSExcell.col = 5
MSExcell.Text = ADOrstExcell("HAB90")
ADOrstExcell.MoveNext
Loop
End Sub

Vois-tu ou est l'erreur
Cordialement
JCM
"Hervé" a écrit dans le message de
news:%23FdZEE$
Salut JCM,
Teste ceci mais auparavant, coche la référence à Excel :
Private Sub Form_Click()
Dim AppExcel As Excel.Application
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim Chemin As String

Chemin = "D:Mon classeur.xls"

Set AppExcel = Excel.Application
'si tu ne veux pas voir le
'classeur sinon, True
AppExcel.Visible = False

'ouvre le classeur
Set Classeur = Workbooks.Open(Chemin)

'passe en revue
For Each Feuille In Classeur.Worksheets
Debug.Print Feuille.Name
Next Feuille

'ferme le classeur sans enregistrer
Classeur.Close False

'ferme Excel
AppExcel.Quit

Set Feuille = Nothing
Set Classeur = Nothing
Set AppExcel = Nothing
End Sub

Hervé.

"JCM" a écrit dans le message news:

> Bonjour a tous
>
> je voudrais a partir d'une appli VB6, lister les feuilles d'un classeur
Excell
> Est-ce possible, si oui un bout de code serait le bien venu
>
> merci pour vos reponses
> Cordialement
> JCM