Nombre de MsgBox s'étant ouvertes
Résolu Yoyo01000 Messages postés 1639 Date d'inscription Statut Membre Dernière intervention -
Yoyo01000 Messages postés 1639 Date d'inscription Statut Membre Dernière intervention - 28 sept. 2020 à 14:17
Yoyo01000 Messages postés 1639 Date d'inscription Statut Membre Dernière intervention - 28 sept. 2020 à 14:17
A voir également:
- Nombre de MsgBox s'étant ouvertes
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Afficher toutes les fenetres ouvertes windows - Guide
- Forum Snapchat
4 réponses
Bonjour Yoyo
Tu peux dans les lignes de macros mettre un code après chaque instruction Msgbox pour incrémenter une variable et faire en fin de macro afficher cette variable dans une dernière Msgbox!
Cdlmnt
Via
Tu peux dans les lignes de macros mettre un code après chaque instruction Msgbox pour incrémenter une variable et faire en fin de macro afficher cette variable dans une dernière Msgbox!
Cdlmnt
Via
Bonjour via55 et merci pour ta réponse !
En fait, mon intérêt, est d'exécuter la suppression d'une feuille (crée par cette macro), si <2 MsgBox s'ouvre.
Je pensais pouvoir compter chaque ouverture de MsgBox ou alors avoir un compteur qui, en fin d'exécution de macro, me donne le nombre de MsgBox s'étant ouvertes.
Peut-être que ça n'est pas réalisable et je pense déjà à un contournement !
En fait, mon intérêt, est d'exécuter la suppression d'une feuille (crée par cette macro), si <2 MsgBox s'ouvre.
Je pensais pouvoir compter chaque ouverture de MsgBox ou alors avoir un compteur qui, en fin d'exécution de macro, me donne le nombre de MsgBox s'étant ouvertes.
Peut-être que ça n'est pas réalisable et je pense déjà à un contournement !
Re
Je ne comprends pas tout
Tu as une macro qui crée une feuille et si lors de l'exécution de la macro moins de Msgbox s'ouvrent tu voudrais supprimer la feuille ?
Tu peux parfaitement compter les ouvertures comme j'indiquais dans mon précédent post
Quel est le code de ta macro ?
Je ne comprends pas tout
Tu as une macro qui crée une feuille et si lors de l'exécution de la macro moins de Msgbox s'ouvrent tu voudrais supprimer la feuille ?
Tu peux parfaitement compter les ouvertures comme j'indiquais dans mon précédent post
Quel est le code de ta macro ?
Alors en fait, si certaines zones du formulaire ne sont pas remplies, une MsgBox s'ouvre pour prévenir.
Une fois celle-ci validée par OK, ça efface la feuille qui venait d'être crée.
Par contre, à partir de 2 zones non remplies, la feuille crée est supprimée par le 1er OK de la MsgBox et ensuite, le dernier onglet du classeur est aussi supprimé après le OK de la 2ème MsgBox et c'est là que ça ne va pas.
J'ai pensé à la solution d'obligation de saisir 1 par 1 les zones du formulaire, dans un ordre précis et si ça n'est pas fait, impossible de saisir la zone d'après (par exemple zone 1 non remplie = impossible de remplir la zone 2)
Voici mon code :
Le fichier : https://www.ct.com/c/JIzooAISQAR
Une fois celle-ci validée par OK, ça efface la feuille qui venait d'être crée.
Par contre, à partir de 2 zones non remplies, la feuille crée est supprimée par le 1er OK de la MsgBox et ensuite, le dernier onglet du classeur est aussi supprimé après le OK de la 2ème MsgBox et c'est là que ça ne va pas.
J'ai pensé à la solution d'obligation de saisir 1 par 1 les zones du formulaire, dans un ordre précis et si ça n'est pas fait, impossible de saisir la zone d'après (par exemple zone 1 non remplie = impossible de remplir la zone 2)
Voici mon code :
Private Sub CommandButton_Valider_Click() 'Générer une fiche avec son n° d'ID Dim feuille As String 'Nom de l'onglet feuille = Me.TextBox_N°I.Text & "-ST" & Me.ComboBox_ST.Value 'On met en marche la gestion des erreurs On Error Resume Next 'On active la feuille générée Sheets(feuille).Activate If Err > 1 Then ' la feuille n'existe pas on la crée Sheets.Add after:=Sheets(Sheets.count) ActiveSheet.Name = feuille 'Elle existe Else 'On la supprime Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True 'On en crée une nouvelle qui porte le nom choisi Sheets.Add after:=Sheets(Sheets.count) ActiveSheet.Name = feuille End If ' on arrête la gestion des erreurs On Error GoTo 0 'Affichage de la feuille "VIERGE" Sheets("VIERGE").Visible = True 'On copie une fiche vierge With Sheets("VIERGE").Select Cells.Select Application.CutCopyMode = False Selection.Copy 'Sélection du dernier onglet à droite Sheets(Sheets.count).Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste ActiveWindow.Zoom = 70 Range("A1").Select Application.CutCopyMode = False End With 'Insertion de l'auteur : If ComboBox_Noms_Prénoms.Value = "" Then MsgBox "Champ [Auteur] obligatoire", vbExclamation ComboBox_Noms_Prénoms.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("E4").Value = ComboBox_Noms_Prénoms.Value End If 'Insertion de la date : If TextBox_Date.Value = "" Then MsgBox "Champ [Date] au format 00/00/0000 obligatoire", vbExclamation TextBox_Date.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("P4").Value = TextBox_Date.Value End If 'Insertion du numéro d'ID Bottom Up If TextBox_N°I.Value = "" Then MsgBox "Champ [ID B-U] obligatoire", vbExclamation TextBox_N°I.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("W4").Value = TextBox_N°I.Value End If 'Insertion du n° de ST : If ComboBox_ST.Value = "" Then MsgBox "N° de la Small Team non renseigné", vbExclamation ComboBox_ST.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("Q6").Value = ComboBox_ST.Value End If 'Insertion de la déscription de l'I : If TextBox_Déscription_I.Value = "" Then MsgBox "Champ [Déscription de l'I] obligatoire", vbExclamation TextBox_Déscription_I.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("B8").Value = TextBox_Déscription_I.Value End If 'Insertion du résultat escompté : If OptionButton_Sécurité_Ergonomie = False And _ OptionButton_Coût = False And _ OptionButton_Qualité = False And _ OptionButton_Délai = False And _ OptionButton_Environnement = False And _ OptionButton_Propreté_Rangement = False Then MsgBox "Bouton du résultat escompté non coché", vbExclamation OptionButton_Sécurité_Ergonomie.BackColor = RGB(255, 97, 97) OptionButton_Coût.BackColor = RGB(255, 97, 97) OptionButton_Qualité.BackColor = RGB(255, 97, 97) OptionButton_Délai.BackColor = RGB(255, 97, 97) OptionButton_Environnement.BackColor = RGB(255, 97, 97) OptionButton_Propreté_Rangement.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else If OptionButton_Sécurité_Ergonomie = True Then Range("B18").Value = "Sécurité - Ergonomie" End If If OptionButton_Coût = True Then Range("B18").Value = "Coût" End If If OptionButton_Qualité = True Then Range("B18").Value = "Qualité" End If If OptionButton_Délai = True Then Range("B18").Value = "Délai" End If If OptionButton_Environnement = True Then Range("B18").Value = "Environnement" End If If OptionButton_Propreté_Rangement = True Then Range("B18").Value = "Propreté - Rangement" End If End If 'Insertion de la solution proposée If TextBox_Solution_Proposée <> "" Then Range("B21").Value = TextBox_Solution_Proposée.Value End If 'Insertion de la validation If CheckBox_OUI = True Then Range("G30").Value = "X" End If If CheckBox_NON = True Then Range("L30").Value = "X" End If If CheckBox_OUI = True And _ CheckBox_NON = True Then MsgBox "L'accord est soit OUI soit NON", vbExclamation End If If CheckBox_OUI = False And _ CheckBox_NON = False Then MsgBox "Champ [Accord] non renseigné", vbExclamation CheckBox_OUI.BackColor = RGB(255, 97, 97) CheckBox_NON.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else If CheckBox_NON = True And _ TextBox_NON_Pourquoi.Value = "" And _ CheckBox_OUI = False Then MsgBox "Merci de remplir le pourquoi du refus de l'I", vbExclamation TextBox_NON_Pourquoi.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End If End If If TextBox_NON_Pourquoi <> "" And _ CheckBox_OUI = True Then MsgBox "L'I est accordée, il n'y a donc pas de raison à son refus", vbExclamation Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("E31").Value = TextBox_NON_Pourquoi.Value End If 'Insertion de la date If ComboBox_day.Value = "" Then MsgBox "merci de remplir le jour de prise en compte de l'accord ou du refus", vbExclamation ComboBox_day.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("S29").Value = ComboBox_day.Value Range("X29").Value = TextBox_year End If If ComboBox_month.Value = "" Then MsgBox "merci de remplir le mois de prise en compte de l'accord ou du refus", vbExclamation ComboBox_month.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("V29").Value = ComboBox_month.Value Range("X29").Value = TextBox_year End If 'Insertion du calcul 1 If TextBox_Calcul_1.Value <> "" Then Range("H33").Value = TextBox_Calcul_1.Value End If 'insertion du calcul 2 If TextBox_Calcul_2.Value <> "" Then Range("K33").Value = TextBox_Calcul_2.Value End If 'Insertion du calcul 3 If TextBox_Calcul_3.Value <> "" Then Range("N33").Value = TextBox_Calcul_3.Value End If 'Insertion du résultat des 3 calculs : If TextBox_Calcul_1.Value = "" And _ TextBox_Calcul_2.Value = "" And _ TextBox_Calcul_3.Value = "" Then Exit Sub Else If TextBox_Calcul_1.Value <> "0" And _ TextBox_Calcul_2.Value <> "0" And _ TextBox_Calcul_3.Value <> "0" Then Range("Q33").Value = TextBox_Calcul_1.Value * _ TextBox_Calcul_2.Value * _ TextBox_Calcul_3.Value Else If TextBox_Calcul_1.Value = "0" And _ TextBox_Calcul_2.Value <> "0" And _ TextBox_Calcul_3.Value <> "0" Then Range("Q33").Value = TextBox_Calcul_2.Value * _ TextBox_Calcul_3.Value End If End If End If 'Masquer la feuille "VIERGE" Sheets("VIERGE").Visible = False 'Sélection de la dernière feuille de droite Sheets(Sheets.count).Select End Sub
Le fichier : https://www.ct.com/c/JIzooAISQAR