macro ouverture de fichier, si annuler, aller a l'instruction ...

iStarOSX

XLDnaute Junior
Bonjour a tous.

j'ai une macro qui me permet de choisir et ouvrir un classeur et d’exécuter des instructions sur ce classeur.

Mais si on annule l'ouverture, la macro continu de s’exécuter normalement alors que je voudrais aller aux instructions en fin de ma macro.

Voici le code :
Code:
Sub Dpp()
Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.Calculation = xlManual

Sheets("Dpp").Cells.Clear


Unload userformA
 
             NomFic = Application.GetOpenFilename("Text files (*.csv), *.csv") '(, , "programmes Presses")
        If NomFic <> False Then
            Workbooks.OpenText Filename:=NomFic, DataType:=1, Semicolon:=True, local:=True
        End If
        
        
With Activebook
    ActiveSheet.Range("A1:IV65536").Copy
    ActiveWindow.Close
End With

With ThisWorkbook
.Sheets("Deperditions").Select
With Sheets("Deperditions")
.Range("A1").Select
.Paste
End With
End With

ViderPresse_Papier
        
 Application.DisplayAlerts = True

Application.ScreenUpdating = True

Sheets("Dpp").Select

Entetet_Deper.Show False

Sheets("Cat").Select
End Sub


Pour gérer "Annuler", je l'avais modifié comme cela :

Code:
Sub Dpp()
Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.Calculation = xlManual

Sheets("Dpp").Cells.Clear


Unload userformA
 
             NomFic = Application.GetOpenFilename("Text files (*.csv), *.csv") '(, , "programmes Presses")
        If NomFic <> False Then
            Workbooks.OpenText Filename:=NomFic, DataType:=1, Semicolon:=True, local:=True


            On cancel Goto Fin


        End If
        
        
With Activebook
    ActiveSheet.Range("A1:IV65536").Copy
    ActiveWindow.Close
End With

With ThisWorkbook
.Sheets("Deperditions").Select
With Sheets("Deperditions")
.Range("A1").Select
.Paste
End With
End With

ViderPresse_Papier
        
 Application.DisplayAlerts = True

Application.ScreenUpdating = True

Sheets("Dpp").Select

Entetet_Deper.Show False



Fin :


Sheets("Cat").Select
End Sub


Mais cela ne fonctionne pas.

Comment je peu gérer le cas d'annulation d'ouverture du fichier ?

merci pour votre aide.
 

Pierrot93

XLDnaute Barbatruc
Re : macro ouverture de fichier, si annuler, aller a l'instruction ...

Bonjour,

modifie peut être ainsi, enfin si j'ai bien compris :
Code:
        If NomFic <> False Then
            Workbooks.OpenText Filename:=NomFic, DataType:=1, Semicolon:=True, local:=True
else
exit sub 'pour sortir de la procédure        
End If

bonne journée
@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : macro ouverture de fichier, si annuler, aller a l'instruction ...

Bonjour iStarOSX, Pierrot, bonjour le forum,

Peut-être comme ça :
Code:
Sub Dpp()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
Sheets("Dpp").Cells.Clear
Unload userformA
NomFic = Application.GetOpenFilename("Text files (*.csv), *.csv") '(, , "programmes Presses")

If MsgBox("Voulez-vous ouvrir le fichier ?", vbYesNo) = vbNo Then GoTo Fin

If NomFic <> False Then
    If MsgBox("Voulez-vous ouvrir le fichier ?", vbYesNo) = vbNo Then GoTo Fin
    Workbooks.OpenText Filename:=NomFic, DataType:=1, Semicolon:=True, local:=True
End If
With Activebook
    ActiveSheet.Range("A1:IV65536").Copy
    ActiveWindow.Close
End With
ThisWorkbook.Sheets("Deperditions").Range("A1").Paste
ViderPresse_Papier
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Sheets("Dpp").Select
Entetet_Deper.Show False
Fin:
Sheets("Cat").Select
End Sub
 

iStarOSX

XLDnaute Junior
Re : macro ouverture de fichier, si annuler, aller a l'instruction ...

Bonjour Pierrot93 et Robert.

Merci beaucoup pour votre aide (et si je ne me trompe pas, ce n'est pas la première fois que vous m'aidez).

La solution de Pierrot93 correspond totalement a ce que je cherche a faire.

J'ai testé le code de Robert mais cela alourdi mon appli avec le message-box de confirmation d'ouverture.

En tout cas un grand merci a vous deux et a bientôt.
 

Discussions similaires

Statistiques des forums

Discussions
312 237
Messages
2 086 486
Membres
103 232
dernier inscrit
logan035