Macro OuvrirDonnées


A l'aide de l'Enregistreur (Nom de la macro=OuvrirDonnées), effectuer les opérations suivantes :

Voici le texte de la macro :
'
' OuvrirDonnées Macro
' Macro enregistrée le 24/10/96 par Jean-Marie Lambert
'
'
Sub OuvrirDonnées()
    Workbooks.OpenText Filename:= _              (1)
        "C:\SEMINAIR\Excel\MODULE31.TXT", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
        Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
        Other:=False, FieldInfo:=Array(1, 1)
    Sheets("MODULE31").Select                    (2)
    Sheets("MODULE31").Copy After:=Sheets(1)     (3)
    Sheets("MODULE31 (2)").Select                (4)
    Sheets("MODULE31 (2)").Name = "Commandes"    (5)
End Sub

Cette procédure présente l'inconvénient de toujours ouvrir le fichier module31.txt, qui se trouve dans le répertoire ... (instruction 1) et de toujours utiliser le classeur module31.txt lors de la copie de la feuille 1 (instruction 3).

On peut modifier le code de la façon suivante :
remplacer l'instruction 1
   Workbooks.OpenText Filename:= ...

par les instructions :

   FichierTxt = InputBox("Nom du fichier à ouvrir : ", _
      "Ouvrir un fichier", "module31.txt")
   if FichierTxt <> "" then
      Workbooks.OpenText Filename:=FichierTxt

supprimer les instructions 2 et 4 et

remplacer dans les instructions 3 et 5 le texte :

   "MODULE31" et "MODULE31 (2)"

par respectivement :

   1 et 2

et terminer l'instruction if en ajoutant End if avant l'instruction End Sub.

Si on désire passer comme paramètre le nom du fichier par défaut, on peut définir un paramètre qu'il faudra donner à cette procédure.

Voici le texte de la macro :
Sub OuvrirDonnées(FichierDéfaut)
    FichierTxt = InputBox( _
        "Nom du fichier à ouvrir : ", _
        "Ouvrir un fichier", _
        FichierDéfaut)
    If FichierTxt <> "" Then
        Workbooks.OpenText Filename:=FichierTxt
        Sheets(1).Copy After:=Sheets(1)
        Sheets(2).Name = "Commandes"
    End If
End Sub

On pourra appeler cette procédure de la façon suivante :
OuvrirDonnées("Module31.txt") ou
OuvrirDonnées FichierDéfaut:= "Module31.txt"

Que se passe-t-il si le fichier (FichierTxt) n'existe pas ? La procédure s'arrête avec le message d'erreur suivant :

Dans une procédure on peut utiliser les boîtes de dialogue d'Excel.

Par exemple :
Application.Dialogs(xlDialogOpen).Show

permet d'utiliser la boîte de dialogue de la commande : Ouvrir.../Fichier. Si on écrit :
CodeRetour = Application.Dialogs(xlDialogOpen).Show

la variable CodeRetour va recevoir la valeur True si Excel a ouvert le fichier ou la valeur False si l'utilisateur a répondu Annuler.

Revenir à "Exemple de macro commande"