Sortir de la macro si annuler

moseca Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
 moseca -
Bonjour, j'ai un code qui permet d'enregistrer des données Excel en fichier csv. La macro me donne un interface ou je dois choisir le lieu où enregistrer ainsi que le nom du fichier. Il y a aussi le bouton annuler à côté, pour dire que l'opérateur peut sortir de l'enregistrement en faisant annuler.

Mon problème c'est je n'arrive pas à bien programmer le cas où l'opérateur fait annuler. J'ai ajouté if cancel <> true then exit sub ou if cancel <>false then exit sub mais soit la macro ne fiat rien soit ca s'exécute même si l'usager appuie sur cancel.

NB: la macro fonctionne très bien, elle fait ce que je lui demande, en créant un fichier csv. le problème c'ets juste que l'opérateur puisse annuler pour quitter l'interface d'enregistrement.

MERCI PAR AVANVCE !!

Voici mon code

Dim Workbook2 As Workbook
Dim Worksheet2 As Worksheet
Dim wksheet1 As Worksheet
Dim wkbook1 As Workbook
Dim fFolderName As String
Dim fAbsolutePathName As String
Dim fBaseName As Variant
Dim FSO As Object

Dim t As Integer
t = 10
Set FSO = CreateObject("Scripting.FileSystemObject")
fFolderName = FSO.GetParentFolderName(Application.GetSaveAsFilename())

fBaseName = ActiveSheet.Name & ".csv"
If fBaseName = False Then Exit Sub

fAbsolutePathName = fFolderName & "\" & fBaseName


Application.DisplayAlerts = False
For k1 = 1 To 1
Select Case k1
Case 1: Period = "pour Synchro"

End Select
Set wkbook1 = ThisWorkbook
Set wksheet1 = wkbook1.Worksheets(Period)
wkbook1.Save

wksheet1.Activate

While t < 95
If WorksheetFunction.IsErr(Range("E" & t)) Then
Range("A" & t & ":" & "O" & t + 3).ClearContents
End If
t = t + 1
Wend
t = 14
Set wkbook2 = workbooks.Add
wkbook2.Activate
Set wksheet2 = wkbook2.Sheets.Add(, Sheets(wkbook2.Sheets.Count), 1, xlWorksheet)
wksheet2.Activate
wksheet2.Cells.Clear
wksheet1.Range("A1:A100").Copy ' SELECTION DES DÉBITS TOTAUX
wksheet2.Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
wksheet2.Range("a1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
wksheet2.Name = "Volume" 'CRÉATION DU CSV ET NOMINATION DU FICHIER
wksheet2.Select
wkbook2.SaveAs Filename:="\Volume_" & Period & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False

Set wksheet2 = wkbook2.Sheets.Add(, Sheets(wkbook2.Sheets.Count), 1, xlWorksheet)
wksheet2.Activate
wksheet2.Cells.Clear
' wksheet1.Range("A23:N45").Copy ' SELECTION DES LANE GROUP DATA: PHF_HV
' wksheet2.Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' wksheet2.Name = "PHF_HV" 'CRÉATION DU CSV ET NOMINATION DU FICHIER
wksheet2.Select
' wkbook2.SaveAs Filename:=fFolderName & "\PHF_HV_" & Period & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
' Set wksheet2 = wkbook2.Sheets.Add(, Sheets(wkbook2.Sheets.Count), 1, xlWorksheet)
' wksheet2.Activate
' wksheet2.Cells.Clear
' wksheet1.Range("A47:N69").Copy 'SELECTION DES LANE GROUP DATA : PEDS_BICYCLES
' wksheet2.Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' wksheet2.Name = "Peds_Bicycles" 'CRÉATION DU CSV ET NOMINATION DU FICHIER
' wksheet2.Select
' wkbook2.SaveAs Filename:=fFolderName & "\Peds_Bicycles_" & Period & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
wkbook2.Close
Next
' CSV Macro

Sheets("Bienvenue_").Select
'
A voir également:

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

sortie sur annuler ou croix fermeture fenetre

Set FSO = CreateObject("Scripting.FileSystemObject")
fFolderName = FSO.GetParentFolderName(Application.GetSaveAsFilename())

If fFolderName = "" Then Exit Sub
0
moseca
 
Excusez-moi,
mais il y a un petit problème

En fait, je peux sauver le fichier n'importe ou sauf sur mon bureau, comme si il doit être sauvé dans un dossier.
C'est lié à cette ligne
wkbook2.SaveAs Filename:="\Volume_" & Period & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False

Cependant, si je mets " fFolderName" après le signe égal, c'est l'inverse, je peux sauver n'Importe où sauf dans mes documents (C).

Merci de votre aide!
0