MsgBox n'apparaissant qu'une seule fois
Résolu/Fermé
FlorianR
-
17 nov. 2020 à 23:37
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 - 19 nov. 2020 à 23:45
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 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
- Signe fois clavier iphone ✓ - Forum Word
- Signe fois ✓ - Forum Windows
- Ou trouvé la touche multiplié??? ✓ - Forum Clavier
- Comment faire le signe de multiplication sur mon clavier - Forum Windows
4 réponses
eriiic
Messages postés
24579
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2024
7 222
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
>
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 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
24579
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2024
7 222
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