Fontionnalité Macro import

Salut tout le monde,

Ma question concerne une macro qui exporte une feuille a partir d'un classeur vers un autre classeur.

La macro marche lorsque on clique sur "ouvrir" mais si on clique sur "annuler" une erreur objet apparaît

Dans l'idéal, j'aimerais que la fenêtre se répète une seconde fois avec un msgbox "La procédure ici est une..."

J'ai essayé tant bien que mal de faire quelque chose avec un on error mais qui est un peu moche

Est-il possible de configurer facilement le bouton "annuler"?

Merci

Public total1, total2, total3, feuil As Integer
Sub Import()
2: Dim fichier As String
Dim ws As Workbook
Dim nbre As Integer
Sheets(1).Cells.Clear
3: MsgBox ("Selectionner fichier dans telechargements pour realiser l'import")
fichier = Application.GetOpenFilename("Fichiers Excel (*.xls;*.xlsx), _.xls;*.xlsx", , "Veuillez selectionner le fichier a traiter")
On Error GoTo 2
On Error GoTo 3
Set ws = Application.Workbooks.Open(fichier)
nbre = Application.WorksheetFunction.CountA(ws.Sheets(1).Range("a:a"))
For i = 1 To nbre
    For j = 1 To 36
        ThisWorkbook.Sheets(1).Cells(i, j) = ws.Sheets(1).Cells(i, j)
    Next j
Next i
ws.Close False
ThisWorkbook.Sheets(1).Columns("a:aj").AutoFit

Bonjour,

en utilisant un espion en débogage, on peut voir que fichier devient égal à false si tu appuies sur annuler, du coup il suffit de faire une petite boucle do while

Public total1, total2, total3, feuil As Integer
Sub Import()
2: Dim fichier As String
Dim ws As Workbook
Dim nbre As Integer

Sheets(1).Cells.Clear

Do
    MsgBox ("Selectionner fichier dans telechargements pour realiser l'import")
    fichier = Application.GetOpenFilename("Fichiers Excel (*.xls;*.xlsx), _.xls;*.xlsx", , "Veuillez selectionner le fichier a traiter")
Loop While fichier = False

Set ws = Application.Workbooks.Open(fichier)
nbre = Application.WorksheetFunction.CountA(ws.Sheets(1).Range("a:a"))
For i = 1 To nbre
    For j = 1 To 36
        ThisWorkbook.Sheets(1).Cells(i, j) = ws.Sheets(1).Cells(i, j)
    Next j
Next i
ws.Close False
ThisWorkbook.Sheets(1).Columns("a:aj").AutoFit

Merci @Ausecour j'avais pas pensé a utiliser un while

Sujet résolu

De rien, tu penseras à enlever le " 2: "

Merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "fontionnalite macro import"