Import de fichier | ||
---|---|---|
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 |
|
|
Re: Import de fichier | ||
---|---|---|
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
|
|
|
Re: Import de fichier | ||
---|---|---|
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 |
|
|
Re: Import de fichier | ||
---|---|---|
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 |
|
|
Re: Import de fichier | ||
---|---|---|
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é |
|
|
Re: Import de fichier | ||
---|---|---|
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 |
|
|
Re: Import de fichier | ||
---|---|---|
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 |
|
|
Re: Import de fichier | ||
---|---|---|
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 :
Guy |
|
|
Re: Import de fichier | ||
---|---|---|
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 :
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 :
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:
Ecran Type.zip [ Taille: 10.65 Ko - Téléchargements: 615 ] Exemples.zip [ Taille: 1.61 Ko - Téléchargements: 484 ] |
|
|
Re: Import de fichier | ||
---|---|---|
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 |
|
|
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.
Qui consulte actuellement ce sujet ?
1 Utilisateur(s) anonymes