Rechercher : dans
Par :

Gestion des feuilles d'un classeur en vba

Dernière réponse le 1 jui 2008 à 09:35:21 Charlii, le 30 jun 2008 à 17:23:54 
 Signaler ce message aux modérateurs

Bonjour,
Je suis en train d'apprendre à utiliser le langage VBA sous excel, et mon problème est le suivant:
lorsque je créé une nouvelle feuille à un classeur, en faisant
Sheets.Add After:=Sheets(Sheets.Count)
je n'arrive pas à trouver la bonne référence de la feuille créés; en effet, la nouvelle feuille porte un numéro dépendant du nombre de feuille ayant été créées dans le classeur depuis sa création(même celles supprimées depuis), et non du nombre de feuilles restantes(Sheets.count).
Si quelqu'un pouvait m'aider ca serait vraiment sympa, je galère depuis un petit moment maintenant!!
Merci beaucoup

Configuration: Windows Vista
Firefox 3.0

Meilleures réponses pour « Gestion des feuilles d'un classeur en vba » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
[VBA] Collections de classes et collections d’objets VoirCette démo emploi, comme le titre l’indique, des collections différentes. Elle ne comporte que deux séries de cinq contrôles mais peut en gérer beaucoup plus avec le même nombre de lignes de code. Introduction Les contrôles sur une feuille de...

1

BlueMind, le 30 jun 2008 à 17:27:29

Salut,

Je n'ai pas de moyen de tester immédiatement mais pour moi il faut utiliser sheet.count() pour récupérer le nombre et ensuite travailler sur le sheet lui-même:

i = sheet.count()

et ensuite qqc du genre name = sheet[i].name

Vise toujours la lune, dans le pire des cas tu atteindras le­s étoiles ;-)

Répondre à BlueMind

2

Charlii, le 30 jun 2008 à 18:16:42

Ca ne marche pas vraiment, j'ai essayé différentes méthodes mais pour l'instant rien n'y fait...
Quand j'utilise la tienne il me dit qu'il y a une erreur de compilation:
i = Sheets.Count
Sheet [i].Select
Sheet [i].Name = NAME

Es tu sur que Sheet[] est autorisé?

Répondre à Charlii

3

Lupin.A, le 30 jun 2008 à 19:02:56

Bonjour,

Exemple type :

Option Explicit

Sub TravailFeuille()

    Dim Feuille As Worksheet
    Dim NomFle As String
    
    NomFle = "Test"
    
    Worksheets.Add.Name = NomFle
    Sheets(NomFle).Move After:=Sheets(Worksheets.Count)
    
    For Each Feuille In Worksheets
        MsgBox Feuille.Name
    Next Feuille
    
End Sub
'

Lupin

Répondre à Lupin.A

4

 Charlii, le 1 jui 2008 à 09:35:21

Merci beaucoup!!

Répondre à Charlii