• Initiateur de la discussion Initiateur de la discussion jpm2169
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jpm2169

Guest
pourquoi cet exemple ne fonctionne pas, je l'ai pris dans un exemple sur l'aide d'excel :

sub way ()
Set NewSheet = Sheets.Add(Type:=xlWorksheet)
For i = 1 To Sheets.Count
NewSheet.Cells(i, 1).Value = Sheets(i).Name
Next i

end sub
 
Bonsoir Jpm2169


qu'est-ce qui ne fonctionne pas dans cette procédure ?

une nouvelle feuille est créée et le nom des feuilles composant le classeur sont inscrits dans la colonne A.

Quel autre comportement attendez-vous ?
 
Bonsoir

il me semble qu'il faudrait sélectionner la feuille avant de l'utiliser
Ajouter une feuille ne l'active pas forcément

sub way ()
Set NewSheet = Sheets.Add(Type:=xlWorksheet)
NewSheet.Select
For i = 1 To Sheets.Count
NewSheet.Cells(i, 1).Value = Sheets(i).Name
Next i

end sub
 
bonsoir à vous deux

Quand je lance la macro, il me met dans une petite fenêtre :
'erreur de compilation, variable non définie'

et dans la fenêtre du module où l'on inscrit le code, il me surligne : 'Set NewSheet ='

J'en ai marre d'excel
 
Bonjour jpm, didier, jacques, tata et tonton

en début de macro, ajoute ta déclaration de variable : dim newsheet as worksheet

tu dois travailler en option explicit ce qui t'oblige à déclarer tes variables. (c'est tres bien de travailler comme ca, n'est-ce pas Ti :whistle: )

salut
 
Chaque fois que tu utilises une variable (une lettre ou un mot qui représente une donnée qui peut varier) tu doid la définir en début de procédure pour que dans le code qui suit VB sache quel type lui attribuer

NewSheet est une nouvelle feuille donc
Dim NewSheet As Integer
indique que chaque fois qu'on rencontrera la variable NewSheet on saura qu'on est en présence d'une feuille

I est un nombre, donc il faut signaler que lorsqu'on rencontrera I il faudra considérer cette variable comme numérique, d'où (ici)
Dim I As Integer

il y a de nombreux types de variables, à toi de les découvrir un peu à la fois

donc ton code devient

Sub way()

Dim I as Integer
Dim NewSheet As WorkSheet

et la suite
 
jpm2169 écrit:
Pourquoi ça m'écrit ça sur les 4ères lignes de la colonne A ?

a1 = 'Feuil4'
a2 = 'accueil'
a3 = 'Feuil2'
a4 = 'Feuil3'
mais c'est ce que tu as demandé de faire grace au code suivant

For i = 1 To Sheets.Count
NewSheet.Cells(i, 1).Value = Sheets(i).Name
Next i

cell(1,1) contiendra le nom de la feuille 1
cell(2,1) contiendra le nom de la feuille 2
etc ... jusqu'à ce qu'il n'y ait plus de feuilles
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
145
Réponses
5
Affichages
910
Réponses
15
Affichages
784
Réponses
10
Affichages
661
Réponses
5
Affichages
573
Retour