VBA Excel : récupérer le nom des feuilles

VBA Excel : récupérer le nom des feuilles - VB/VBA/VBS - Programmation

Marsh Posté le 20-12-2005 à 17:15:40    

Bonjour à tous !!
 
J'ai besoin de récupérer le nom des feuilles d'un classeur externe.
(la macro de classeur1.xls veut savoir les noms des différentes feuilles de classeur2.xls)
 
Comment faire ??
 
Grand merci d'avance !!
 
Joss

Reply

Marsh Posté le 20-12-2005 à 17:15:40   

Reply

Marsh Posté le 21-12-2005 à 14:20:47    

je sai pas si c'est vraiment ca ton besoin  
essaye ; Sheets(x).name //ou x est le numéro de ta feuille

Reply

Marsh Posté le 22-12-2005 à 09:54:52    

Salut DamienCYS,
 
Non, en fait j'ai besoin de savoir les noms des feuilles d'un classeur fermé. (l'existence du classeur a déjà été testé.)
En gros, il faut que je teste l'existence d'une feuille pour continuer mon programme.
 
Si le classeur 'enfouieqqpart.xls' contient une feuille appelée "Fappelée" alors...
 
J'espère que je suis un peu plus clair.
 
Merci !
 
Joss

Reply

Marsh Posté le 22-12-2005 à 11:37:29    

Je pense qu'il faut que tu ouvre ton classeur, je verrai ca de la manière suivante :
 
Workbook.Open Filename := "<Chemain d'accès de ton fichier>"
Windows("<nom de ton fichier>" ).Activate
for compteur% = 1 to 10  // pour 10 feuilles maxi a toi de voir
  if Sheets(compteur%).name = "<le nom que tu veu chercher>" then
     ..........
  end if
next

Reply

Marsh Posté le 23-12-2005 à 12:55:56    

Il a l'air de planter comme ça (où j'ai mal remplacer les chemins).
 
Par contre, j'ai trouvé une autre soluce un peu plus compliquée où il a fallut que je rajoute un ligne pour qu'il marche :
 

Code :
  1. Dim cn
  2. Dim cat
  3. Dim xlSheet As Variant
  4. Dim Fichier$
  5. 'Initialisation
  6. Set cn = CreateObject("ADODB.Connection" )
  7. Set cat = CreateObject("ADOX.Catalog" )
  8. Fichier = chemin & "\" & fileNom //prédéfini avant
  9. ClasseurVide = True
  10. 'Open the Connection
  11. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Fichier & ";Extended Properties=Excel 8.0;"
  12. 'Open the catalog
  13. Set cat.ActiveConnection = cn
  14. For Each xlSheet In cat.Tables
  15.     If xlSheet.Name = "'MaFeuille$'" Or xlSheet.Name = "MaFeuille$" Then
  16.         ClasseurVide = False
  17.     End If
  18.     'MsgBox xlSheet.Name
  19. Next
  20. 'Nettoyage
  21. cn.Close //sans ça, ça plantait
  22. Set cn = Nothing: Set cat = Nothing


 
C'est pas top top, étant donné que ça ne récupère pas QUE les feuilles, mais ça m'a permis d'avancer.
 
Merci quand même pour ton aide !!
 
Joss

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed