Sortie macro sans plantage

bonjour,

dans le fichier joint qui importe un fichier texte en colonne b par le moyen d un bouton, comment modifier la macro pour que, lorsque la fenêtre de sélection du fichier s'ouvre pour aller chercher notre fichier txt, si l'on clique sur le bouton "annuler", on quitte la macro sans qu'elle se plante ou renvoie un message d'erreur ?

merci

bonjour

apres ton getopen faut tester ta variable fich_txt

 'demande a l'utilisateur de choisir un fichier
    fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
    'ouverture du fichier txt
    If fich_txt = False Then MsgBox ("appuie cancel") ou exit sub pour sortir sans rien dire a personne 

fred

salut,

oui, cela fonctionne quand on annule, mais si l'on sélectionne le fichier pour l'ouvrir, la macro plante

Re

ne pas typé ta variable fich_txt dans la déclaration en string mais en variant

et forcer sa conversion en string dans l'appel de ta fonction shortfilmane avec CStr()

fred

Sub import_donnees_test()
    Dim fich_txt as variant
    Application.ScreenUpdating = False
    'effacement des données présentes
    Feuil1.Range("B7:B" & Feuil1.Cells(Rows.Count, 2).End(xlUp).Row).ClearContents
    ChDrive Range("ap22")
    ChDir Range("ao22")
    'demande a l'utilisateur de choisir un fichier
    fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
    'ouverture du fichier txt
     If fich_txt = False Then MsgBox ("appuie cancel"): Exit Sub
    Workbooks.OpenText Filename:=fich_txt, Origin:=xlWindows, StartRow:=1, _
     DataType:=xlDelimited, Local:=True, Semicolon:=True
    'copie des lignes
    ActiveWorkbook.Sheets(1).Range("A1:A" & ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row).Copy 'Workbooks(fich_source).Feuil1.Range("A1")
   'collage spéciale des valeurs
    ThisWorkbook.Sheets(1).[B7].PasteSpecial xlValues
    'fermeture du fichier
    Application.DisplayAlerts = False
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Range("B5") = ShortFilename(CStr(fich_txt))
    'Range("am6") = ShortFilename(fich_txt)     
    Application.ScreenUpdating = True
End Sub

super, merci, ça marche du tonnerre !

à+

Rechercher des sujets similaires à "sortie macro plantage"