OVH Cloud OVH Cloud

incrémenter un nom de feuille

3 réponses
Avatar
Goutedo
bonjour =E0 tous,

je suis un peu perdu, qqn saura-t-il m'aider?

voici mon souci,

dans un classeur il y a plusieurs feuilles nomm=E9es SEM 1,=20
SEM 2, SEM 3... et une nomm=E9e semaine courante. Dans cette=20
derni=E8re il y a un bouton qui devrait normalement=20
permettre de cr=E9er une nouvelle feuille appel=E9e "SEM + (le=20
plus grand nombre +1)".

J'arrive bien =E0 cr=E9er une nouvelle feuille, mais comment=20
faire pour r=E9cup=E9rer le nom de la feuille qui a le plus=20
grand nombre.

Merci pour votre aide
Goutedo


PS: Voici mon bout de code pour ceux qui voudrait m'aider:

Sub Ajout()
Dim cpt As Integer
cpt =3D 1
Do While cpt < 2 ' Ajoute 1 feuille
' Ajout d'une feuille
Application.Sheets.Add After:=3DSheets.Item(Sheets.Count),=20
Type:=3DxlWorksheet
' Renomme la feuille
Application.ActiveSheet.Name =3D "SEM " & CStr(cpt)
cpt =3D cpt + 1
Loop
End Sub

3 réponses

Avatar
isabelle
bonjour Goutedo,

voici un exemple,

Sub Macro1()
Dim v()
For Each f In Sheets
x = f.Name
ReDim Preserve v(f.Index)
On Error Resume Next
v(f.Index) = Val(Right(x, Len(x) - Application.Find(" ", x)))
Next
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Sem " & Application.Max(v()) + 1
End Sub

isabelle


bonjour à tous,

je suis un peu perdu, qqn saura-t-il m'aider?

voici mon souci,

dans un classeur il y a plusieurs feuilles nommées SEM 1,
SEM 2, SEM 3... et une nommée semaine courante. Dans cette
dernière il y a un bouton qui devrait normalement
permettre de créer une nouvelle feuille appelée "SEM + (le
plus grand nombre +1)".

J'arrive bien à créer une nouvelle feuille, mais comment
faire pour récupérer le nom de la feuille qui a le plus
grand nombre.

Merci pour votre aide
Goutedo

PS: Voici mon bout de code pour ceux qui voudrait m'aider:

Sub Ajout()
Dim cpt As Integer
cpt = 1
Do While cpt < 2 ' Ajoute 1 feuille
' Ajout d'une feuille
Application.Sheets.Add After:=Sheets.Item(Sheets.Count),
Type:=xlWorksheet
' Renomme la feuille
Application.ActiveSheet.Name = "SEM " & CStr(cpt)
cpt = cpt + 1
Loop
End Sub


Avatar
isabelle
re bonjour Goutedo,

j'oubliais, j'ai pris en compte qu'il y avait toujours un espace dans
les nom des onglets. c'est en trouvant cette espace que j'ai séparé le
chiffre du texte.
si le texte est toujours les même 4 lettres "Sem " on pourrait
simplifier la formule,
v(f.Index) = Val(Right(x, Len(x) - 4))

isabelle


bonjour Goutedo,

voici un exemple,

Sub Macro1()
Dim v()
For Each f In Sheets
x = f.Name
ReDim Preserve v(f.Index)
On Error Resume Next
v(f.Index) = Val(Right(x, Len(x) - Application.Find(" ", x)))
Next
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Sem " & Application.Max(v()) + 1
End Sub

isabelle


bonjour à tous,

je suis un peu perdu, qqn saura-t-il m'aider?

voici mon souci,

dans un classeur il y a plusieurs feuilles nommées SEM 1,
SEM 2, SEM 3... et une nommée semaine courante. Dans cette
dernière il y a un bouton qui devrait normalement
permettre de créer une nouvelle feuille appelée "SEM + (le
plus grand nombre +1)".

J'arrive bien à créer une nouvelle feuille, mais comment
faire pour récupérer le nom de la feuille qui a le plus
grand nombre.

Merci pour votre aide
Goutedo

PS: Voici mon bout de code pour ceux qui voudrait m'aider:

Sub Ajout()
Dim cpt As Integer
cpt = 1
Do While cpt < 2 ' Ajoute 1 feuille
' Ajout d'une feuille
Application.Sheets.Add After:=Sheets.Item(Sheets.Count),
Type:=xlWorksheet
' Renomme la feuille
Application.ActiveSheet.Name = "SEM " & CStr(cpt)
cpt = cpt + 1
Loop
End Sub




Avatar
Goutedo
Je me rappelerais de cette solution au cas où. Mais la
réponse dans l'autre post me convient mieux par sa
légereté.

Dans tous les cas, Mille merci pour votre aide.

Goutedo