Import de fichier
#1
Aspirant XLPages

Inscription: 17/08/2009

Messages: 27

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 25-08-2009 20h30
Pour des besoins professionnels, je souhaite importer dans Excel des fichiers.

J'utilise la macro commande suivante  :

Sub ImporterFichier()
On Error GoTo ImporterFichierErr
Dim dTemp As Dialog
    'instancie la boite de dialogue import fichier texte
    Set dTemp = Application.Dialogs(xlDialogImportTextFile)
    'affiche la boite de dialogue
    dTemp.Show
Exit Sub
ImporterFichierErr:
    MsgBox Err.Number & vbCrLf & Err.Description & vbCrLf & "ImporterFichier()"
End Sub


Cette dernière fonctionne très bien, cependant je voudrais pouvoir spécifié l'extension attendue (.tsv) et non (.txt)

Je voudrais également masquer toute la phase d'import pour seulement avoir une boîte de dialogue d'import.
Est-ce possible ?

Par avance Merci
Hors Ligne
Rapport   Haut 

Re: Import de fichier
#2
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 25-08-2009 20h40
BonjourAlragorn,

Tu peux utiliser la méthode GetOpenFilename de l'objet Application.

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,Tous les fichiers (*.*), *.*"
 
  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
    MsgBox "Prêt pour le traitement du fichier " & varFichier
   
  End If
 
  Exit Sub
 
ImporterFichierErr:
    MsgBox Err.Number & vbCrLf & Err.Description & vbCrLf & "ImporterFichier()"
End Sub

Pour ce qui est du traitement du fichier à ouvrir il reste à savoir à quoi ressemblent les fichiers *.tsv.

Guy


Edité par Guy le 25/08/2009 21:10:11

Hors Ligne
Rapport   Haut 

Re: Import de fichier
#3
Aspirant XLPages

Inscription: 17/08/2009

Messages: 27

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 25-08-2009 21h53
Merci beaucoup Guy

Comme toujours tes solutions sont efficaces.

Je te joins un fichier d'exemple pour l'import.
L'import manuel est très simple et le seul fait d'appuyer sur terminer met en forme le fichier, ensuite il suffit de choisir l'option nouvelle feuille et tout est ok

Voici ce que donne une macro enregistrée avec un import sans la fonction Application.Dialogs(xlDialogImportTextFile)

    ChDir "C:\Documents and Settings\user\Bureau"
    Workbooks.OpenText Filename:= _
        "C:\Documents and Settings\user\Bureau\1089017.tsv", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
        , 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
        Array(22, 1)), TrailingMinusNumbers:=True
    Windows("Classeur1").Activate


L'idée est de créer une nouvelle feuille portant le nom du fichier importer et non de créer un nouveau classeur

Par avance Merci

Cordialement

Hors Ligne
Rapport   Haut 

Re: Import de fichier
#4
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 25-08-2009 21h56
Re bonjour,

Et où donc est le fichier exemple?

Guy

Hors Ligne
Rapport   Haut 

Re: Import de fichier
#5
Aspirant XLPages

Inscription: 17/08/2009

Messages: 27

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 25-08-2009 22h15
le voila

Désolé

Pièce jointe:
zip 1089017.zip   [ Taille: 0.64 Ko - Téléchargements: 530 ]
Hors Ligne
Rapport   Haut 

Re: Import de fichier
#6
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 25-08-2009 23h38
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

Hors Ligne
Rapport   Haut 

Re: Import de fichier
#7
Aspirant XLPages

Inscription: 17/08/2009

Messages: 27

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-08-2009 10h59
Navré de n'avoir pu répondre plus tôt mais j'étais en déplacement pour le travail et je n'avais pas de connexion internet.

Merci beaucoup Guy pour ton aide. Tout fonctionne parfaitement, tu es génial.

L'import me conduit a soumettre a vos avis expert une autre question :

Est-il possible une fois les fichiers importés de faire apparaître des données sélectionnées dans les UserForms adéquats ?

Exemple :

Dans le fichier précédemment fourni, nous avons un code article ainsi qu'une description de l'article.
Ai-je la possibilité de faire apparaître ce dernier dans une UserForm ?

Cordialement
Hors Ligne
Rapport   Haut 

Re: Import de fichier
#8
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 27-08-2009 11h45
Bonjour Alragorn,

Dans le fichier fourni (1089017.tsv) les deux champs indiqués portent les valeurs :
Article commandé :       926430
Description de l'article : FORMATION ACTIVITE NIV. C4

Si j'ai bien compris la question, il s'agira d'afficher ces deux valeurs dans un formulaire.

Questions :
  1. Ce formulaire s'ouvrira-t-il immédiatement après l'importation des données du fichier .tsv?
  2. Devra-t-on pouvoir ouvrir ce formulaire sur commande (bouton par exemple)?
  3. Comme je n'aperçois pas bien le but de tout cet exercice et que j'imagine que lors d'une session plusieurs fichiers .tsv seront importés, faudra-t-il afficher les données mentionnées pour chaque importation?
  4. Le fichier donné en exemple ne porte qu'un seul enregistrement, se pourrait-il qu'un autre fichier .tsv en porte plusieurs? Si oui, devra-t-on afficher chacun des champs pour chaque enregistrement?

Guy





Hors Ligne
Rapport   Haut 

Re: Import de fichier
#9
Aspirant XLPages

Inscription: 17/08/2009

Messages: 27

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-08-2009 15h39
Guy

En effet, il y aura une session d'import de plusieurs fichiers.
Ces fichiers contiennent 3 informations :
  • Article Commandé
  • Description de l'article
  • Quantité

L'idée finale est d'obtenir un tableau de bord s'ouvrant lancer à partir d'un bouton qui tiendra compte des informations contenus dans les imports.

Ainsi dans le fichier exemple1 :
Le tableau de bord devrait pouvoir afficher :
  • Article Commandé
  • Description de l'article
  • Quantité

Seules les commandes contenant des codes articles numériques m'intéressent (9XXXXX).

La situation actuelle :

Aujourd'hui, j'utilise "l'écran type" fourni en pièce jointe pour créer mon projet et renseigner les différentes informations avec comme tu dois t'en douter des erreurs et des oublis.

L'objectif est le suivant :

A partir des fichiers importés obtenir un tableau de bord de gestion (qui peut ressembler à l'écran type) afin de visualiser une partie des éléments constitutifs de la commande et établir un planning prévisionnel d'intervention.

Je précise ne pas demander de réaliser les formulaires (sauf si tu as un peu de temps ), je souhaite seulement connaître les formules qui me permettraient de récupérer les informations (attention il y aura sûrement des conditions sur la description de l'article ou le code article).

Dans tous les cas merci pour ta précieuse aide qui m'a ouvert des portes vers l'automatisation.

Cordialement

Alragorn






Pièce jointe:
zip Ecran Type.zip   [ Taille: 10.65 Ko - Téléchargements: 615 ]
zip Exemples.zip   [ Taille: 1.61 Ko - Téléchargements: 484 ]
Hors Ligne
Rapport   Haut 

Re: Import de fichier
#10
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 27-08-2009 20h46
Bonjour,

J'ai téléchargé les fichiers donnés en exemple.
Voir le fichier joint et me transmettre plus de détails si possible.

J'ai modifié la procédure d'importation pour prendre en compte tant les fichiers .tsv que les fichiers texte .txt.

Guy
Pièce jointe:
xls Test et question.xls   [ Taille: 60.00 Ko - Téléchargements: 771 ]

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes