Créer nouvelle feuilles dont leur nom serai la valeur de cellule

Résolu/Fermé
OlivGFT Messages postés 22 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 28 février 2014 - 26 janv. 2014 à 14:09
OlivGFT Messages postés 22 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 28 février 2014 - 26 janv. 2014 à 16:38
Bonjour,


Le but de ma macro est de créer des nouvelles feuilles excel dont le nom serrai issu d'une liste de cellule ( organisé en colone). Cette liste est un nombre qui varie.
Le nom de la feuille serai la valeur de la cellule. ( donc si j'ai 25 cellule de A2 à A25 J'aurai 25 nouvelle feuille avec ma 1er feuille qui aurai pour nom la valeur de A2 ma deuxieme feuille qui aurai pour nom la valeur A3..)


Pour cela j'ai une feuille qui s'appelle « périmettre » qui contient 1 colonne avec A1 l'entete de la colone et sur le reste le code de mes entreprises.

Je dois compter le nombre de cellule qu'il y a moins 1 ( car c'est l'entete de la colonne) pour déterminer le nombre de ma variable « Nombres_entreprise »

Ensuite je cherche à crée pour chaque code entreprise une nouvelle feuille avec pour nom le code de chaque entreprise.

Bref voici mon code qui bug completement.
Pouvez vous jetter un coup d'oeil et m'expliquer les différents pbs ( je débute en vba et je souhaite vraiment gagner en niveau...)



Sub Test_création_de_feuilles()
'

Dim nbentreprise As Currency
Dim nvfeuille As Worksheet
Dim i As Currency
Sheets("Perimettre").Select
Range("B1").Select
'selectionne la cellule B1 dans la feuille périmettre

ActiveCell.FormulaR1C1 = "=COUNTA(C[-1])"
' Compte le nombre de cellule non vide dans la colonne A
'( je ne comprend pas d'ailleur car ce n'est pas indiqué la colonne A mais juste le déclage par rapport à B)

nbentreprise = Range("B1").Value -1
' Ma variable possede la valeur du nombre de cellule nom vide de A

i = 0
For i = 0 To nbentreprise
' Crée une boucle qui se repete jusqu'a mon nombre d'entreprise

Set nvfeuille = Sheets.Add(After:=Sheets(Sheets.Count))
' Création d'une nouvelle feuille ???

Sheets("Perimettre").Select
nvfeuille.Name = Range("A2" + i).Value
i = i + 1
Next i

End Sub

Merci d'avance pour toutes remarques et explications !
A voir également:

1 réponse

f894009 Messages postés 17190 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 mai 2024 1 707
26 janv. 2014 à 14:42
Bonjour,

une facon de faire:

Sub Test_création_de_feuilles()
Dim cel As Range

With Worksheets("Perimettre")
'derniere cellule non vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
'mise en memoire plage cellules
Set plage = .Range("A2:A" & derlig)
End With
'boucle balayage plage
For Each cel In plage
' Création d'une nouvelle feuille
Sheets.Add After:=Sheets(Sheets.Count)
'nom feuille
ActiveSheet.Name = cel.Value
Next cel
End Sub
0
OlivGFT Messages postés 22 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 28 février 2014
26 janv. 2014 à 16:38
Merci beaucoup ! car cela fonctionne et j'ai la description des lignes.

Perso j'ai besoin de déclarer mes variables alors je rajouterai juste cela
Dim plage As Range
Dim derlig As Currency

Merci !
0