|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : février 2007 Messages : 240 ![]() |
Bonjour,
Lorsqu'on ouvre un fichier TXT sur Excel, il nous propose automatiquement la boite de dialogue "Convertir" (ce qui est très bien) Ensuite quand on choisit "Largeur fixe", il nous découpe tout le fichier, et on ne peut pas lui dire que pour la ligne 1 ça va être tel découpe, et pour les lignes 2 à 9 ça va être autrement, et pour la ligne 10 encore différemment ? Voici un exemple de code : Code :
|
||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Bonjour,
Si le fichier txt a un format spécifique, tu ne peux, à ma connaissance, utiliser cette méthode d'importation. Les post ci dessous traite d'une méthode d'importation qui te permettra de manipuler chaque ligne du fichier http://www.developpez.net/forums/d11...tion-fichiers/ http://www.developpez.net/forums/d11...n-donnees-txt/
__________________
Jérôme Citation:
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.
|
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : février 2007 Messages : 240 ![]() |
Oui c'est un format spécifique ayant cette norme :
colonne 1 = code enregistrement colonne 2 à 6 = code client colonne 7 à 9 = succursale etc... Ok je vais regarder tes liens, merci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() |
bonjour
il y a un sujet du même genre avec un exercice très similaire qui a été traité très recemment donc j'ai apporté une solution voici le lien cela t'inspirera peut être tu pourrais nous donner un exemple de fichier texte et un exemple de fichier excel que l'on doit obtenir pour pouvoir élaborer un matrice n'hésite pas ces sujet sont toujours très intéressants au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#5 | ||
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Citation:
Citation:
Les lignes peuvent-elles avoir des structures différentes?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
||
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Inscription : février 2007 Messages : 240 ![]() |
J'avoue que c'est pas évident à comprendre
Voici la description complète du fichier TXT: Première ligne (commence par 1) : Lignes bénéficiaires (commence par 2) : Dernière ligne (commence par 9) : Et un exemple TXT : Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : décembre 2007 Messages : 1 908 ![]() |
Ca pue le cobol, ça.....ou un équivalent. Malgré toutes ses qualités, VBA n'est pas aussi efficace que ces vieilleries pour traiter ce genre de fichiers. Tu ne pourras pas faire un simple import. Il va falloir coder un petit peu.....
Par contre, 2 questions avant de répondre sur une méthode. 1)Y-a-t-il des retours chariots? 2)Les lignes sont-elles de longueur identiques?(utile seulement si la réponse à la première question est non) Si la réponse à la première question est oui, un bête "line input" et une lecture sur le premier caractère pour avoir le type d'enregistrement, et il ne reste plus qu'à découper avec la fonction mid pour coller dans des cellules. Si la réponse à la première question est non, il faut coder un get. Si tout est à la même longueur, on règle le get sur la longueur donnée. Sinon, il faut lire caractère par caractère, s'adapter à la longueur, etc..... Vu que c'est un .txt, je suppose que le line input suffira. A vérifier. Exemple tiré(et adapté) de l'aide de VBA : Code :
Mais si tu n'as pas de retours chariots, ça va être plus compliqué.....
__________________
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten : 1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception 2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences 3)le temps de comprendre toutes les exigences, le projet est terminé 4)le temps de terminer le projet, les exigences ont changé Et le serment de non-allégiance : Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée. |
||
|
|
10
|
|
|
#8 | |
|
Membre régulier
![]() Inscription : février 2007 Messages : 240 ![]() |
Oui il y a des retour de chariots, et chaque ligne comme par un identificateur (1 pour l'en-tête, 2 pour les bénéficiaires, 9 pour la fin)
Visuellement c'est exactement comme l'exemple que j'ai mis dans mon message précédent J'ai essayé d'adapté ton code mais j'ai le message d'erreur suivant : Citation:
Dès que j'ai terminé je posterais le code complet au cas où ça pourrait servir à quelqu'un |
|
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Inscription : février 2007 Messages : 240 ![]() |
Voilà :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com