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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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