Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 17h37   #1
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Par défaut importer .txt dans une feuille excel

Bonjours à tous!
Petit nouveau sur VBA requière votre expertise!!
J'ai un fichier .txt qui contient ceci:

Date Apport
1950-01-01 212.000
1950-01-02 189.000
1950-01-03 161.000
1950-01-04 77.000
1950-01-05 173.000
... ...

j'aimerais importer ces valeurs sur une feuille spécifier (disont "RÉSULTATS") d'excel tout en m'assurant que les dates sont dans une colonne et les données d'apport dans une autre et dans un format utilisable (date et standard). J'explore depuis plusieurs jours le net pour ça et il y a toujours un pépin dans les codes que je trouve.

Merci à l'avance de votre aide!
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 17h47   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 714
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 714
Points : 3 654
Points : 3 654
Salut, voir sur http://www.developpez.net/forums/d11...v/#post6440882
c'était pour du CSV mais juste .Filters.Add et separateur à changer en l'adaptant à ton contexte , et suppression Sauvegarde dans le code
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 19h12   #3
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Avec cette méthode l'importation réussi mais chaque espace est considérer... mes données d'apports variant de la disaine à la centaine les espace entre mes 2 colone varies. Je me retrouve donc avec une case excel vide pour chaque espace de mon fichier txt. Mes colone ne sont plus continu...
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 19h50   #4
Membre régulier
 
Homme Guillaume Chaudemanche
Back Office Marchés
Inscription : mars 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Chaudemanche
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Back Office Marchés
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 39
Points : 92
Points : 92
Bonsoir,

As tu essayé la méthode OpenText de l'objet Workbook ? Le tutoriel de Jean Marc Rabilloud http://bidou.developpez.com/article/VBA/ la détaille intégralement. Ne connaissant pas les spécificités de ton fichier je ne peux entrer dans les détails mais le code suivant devrait fonctionner :

Code :
1
2
3
4
5
6
7
8
9
Dim strNomFichier As String
Dim wbClasseur As Workbook
Dim wsOnglet As Worksheet
 
strNomFichier '=nom du chemin vers ton fichier texte
 
Set wbClasseur = Workbooks.OpenText(strNomFichier)
Set wsOnglet = wbClasseur.ActiveSheet
wsOnglet.Name = "Résultats"
Cordialement,

Guillaume
Golonne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 21h34   #5
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Super l'info! j'essaye de démèler tout ça et je test! J'ai essayer ton code mais j'obtient " Fonction ou variable attendue" sur (.Opentext)?? Tu comprend d'où ça vient moi j'ai le cerveau en compote je n'y vois rien!
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 21h38   #6
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Bonjour,

As tu alimenté la variable strNomFichier avec le chemin et le nom du fichier à importer ?

Code :
strNomFichier = "nom du chemin vers ton fichier texte"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 21h42   #7
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Oui c'est fait! Ça donne un truc comme "c:\résultats\apports\quelquecho.txt" c'est bien ça?
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 21h55   #8
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Le problème se trouve dans l'instanciation de la variable wbClasseur

Essais comme cela
Code :
1
2
3
4
5
6
7
8
9
Dim strNomFichier As String
Dim wbClasseur As Workbook
Dim wsOnglet As Worksheet
 
strNomFichier = "c:\résultats\apports\quelquecho.txt"
Workbooks.OpenText Filename:=strNomFichier, DataType:=xlDelimited, Space:=True
Set wbClasseur = Application.ActiveWorkbook
Set wsOnglet = wbClasseur.ActiveSheet
wsOnglet.Name = "Résultats"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 23h04   #9
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 714
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 714
Points : 3 654
Points : 3 654
Re jnthnroy : difficile de deviner visuellemnt le séparateur sans échantillon de fichier : espace, tabulation etc
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 07h58   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonjour,

au vu de ton échantillon, ton fichier ne comportant pas de séparateur de colonne il faut se tourner vers une autre solution si les colonnes ont sur toutes les lignes le même nombre de caractères tu peu utiliser open text
avec les paramètres DatatType:= xlFixedWidth, FieldInfo:=Array(Array(8,xlTextFormat)....)pour déterminer ces paramètres utilise l'enregistreur de macro et récupère les paramètres générés dans cette macro..
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 11h40   #11
Membre régulier
 
Homme Guillaume Chaudemanche
Back Office Marchés
Inscription : mars 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Chaudemanche
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Back Office Marchés
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 39
Points : 92
Points : 92
Citation:
Envoyé par jfontaine Voir le message
Le problème se trouve dans l'instanciation de la variable wbClasseur
*Se frappe le front*

Guillaume
Golonne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 14h31   #12
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
mon échantillon se trouve dans mon premier post tout en haut, mais la mise en page n'a pas été conservé, bizard!!! en gros ca donne ceci:

Date Apport
1950-01-01 212.000
1950-01-02 189.000
1950-01-03 161.000
1950-01-04 77.000
1950-01-05 173.000
1950-01-06 182.000
1950-01-07 247.000
1950-01-08 191.000
1950-01-09 186.000

Juste pour préciser, il y a 5 espaces avant les dates et 3 ou 4 espaces entre les dates et les mesure d'apports (3 ou 4 selon si la valeur d'apports est dans l'ordre des dizaines ou centaines) Voir pièce jointe!
Fichiers attachés
Type de fichier : txt App.txt (679 octets, 6 affichages)
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 20h04   #13
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par bbil Voir le message
bonjour,

au vu de ton échantillon, ton fichier ne comportant pas de séparateur de colonne il faut se tourner vers une autre solution si les colonnes ont sur toutes les lignes le même nombre de caractères tu peu utiliser open text
avec les paramètres DatatType:= xlFixedWidth, FieldInfo:=Array(Array(8,xlTextFormat)....)pour déterminer ces paramètres utilise l'enregistreur de macro et récupère les paramètres générés dans cette macro..
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 21h24   #14
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par jfontaine Voir le message
Le problème se trouve dans l'instanciation de la variable wbClasseur

Essais comme cela
Code :
1
2
3
4
5
6
7
8
9
Dim strNomFichier As String
Dim wbClasseur As Workbook
Dim wsOnglet As Worksheet
 
strNomFichier = "c:\résultats\apports\quelquecho.txt"
Workbooks.OpenText Filename:=strNomFichier, DataType:=xlDelimited, Space:=True
Set wbClasseur = Application.ActiveWorkbook
Set wsOnglet = wbClasseur.ActiveSheet
wsOnglet.Name = "Résultats"

L'importation se fait mais je conserve toujours mon prob de mise en page je joint un screenshot pour illustré celui-ci, une image vaut mille mots!
Images attachées
Type de fichier : jpg st.JPG (200,6 Ko, 7 affichages)
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 21h35   #15
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonsoir , jnthnroy

pourquoi ignore tu mes messages ? je te dis que le code à jfontaine ne fonctionne pas avec ton fichier car celui-ci n'utilise pas un séparateur de colonne pour différentier ces colonnes mais une largeur fixe ...!

ne connais tu pas l'enregistreur de macro qui pourrai t'aider à déterminer le code à utiliser pour modifier la ligne ..openText de jfontaine ?
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 14h27   #16
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 1
Points : 1
Dsl! mais j'avais déjà expérimenté avec opentext mais sans succès (possiblement une erreur de ma part). Pour ce qui est de l'enregistreur de macro, je ne connais pas cette outil, j'apprend sur le tas comme on dit.
jnthnroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h01.


 
 
 
 
Partenaires

Hébergement Web