MsgBox n'apparaissant qu'une seule fois
Résolu
FlorianR
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens de créer un fichier générique de gestion de restaurant.
J'ai installé sur la page d'accueil un bouton exécutant une macro permettant de créer l'arborescence nécessaire à l'utilisation du fichier.
J'ai mis en place une MsgBox à l'ouvertrue du fichier donnant les informations des actions à effectuer à la première utilisation du fichier (à savoir l'installation de l'arborescence).
J'aimerai que ce message apparaisse à l'ouverture jusqu'à exécution de la macro installant l'arborescence, mais ne s'ouvre plus aux ouvertures suivantes si l'arborescence a été créée.
Est-ce quelque chose d'envisageable selon vous? Si oui, avez-vous une idée du code à intégrer pour que cela devienne réel? :)
Merci d'avance pour votre aide
Je viens de créer un fichier générique de gestion de restaurant.
J'ai installé sur la page d'accueil un bouton exécutant une macro permettant de créer l'arborescence nécessaire à l'utilisation du fichier.
J'ai mis en place une MsgBox à l'ouvertrue du fichier donnant les informations des actions à effectuer à la première utilisation du fichier (à savoir l'installation de l'arborescence).
J'aimerai que ce message apparaisse à l'ouverture jusqu'à exécution de la macro installant l'arborescence, mais ne s'ouvre plus aux ouvertures suivantes si l'arborescence a été créée.
Est-ce quelque chose d'envisageable selon vous? Si oui, avez-vous une idée du code à intégrer pour que cela devienne réel? :)
Merci d'avance pour votre aide
Configuration: Windows / Chrome 86.0.4240.198
A voir également:
- MsgBox n'apparaissant qu'une seule fois
- Comment imprimer un tableau excel sur une seule page - Guide
- Mettre une seule page en paysage word - Guide
- Application se ferme toute seule android - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Paiement 4 fois cdiscount impossible ✓ - Forum Consommation & Internet
4 réponses
Bonjour à tous,
à l'ouverture suivante il me rouvre la MsgBox pour créer l'arborescence...
C'est normal, la variable a été réinitialisée. Il aurait fallu stocker le résultat dans un nom qui est enregistré avec le classeur.
Au plus simple je ferai, dans ThisWorkbook :
je t'ai mis un mini contrôle. Pour moi c'est anormal s'il y a autre chose que 0 ou 6 créations. Ca ne devrait pas arriver.
A toi de voir si tu juges utile de le garder et voir quelles actions faire si ça arrive.
eric
à l'ouverture suivante il me rouvre la MsgBox pour créer l'arborescence...
C'est normal, la variable a été réinitialisée. Il aurait fallu stocker le résultat dans un nom qui est enregistré avec le classeur.
Au plus simple je ferai, dans ThisWorkbook :
Private Sub Workbook_Open() Dim nb As Long If Dir("C:\GestionResto\", vbDirectory) = "" Then MkDir ("C:\GestionResto\"): nb = nb + 1 If Dir("C:\GestionResto\Planning Salle", vbDirectory) = "" Then MkDir ("C:\GestionResto\Planning Salle"): nb = nb + 1 If Dir("C:\GestionResto\Planning Cuisine", vbDirectory) = "" Then MkDir ("C:\GestionResto\Planning Cuisine"): nb = nb + 1 If Dir("C:\GestionResto\Fiche de Renseignements", vbDirectory) = "" Then MkDir ("C:\GestionResto\Fiche de Renseignements"): nb = nb + 1 If Dir("C:\GestionResto\Facture", vbDirectory) = "" Then MkDir ("C:\GestionResto\Facture"): nb = nb + 1 If Dir("C:\GestionResto\Devis", vbDirectory) = "" Then MkDir ("C:\GestionResto\Devis"): nb = nb + 1 If Not (nb = 0 Or nb = 6) Then MsgBox "Attention, y'a un loup !" End Sub
je t'ai mis un mini contrôle. Pour moi c'est anormal s'il y a autre chose que 0 ou 6 créations. Ca ne devrait pas arriver.
A toi de voir si tu juges utile de le garder et voir quelles actions faire si ça arrive.
eric
Bonjour,
Difficile de répondre précisément sans savoir à quoi ressemble cette arborescence.
Mais vous pouvez vérifier qu'elle existe ou pas , par exemple en testant la présence du dossier le plus profond de l'arborescence avec la fonction FolderExist
Difficile de répondre précisément sans savoir à quoi ressemble cette arborescence.
Mais vous pouvez vérifier qu'elle existe ou pas , par exemple en testant la présence du dossier le plus profond de l'arborescence avec la fonction FolderExist
Bonjour,
Tu peux faire cela avec une variable Boolean
Dans un module mettre ceci:
dans ThisWorkbook cela:
et à la fin du code de création mettre :
Tu peux faire cela avec une variable Boolean
Dans un module mettre ceci:
Option Explicit Public arborescence As Boolean
dans ThisWorkbook cela:
Option Explicit Private Sub Workbook_Open() If arborescence = False Then MsgBox "Ceer votre arborescence" End If End Sub
et à la fin du code de création mettre :
arborescence = True
Bonjour cs_Le Pivert,
J'ai créé un module avec le code suivant :
Option Explicit
Public arborescence As Boolean
Dans ThisWorkBook, le code est le suivant :
Private Sub WorkBook_Open()
If arborescence = False Then
Msg = "Blablabla"
Style = vbOKOnly + vbInformation
Title = "Première utilisation "
Response = MsgBox(Msg, Style, Title)
Sheets(1).Activate
End If
End Sub
Dans la création, voici le code :
Sub CreationArborescence()
MkDir ("C:\GestionResto\")
MkDir ("C:\GestionResto\Planning Salle")
MkDir ("C:\GestionResto\Planning Cuisine")
MkDir ("C:\GestionResto\Fiche de Renseignements")
MkDir ("C:\GestionResto\Facture")
MkDir ("C:\GestionResto\Devis")
arborescence = True
End Sub
Il me semble avoir fait ce que tu avais préconisé, mais une fois l'arborescence créée, à l'ouverture suivante il me rouvre la MsgBox pour créer l'arborescence...
J'ai beau tenté (exit sub, chemin > 0, ...), je suis en plein brouillard... désolé...
Je peux abuser de tes lumières?
Merci.
J'ai créé un module avec le code suivant :
Option Explicit
Public arborescence As Boolean
Dans ThisWorkBook, le code est le suivant :
Private Sub WorkBook_Open()
If arborescence = False Then
Msg = "Blablabla"
Style = vbOKOnly + vbInformation
Title = "Première utilisation "
Response = MsgBox(Msg, Style, Title)
Sheets(1).Activate
End If
End Sub
Dans la création, voici le code :
Sub CreationArborescence()
MkDir ("C:\GestionResto\")
MkDir ("C:\GestionResto\Planning Salle")
MkDir ("C:\GestionResto\Planning Cuisine")
MkDir ("C:\GestionResto\Fiche de Renseignements")
MkDir ("C:\GestionResto\Facture")
MkDir ("C:\GestionResto\Devis")
arborescence = True
End Sub
Il me semble avoir fait ce que tu avais préconisé, mais une fois l'arborescence créée, à l'ouverture suivante il me rouvre la MsgBox pour créer l'arborescence...
J'ai beau tenté (exit sub, chemin > 0, ...), je suis en plein brouillard... désolé...
Je peux abuser de tes lumières?
Merci.
Bonjour,
Je pensais aussi à une méthode qui fonctionne à n'importe quel lancement.
Un exemple trouvé ici https://www.encodedna.com/excel/how-to-check-if-a-folder-exist-using-vba-macro-in-excel.htm et adapté avec une des arborescences du projet :
Je pensais aussi à une méthode qui fonctionne à n'importe quel lancement.
Un exemple trouvé ici https://www.encodedna.com/excel/how-to-check-if-a-folder-exist-using-vba-macro-in-excel.htm et adapté avec une des arborescences du projet :
Option Explicit Dim sFolder As String Sub checkFolderExists() Dim objFso Set objFso = CreateObject("Scripting.FileSystemObject") sFolder = "C:\GestionResto\Fiche de Renseignements" If objFso.FolderExists(sFolder) Then ' Check if the folder exists. MsgBox "Yes, it exist" Else MsgBox "No, the folder does not exist" End If End Sub