Rapport de message :*
 

Re: Import de fichier

Titre du sujet : Re: Import de fichier
par Guy le 25/08/2009 23:38:48

Bonsoir,

Petite curiosité : dans le fichier exemple le dernier champ (49) porte la valeur U et n'a pas de nom???

M'enfin, quelques lignes de code qui devrait faire le boulot.

Sub ImporterFichier()

  On Error GoTo ImporterFichierErr
 
  Dim strTypeDeFichier As String
  Dim strTitre As String
  Dim varFichier As Variant ' La valeur de retour de GetOpenFileName est une chaîne ou un booléen
 
  strTypeDeFichier = "(*.tsv), *.tsv"
 
  strTitre = "Importer des fichiers"
 
  varFichier = Application.GetOpenFilename(FileFilter:=strTypeDeFichier, Title:=strTitre)
 
  If varFichier <> False Then ' L'utilisateur n'a pas cliqué sur Annuler
  
    ' Effectuer le traitement ICI
    Traitement CStr(varFichier)
  
  End If
 
  Exit Sub
 
ImporterFichierErr:
    MsgBox Err.Number & vbCrLf & Err.Description & vbCrLf & "ImporterFichier()"
End Sub

Sub Traitement(strNomFichier As String)
   
 
  Application.ScreenUpdating = False ' Histoire de ne pas ameuter les environs
 
  ' Ouvre le fichier tsv
  Workbooks.OpenText Filename:=strNomFichier, DataType:=xlDelimited, textqualifier:=xlTextQualifierDoubleQuote, Tab:=True

  ' Voir à modifier le paramètre Before selon le contexte
  ' La nouvelle feuille est déplacé dans CE classeur avec ThisWorkbook.Name
  ActiveWorkbook.Worksheets(1).Move Before:=Workbooks(ThisWorkbook.Name).Sheets(1)
 
  ' Le classeur temporaire ouvert avec Workbooks.OpenText a disparu.
 
  Application.ScreenUpdating = True ' On remet l'affichage actif
 
End Sub

J'ai modifié le filtre (strTypeDeFichier) pour n'accepter que des fichiers tsv.
Je n'ai pas ajouté de gestionnaire d'erreur dans la procédure Traitement(), à toi de voir.

Cordialement,

Guy