Problème de date sous excel

Résolu
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005 - 2 févr. 2005 à 12:19
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005 - 4 févr. 2005 à 10:11
Bonjour
J'ai un problème avec excel. J'ai une liste de fichiers de la forme
nomdefichier-jour-mois-année.txt. Je dois récupérer des données sur une période que je demande à l'aide d'une boite de dialogue. J'ai 2 problemes
d'une part je ne sais pas la commandepour la converison des fichiers txt en feuilles de calcul( ils osnt bien fait il y a des séparateurs de type : ),
d'autre part je ne trouve pas comment faire une boucle sur les dates pour permettre d'automatiser l'aquisition de données.
La conversion automatique n'est pas tres importante, le plus importan c'est de pourvoir ajout a mon worbook les worksheet dont j'ai besoin pour la macro.

Merci
Dan

14 réponses

PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 13:18
Salut dan!

Pour répondre a ta question j'ai juste besoin d'un complément d'info!

1 - Si je comprend bien, Tu doit ouvrir le fichier txt et lire ligne par ligne si l'enregistrement est bien dans l'interval de date voulu et si oui l'ajouter dans ta feuille Excel a la suite des autre c'est bien ca?

2 - Représise moi ton séparateur c'est bien ( ou : ?

a tout a l'heure

Ptitgrumo chante faux
3
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 14:14
Ok!

Pour la restriction sera tu le faire?

sinon pour ce que tu souhaite faire voici dans ton VBA excel quoi mettre!

Public Sub charger_fichier()
Dim num As Integer
Dim lign As Long
Dim tmp As String

lign = 1
num = FreeFile

Open cheminFichier For Append As #a
Do Until EOF(num)
Line Input #num, tmp
ActiveSheet.Cells(lign, 1) = tmp
lign = lign + 1
Loop
Range("A1:A5").Select
Selection.TextToColumns Range("A1"), xlDelimited, xlNone, False, False, False,_ False, False, True, ":", Array(1, 1)
Range("A1").Select
End Sub

Voila espérant que tu comprendra sinon n'hésite pas

A++

Je reste a ta dispo

Ptitgrumo à chaud
3
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 15:08
re!

c'est du type cheminfichier="c:\lacestcool\12012004.txt"

Pour ce qui es de freefile c une fonction interne qui renvoie un numéro (un index de fichier libre)

:O)

A++

Ptitgrumo bouche pleine de chamalo
3
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 16:25
oui tu as raison surtout pas oublier de faire un "Close #num" bien vu

Range("A1:A5").Select ca veu dire tout simplement sélectionne moi les cellule de la A1 à la A5
Mais je m'a gouré!

écrit plutot Columns("A:A").Select
ca veu dire sélectionne la colonne A

sinon la dernière ligne dit

sur ma sélection bascule mes valeur de la première colonne sur plusieurs colonne avec 1 nouvelle colonne pour un : rencontré

Voila ci sa te va!

A++

Ptitgrumo le mazo
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 17:29
ok alors essai ca!


Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=":"

sinon pour le array c un peu dur a expliquer même moi je m'y perd mais ne le met pas il sera par défaut!

c'est juste un moyen de paramétrer tes céllule si c'est du texte, du int, ....

A++

Ptitgrumo bobo
3
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 13:41
Yo

Premierement le fichier est de type CRdu-13-12-1256.txt
Dedans il ya des données comme ça
jour: mois: années:total
12:2:1985:8541386541
j'aimerais donc avoir les premiers données de chaque lignes dans la première colonne.

Par ailleurs quand j'ouvre avec excel le fichier .txt et que je lui donne ne paramètre ": ",il le fait tout seul mais mon but est de le faire automatiquement.

le séparateur est ":" ( 2 points)

Par ailleurs je ne trouve pas comment faire la boucle sur les jours entre les dates de début et de fin pour l'aquisition.

Merci
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 13:43
reyo pardon PtiGrumo j'avais mal lu
c'ets sur le nom de fichier qu'est la restriction de l'intervalle de Date

merci
Dan
0
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
2 févr. 2005 à 14:19
dsl lol c pas

Open cheminFichier For Append As #a

mais

Open cheminFichier For Append As #num

A++

Ptitgrumo le mancho
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 14:41
yo merci monsieur
bon ça ne marche pas direct mais on va regarder un peu pourquoi.
Sinonpour le probleme de date, il asuffit d'aller bouffer pour qu au retour ça marche...

Merci encore
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 14:45
derniere question
qu'est ce que je dois mettre dasn cheminfichier un truc du style
cheminfichier= "c:\lacestcool"
ou plutot cheminfichier="c:\lacestcool\12012004.txt"

et freefile est un int mais ça ne devrait pas etre un string, comme le nom du fichier ou c'est une commande interne à Excel.

Merci
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 16:00
Ouais ça devrait marcher. Si j'ai bien compris :
Open "c:\mesdoc\1203258851.txt" For Append As #num
'bonlà on lui dit d'ouvrir le fichier
Do Until EOF(num) ' boucle tant que pas en fin de fichier

Line Input #num, tmp ' là on met dans tmp l a ligne tel qu'est est dasn le fichier txt
ActiveSheet.Cells(lign, 1) = tmp ' là on recopie la ligne dasn la cellule
lign = lign + 1 'onpasse à la ligne suivante
Loop
Range("A1:A5").Select ' pas clair . je pense que là on dit qu on va modifier les celleules de A1 à A5
Selection.TextToColumns Range("A1"), xlDelimited, xlNone, False, False, False,_ False, False, True, ":", Array(1, 1) 'lmà pas compris nonplus
Range("A1").Select ' là meme combat
End Sub

Qui plus est quand je le mets tel quel dans excel macro, il aime pas la ligne Selection.text.....

Merci encore de ta solicitude
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 16:09
Ouais ça devrait marcher. Si j'ai bien compris :
Open "c:\mesdoc\1203258851.txt" For Append As #num
'bonlà on lui dit d'ouvrir le fichier
Do Until EOF(num) ' boucle tant que pas en fin de fichier

Line Input #num, tmp ' là on met dans tmp l a ligne tel qu'est est dasn le fichier txt
ActiveSheet.Cells(lign, 1) = tmp ' là on recopie la ligne dasn la cellule
lign = lign + 1 'onpasse à la ligne suivante
Loop
Range("A1:A5").Select ' pas clair . je pense que là on dit qu on va modifier les celleules de A1 à A5
Selection.TextToColumns Range("A1"), xlDelimited, xlNone, False, False, False,_ False, False, True, ":", Array(1, 1) 'lmà pas compris nonplus
Range("A1").Select ' là meme combat
End Sub

Qui plus est quand je le mets tel quel dans excel macro, il aime pas la ligne Selection.text.....

Par ailleurs, on ne devrait pas fermer le fichier à la fin ?

Merci encore de ta solicitude
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
2 févr. 2005 à 16:50
Bon là c'est presque fini, il me dit juste qu 'il attend ":=" ....
sinon ça àl'air de compiler.
Question :pourquoi Array(1,1)?

Merci vraiment beaucoup, jamais j'aurais pu le faire tout seul.
Dan
0
yanndan Messages postés 13 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 10 février 2005
4 févr. 2005 à 10:11
Désolé de ne aps avoir déjà réponde hier, mais ça marche nickel, tout va bien
Merci
Dan
0
Rejoignez-nous