Bouton annuler d'une boite de dialogue

Résolu/Fermé
Utilisateur anonyme - 16 mai 2020 à 16:58
 Utilisateur anonyme - 16 mai 2020 à 19:41
Bonjour, le forum
J’utilise le code ci-dessous trouvé sur le net et je l’ai adapté à mon projet. La macro fonctionne bien
Sub export()
Dim wb As Workbook, nm As Name
Dim NomNWs As String
Dim NomNWb As String
Dim Repertoire As String
Dim Ws As Worksheet
Dim madate

On Error GoTo errorHandler
Application.ScreenUpdating = False

Feuil2.Visible = xlSheetVisible
If Feuil1.Visible = True Then Feuil1.Visible = xlSheetVeryHidden
If Feuil5.Visible = True Then Feuil5.Visible = xlSheetVeryHidden
If Feuil6.Visible = True Then Feuil6.Visible = xlSheetVeryHidden
Feuil2.Activate

ActiveWindow.DisplayWorkbookTabs = True


MsgBox ("Indiquer le repertoire ou sera enregistré le fichier")
Repertoire = ChoixDossier 'demande a l'utilisateur de saisir le repertoire ou se trouve le fichier
Application.DisplayAlerts = False

madate = Format(Now, "dddd dd mmmm yyyy")
NomNWs = "Tb_Infos"
NomNWb = "Sauvegarde-Base-GRIE"

With ActiveSheet
.Unprotect Password:="Recap"
.Copy
.Protect Password:="Recap"
End With

With ActiveWorkbook
With Sheets("Base")
.Shapes.Range(Array("curseur", "Rectangle 2")).Delete '"Rectangle 3", "Rectangle 4"

.Range("A3").Select
ActiveWindow.FreezePanes = False
.Name = NomNWs 'ou ceci --> ThisWorkbook.Sheets("Base").Range("P1")
End With

Set wb = ActiveWorkbook
'Suppression des noms exportés dans le nouveau classeur
For Each nm In wb.Names
nm.Delete
Next nm

.SaveAs Repertoire & "\" & NomNWb & "-" & version & " " & madate & ".xlsx"
.Close
End With

Feuil1.Visible = xlSheetVisible 'laisser toujours en premier !
Feuil2.Visible = xlSheetVeryHidden
Feuil3.Visible = xlSheetVeryHidden
Feuil4.Visible = xlSheetVeryHidden
Feuil5.Visible = xlSheetVeryHidden
Feuil6.Visible = xlSheetVeryHidden
Feuil1.Activate
Feuil1.Range("H17").Select



Application.DisplayAlerts = True


Exit Sub
errorHandler:
Application.ScreenUpdating = True
End Sub


Cela m'affiche une boite de dialogue pour sélectionner un dossier ou sera la feuille exportée. J'aimerai pouvoir gérer le bouton « annuler » de cette boite de dialogue, pour qu'il annule l'action.
Car la macro s’exécute comme si rien n’est fait.
Merci d'avance.
A voir également:

4 réponses

Le Pingou Messages postés 12044 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 426
16 mai 2020 à 19:12
Bonjour,
Si j'ai bien compris vous voulez arrêter le code si aucun choix de répertoire...!
Donc, ajouter la ligne de code en jaune.

1
Le Pingou Messages postés 12044 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 426
16 mai 2020 à 17:12
Bonjour,
En essayant votre code , à aucun moment une boîte de dialogue s'ouvre....!
Pas possible de donner une réponse dans se cas...!
0
Utilisateur anonyme
Modifié le 16 mai 2020 à 17:48
Bonjour Le pingou

tu as raison j'ai oublié la fonction choix de dossier
La voici:
Function ChoixDossier()
If val(Application.version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count = 1 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Répertoire?")
End If
End Function


Merci
0
Utilisateur anonyme
16 mai 2020 à 19:41
Merci bien le Pingou

Je fais et je comprends.
0