problème pour résoudre un exercice en excel avec VBA
Hors ligneImeys Le 10/10/2005 à 18:16 Profil de Imeys Configuration de Imeys

bonjour, je dois réaliser l'exercice suivant:

dans le 1er colonne de la premiere feuille d'un nouveau classeur appelé "nom" lister les classeurs ouverts, dans la 2eme colonne et les suivante lister les feuilles de ces classeurs.

voici ce que j'ai fait:

Sub lister()
Dim classeur As Workbook
Dim txt As String
For Each classeur In Workbooks
txt = txt & classeur.Name
Next classeur
End Sub

Sub feuil()
Sheets.Add
Range("A1") = ActiveWorkbook.Name
Range("B1") = Sheets.Count & " feuilles"

End Sub

ici donc dans la cellule A1 il me met le nom du classeur ouvert et dans B1 le nombre de feuilles

le problème est que lorsque j'ai plusieur classeur ouvert, il ne me les mets pas. Il ne tien compte que celui ou je suis.
Comment puis je faire pour qu'il affiche les autre classeur ainsi que leurs feuilles

merci
Hors ligneLebabs Le 13/11/2005 à 12:29 Profil de Lebabs Configuration de Lebabs

Bonjour,
Mieux vaut tard que jamais.
Essaie donc ceci:

Sub lister()
Dim classeur As Workbook
Dim txt As String, a As Integer
a = 1
For Each classeur In Workbooks
txt = classeur.Name
Windows(txt).Activate
Workbooks("Classeur1").Worksheets("nom").Cells(0 + a, 1).Value = txt
Workbooks("Classeur1").Worksheets("nom").Cells(0 + a, 2).Value = Sheets.Count & " feuilles"
a = a + 1
Next classeur
Windows("Classeur1").Activate
Worksheets("nom").Activate
End Sub

A+
--
D'une étincelle peut jaillir la lumière.
Hors ligneImeys Le 13/11/2005 à 12:38 Profil de Imeys Configuration de Imeys

ben merci, je ne lavais pas fini donc je vais essayer ton code
Hors ligneLebabs Le 13/11/2005 à 14:18 Profil de Lebabs Configuration de Lebabs

Rebonjour,
tu peux également lister le détail des feuilles de chaque classeur ouvert en apportant les modifications suivantes:

Sub lister()
Dim classeur As Workbook, feuille As Worksheet
Dim txt As String, nom As String, a As Integer, b As Integer
a = 1
For Each classeur In Workbooks
txt = classeur.Name
Windows(txt).Activate
Workbooks("Classeur1").Worksheets("nom").Cells(0 + a, 1).Value = txt
b = 1
For Each feuille In Worksheets
nom = feuille.Name
Workbooks("Classeur1").Worksheets("nom").Cells(0 + a, 1 + b).Value = feuille.Name
b = b + 1
Next feuille
a = a + 1
Next classeur
Windows("Classeur1").Activate
Worksheets("nom").Activate
End Sub

Est-ce que ça correspond à ce que demandes ?
--
D'une étincelle peut jaillir la lumière.
Hors ligneImeys Le 14/11/2005 à 12:01 Profil de Imeys Configuration de Imeys

oui c ce que je voulais et ca fonctionne.
Merci bcp
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels