Nombre de MsgBox s'étant ouvertes
Résolu/Fermé
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
-
25 sept. 2020 à 12:40
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 28 sept. 2020 à 14:17
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 28 sept. 2020 à 14:17
A voir également:
- Nombre de MsgBox s'étant ouvertes
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Nombre de combinaison possible avec 4 chiffres - Forum Programmation
- Nombre de secteurs réalloués - Forum Matériel & Système
- Dans ce fichier, réalisez le graphique xy (nuage de points ou dispersion), avec les x en abscisse. dans le graphique, les points dessinent un nombre. lequel ? - Forum Bureautique
4 réponses
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
25 sept. 2020 à 13:03
25 sept. 2020 à 13:03
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
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
167
25 sept. 2020 à 13:22
25 sept. 2020 à 13:22
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 !
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
25 sept. 2020 à 13:43
25 sept. 2020 à 13:43
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 ?
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
167
25 sept. 2020 à 16:14
25 sept. 2020 à 16:14
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.cjoint.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°ICP.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°ICP.Value = "" Then MsgBox "Champ [ID B-U] obligatoire", vbExclamation TextBox_N°ICP.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("W4").Value = TextBox_N°ICP.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'ICP : If TextBox_Déscription_ICP.Value = "" Then MsgBox "Champ [Déscription de l'ICP] obligatoire", vbExclamation TextBox_Déscription_ICP.BackColor = RGB(255, 97, 97) Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Else Range("B8").Value = TextBox_Déscription_ICP.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'ICP", 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'ICP 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.cjoint.com/c/JIzooAISQAR
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
25 sept. 2020 à 16:50
25 sept. 2020 à 16:50
Oui ta solution de saisir un par un les zones du formulaires est sans doute meilleure
Tu peux aussi passer par un userform dans lequel les zones suivantes à saisir sont masquées tant que la précédente n'est pas complète
Tu peux aussi passer par un userform dans lequel les zones suivantes à saisir sont masquées tant que la précédente n'est pas complète
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
167
28 sept. 2020 à 14:17
28 sept. 2020 à 14:17
Merci via55, je vais me pencher sur cette solution ;-)