MsgBox n'apparaissant qu'une seule fois
Résolu/Fermé
FlorianR
-
17 nov. 2020 à 23:37
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 19 nov. 2020 à 23:45
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 19 nov. 2020 à 23:45
A voir également:
- MsgBox n'apparaissant qu'une seule fois
- Comment imprimer un tableau excel sur une seule page - Guide
- Powerpoint changer orientation d'une seule diapositive - Forum Powerpoint
- Sirène pompiers 5 fois signification ✓ - Forum Loisirs / Divertissements
- Signe fois clavier iphone ✓ - Forum Word
- Mettre une seule page en paysage word - Guide
4 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié le 18 nov. 2020 à 23:54
Modifié le 18 nov. 2020 à 23:54
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
Utilisateur anonyme
18 nov. 2020 à 07:34
18 nov. 2020 à 07:34
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
18 nov. 2020 à 12:19
18 nov. 2020 à 12:19
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.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
FlorianR
18 nov. 2020 à 16:20
18 nov. 2020 à 16:20
un exemple:
https://www.cjoint.com/c/JKsptvJRfvQ
@+ Le Pivert
https://www.cjoint.com/c/JKsptvJRfvQ
@+ Le Pivert
Utilisateur anonyme
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
Modifié le 18 nov. 2020 à 16:50
Modifié le 18 nov. 2020 à 16:50
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
Bonsoir à tous,
Merci pour votre aide généreuse à tous! La proposition d'eriiic était effectivement la plus simple et répond à mon besoin même si différent de la demande initiale. Merci quand même aux autres!
Bonne soirée!
Merci pour votre aide généreuse à tous! La proposition d'eriiic était effectivement la plus simple et répond à mon besoin même si différent de la demande initiale. Merci quand même aux autres!
Bonne soirée!
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
19 nov. 2020 à 23:45
19 nov. 2020 à 23:45
Comment ça "même si différent de la demande initiale" ??
ils sont créés s'ils n'existent pas
ils sont créés s'ils n'existent pas