Message erreur si nom de feuille identique

  • Initiateur de la discussion Initiateur de la discussion SUM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SUM

XLDnaute Occasionnel
Bonjour le forum,

Petite question concernant l'activation des messages d'avertissement. J'ai un petit bout de macro qui créé des pages en les renommant automatiquement en fonction de la date du jour. Admettons que je relance la macro le même jour, Excel va me renvoyé un message d'avertissement que la feuille dans le classeur existe déjà. Mais je voudrais remplacer ce message par défault par un plus personnalisé

Merci pour votre aide

Bon dimanche
 

Pièces jointes

Re : Message erreur si nom de feuille identique

Bonjour Sum 🙂,
Comme ceci peut-être 😉 :
Code:
Sub Feuil2_Bouton1_Cliquer()
Sheets.Add
ActiveSheet.Select
On Error GoTo GestionErreur
ActiveSheet.Name = Date
On Error GoTo 0
Exit Sub
GestionErreur:
Dim MessageCritique
MessageCritique = MsgBox("Tu t'es planté", "1", "message critique")
End Sub
Bon dimanche 😎
 
Re : Message erreur si nom de feuille identique

Rebonjour,

Merci beaucoup ! Exactement ce que j'imaginais. Par contre, peut-on encore aller plus loin en empêchant la création de la feuille ? Car le message apparaît bien, mais une feuille, sans être renommée, est créée à chaque exécution de la macro

Merci pour votre aide
 
Re : Message erreur si nom de feuille identique

Rebonjour,

en fait oui. La macro lorsque elle est exécutée chaque jour créé une feuille dans un classeur en la renommant avec la date du jour. La situation est ok dans ce cas de figure.
Par contre, si la macro est exécutée une deuxième fois dans la même journée le message apparaît grâce au code de JPN mais une feuille est quand même créé sans être toutefois renommée avec la date du jour. Et c'est justement cela que voudrait empêcher
En fait:

1.- J'exécute la macro --> création de la feuille --> nommée date jour --> ok
2.- J'exécute même jour la macro par erreur --> Message (code JPN) --> exit sub --> pas de création de feuille car déjà fait en 1

Merci

Bonne journée
 
Re : Message erreur si nom de feuille identique

Bonjour,

J'ai complété le code de JNP par deux lignes pour obtenir le résultat attendu

Application.DisplayAlerts = False
ActiveSheet.Delete

Mais cela me semble un peu grossier comme programmation. N'y aurait-il une meilleures solution?




Sub Feuil2_Bouton1_Cliquer()
Sheets.Add
ActiveSheet.Select
On Error GoTo GestionErreur
ActiveSheet.Name = Date
On Error GoTo 0
Exit Sub
GestionErreur:
Dim MessageCritique
Application.DisplayAlerts = False
ActiveSheet.Delete
MessageCritique = MsgBox("Tu t'es planté", "1", "message critique")
End Sub
 
Re : Message erreur si nom de feuille identique

Entendons-nous bien... Il s'agit de mes deux lignes de code que j'ai rajoutées qui j'estime être grossières et non pas le code de JNP qui fonctionne parfaitement 🙂

Bon dimanche
 
Re : Message erreur si nom de feuille identique

Bonjour à tous


Une autre approche
Faire en sorte que la macro s'exécute une fois et une seule

Code:
Sub a()
Static UFEUS As Boolean
If UFEUS Then Exit Sub 
UFEUS = True
msgbox "Premier et dernier message!"
End Sub


Teste cette macro
Puis relance là, tu verras que la MsgBox ne s'affichera qu'une fois

PS: pour infos, voici la première macro VBA que j'arrive à faire fonctionner sous OOO 😉
 
Re : Message erreur si nom de feuille identique

Bonjour

Une idée

Code:
Sub Feuil2_Bouton1_Cliquer()
  On Error Resume Next
  Sheets(Replace(CStr(Date), "/", "-")).Select
  If Err > 0 Then
    Sheets.Add
    ActiveSheet.Name = Replace(CStr(Date), "/", "-")
  Else
    MsgBox "Feuille déjà crée"
  End If
  On Error GoTo 0
End Sub
 
Re : Message erreur si nom de feuille identique

Re 🙂,
Comme ceci peut-être 😉
Code:
Sub Feuil2_Bouton1_Cliquer()
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name = Format(Date, "dd.mm.yyyy") Then
MsgBox "Tu t'es planté", "1", "message critique"
Exit Sub
End If
Next
Sheets.Add
ActiveSheet.Name = Format(Date, "dd.mm.yyyy")
End Sub
Bon dimanche 😎
 
Re : Message erreur si nom de feuille identique

Bonjour Staple1600

Je me suis basé sur les deux dernières solutions. Je n'ai pas bien compris votre approche et je n'ai pas réussi à imbriquer cette macro dans la mienne. Il me faudrait plus de précision. (A l'occasion si vous avez du temps?)

Bon dimanche
 
Re : Message erreur si nom de feuille identique

Re

En partant de ta problématique
1.- J'exécute la macro --> création de la feuille --> nommée date jour --> ok
2.- J'exécute même jour la macro par erreur --> Message (code JPN) --> exit sub --> pas de création de feuille car déjà fait en 1
Voici mon raisonnement:
Cela se résume à exécuter ta macro une fois et une seule fois par jour

Donc si tu testes la macro exemple de mon post de 13h16
1) 1ère exécution ->ok la macro fait ce qu'elle à faire
(ici dans l'exemple afficher une Msgbox)
2) ensuite toute tentative de réexécution de cette macro se soldera par
un Exit Sub

Donc si on adapte mon code à ta problématique
1) 1ère exécution -> la feuille est crée
2) ensuite il ne se passera plus rien (et pas besoin de msgbox ou de gestion d'erreur), tu pourras exécuter la macro autant de fois que tu voudras, la macro
ne fera plus rien

Reste à voir comment elle se comportera le lendemain ...

D'où mes appels du pied à JNP et Banzai64 😉
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
799
M
  • Question Question
Réponses
5
Affichages
2 K
F
Réponses
0
Affichages
3 K
frederique delavaud
F
E
Réponses
6
Affichages
2 K
Esfloria
E
O
Réponses
4
Affichages
2 K
Olic78124
O
Retour