Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RE: Problème avec nouvelle Feuil

1 réponse
Avatar
Bonjour,

On m'a vraiment bien aid=E9 tout a l'heure en me disant=20
comment cr=E9er onglets avec nom + num=E9ro automatique et en=20
prenant sur un mo=E8le!

Merci!

Cependant, quand je cr=E9=E9 une nouvelle feuille=20
(appel=E9e "av" + num=E9ro), il me cr=E9e donc ma feuille=20
personnalis=E9e gr=E2ce =E0 la macro, mais il me cr=E9e=20
aussi "Feuil" + num=E9ro. J'ai s=FBrement fait une fausse=20
manip dans le code! qqn pourrait-il m'aider sur ce point?

Voici le code:


Private Sub Workbook_NewSheet(ByVal Sh As Object)

Application.ScreenUpdating =3D False

tampon =3D 0
=20
Sheets("Mod=E8le").Copy After:=3DSheets(Sheets.Count)
Set wsarenommer =3D ActiveSheet
For I =3D 1 To Sheets.Count
If Left(Sheets(I).Name, 2) =3D "av" Then
av =3D Sheets(I).Name
If IsNumeric(Right(av, Len(av) - 2)) Then
tampon =3D Right(av, Len(av) - 2)
End If
End If
Next
=20
If tampon =3D 0 Then
wsarenommer.Name =3D "av 1"
Else
wsarenommer.Name =3D "av " & tampon + 1
End If
=20
Application.ScreenUpdating =3D True
End Sub


Merci d'avance

1 réponse

Avatar
anomymousA
re,

reste sur le même fil. c'est + facile à suivre.

Pour ta question et puisque j'ai répondu à la 1ere je continue.

C'est normal puisque tu as inclus mon code dasn une procédure evenementielle
NewSheet. En conséquence , VBA juste avant de créer la feuille que tu as
demandé par "Insertion nouvelle feuille", déclenche le code dans lequel on
lui demande aussi de créer une nouvelle feuille.

VBA exécute à la perfection ce pourquoi il est fait.

2 solutions:
soit tu n'utilises pas la proécdure evenementielle pour faire ce que je
t'indique dasn le code et tu mets le code dans uin module standard et tu
l'appelles tel quel

soit tu laisses ta procédure evenenmentielle et tu modifies le code comme suit
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

Sh.Delete

tampon = 0

Sheets("Modele").Copy After:=Sheets(Sheets.Count)
Set wsarenommer = ActiveSheet
For I = 1 To Sheets.Count
If Left(Sheets(I).Name, 2) = "AV" Then
tata = Sheets(I).Name
If IsNumeric(Right(tata, Len(tata) - 2)) Then
tampon = Right(tata, Len(tata) - 2)
End If
End If
Next

If tampon = 0 Then
wsarenommer.Name = "AV1"
Else
wsarenommer.Name = "AV" & tampon + 1
End If

With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With



Bonjour,

On m'a vraiment bien aidé tout a l'heure en me disant
comment créer onglets avec nom + numéro automatique et en
prenant sur un moèle!

Merci!

Cependant, quand je créé une nouvelle feuille
(appelée "av" + numéro), il me crée donc ma feuille
personnalisée grâce à la macro, mais il me crée
aussi "Feuil" + numéro. J'ai sûrement fait une fausse
manip dans le code! qqn pourrait-il m'aider sur ce point?

Voici le code:


Private Sub Workbook_NewSheet(ByVal Sh As Object)

Application.ScreenUpdating = False

tampon = 0

Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
Set wsarenommer = ActiveSheet
For I = 1 To Sheets.Count
If Left(Sheets(I).Name, 2) = "av" Then
av = Sheets(I).Name
If IsNumeric(Right(av, Len(av) - 2)) Then
tampon = Right(av, Len(av) - 2)
End If
End If
Next

If tampon = 0 Then
wsarenommer.Name = "av 1"
Else
wsarenommer.Name = "av " & tampon + 1
End If

Application.ScreenUpdating = True
End Sub


Merci d'avance