créer une feuille

jpm2169

XLDnaute Junior
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
 

dg62

XLDnaute Barbatruc
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 ?
 

Jacques87

XLDnaute Accro
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
 

jpm2169

XLDnaute Junior
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
 

Hervé

XLDnaute Barbatruc
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
 

Jacques87

XLDnaute Accro
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
 

Jacques87

XLDnaute Accro
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
 

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 321
Membres
103 515
dernier inscrit
Cherbil12345