xpmich
Messages postés62Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention11 mars 2010
-
24 févr. 2006 à 11:50
neptunelle
Messages postés1Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention21 août 2007
-
21 août 2007 à 09:24
Bonjour,
Je programme sous Microsof visual Basic.
Je voudrais grâce à un macro ouvrir dans l'ordre des fichiers textes (de même forme) et les copier à la suite dans une même feuille excel. Pour cela, je voudrais savoir
- comment faire pour copier à la suite les fichiers textes dans la feuille
- comment faire pour saisir la date (Integer=mois, integer=jour, integer=année)
exemple des noms de fichiers :
P060224.txt (P + date à l'envers)
P060223.txt
...
format fichier texte
qsdsqd sdfqdsf 4564
sdfdsd sqdsqd 7897
....
Merci d'avance
A voir également:
!! URGENT !! Copie de fichier texte à la suite dans excel
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 févr. 2006 à 16:51
Salut,
l'indice n'appartient pas à la sélection (0), je pense que c'est l'indice (1) qui ne va pas
En fait il ca ne marche pas car le Split ne fait pas ce qu ont lui demande...
NOTE: Ce nest pas "VBTab" que je t ai mis mais VBtab sans "" (Ca ne marche pas non plus...)
Je teste autre chose.
PS: Je suppose que tu ne peux pas modifier ton delimiteur
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
Sinon Pour concaténer des fichiers texte sous une session DOS :
1-) dir *.TXT >RESULTA.TXT
2-) construire un batch avec tous les fichiers souhaités avec l'éditeur de ton choix
del CONCATENE.TXT
copy CONCATENE.TXT+FICHIER1.TXT CONCATENE.TXT
copy CONCATENE.TXT+FICHIER2.TXT CONCATENE.TXT
Tu ouvres ensuite le fichier sous Excel (Fichier / Importer)
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 févr. 2006 à 12:19
Salut,
Attention il faut que le delimiteur soit un espace " "
Appelons la feuille f
Private FunctionCopieFichierDansFeuille(NomFichier)
Static NumLigne as integer
Dim It As String
NumLigne = 1
Open NomFichier For Input As #1
While Not EOF(1)
Input #1, It
f.range("A" & NumLigne).Value = Split(It, " ")(0)
f.range("B" & NumLigne).Value = Split(It, " ")(0)
f.range("C" & NumLigne).Value = Split(It, " ")(0)
NumLigne = NumLigne + 1
Wend
Close #1
End Function
Ensuite tu l'appelle le nombre de fois qu il faut en passant en parametre tes noms de fichiers;
Voila en esperant avoir pu t'aider un peu
PS: explique mieux le deuxieme point j ai pas tres bien compris
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
Vous n’avez pas trouvé la réponse que vous recherchez ?
xpmich
Messages postés62Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention11 mars 2010 24 févr. 2006 à 16:45
erreur : l'indice n'appartient pas à la sélection (0), je pense que c'est l'indice (1) qui ne va pas
c'est l'erreur affiché pour les lignes de codes suivantes :
Range("A" & NumLigne).Value = Split(It, "VbTab")(0)
Range("B" & NumLigne).Value = Split(It, "VbTab")(1)
Range("C" & NumLigne).Value = Split(It, "VbTab")(2)
de plus, la tabulation ne marche pas, voila ce que j'ai en A1
"24/02/2006***08:24:11***AQ528***En cours" ou *** est un carré
moi je voudrais
A1 24/02/2006
B1 08:24:11
C1 AQ528
D1 En cours
Je pense aussi qu'il faudrai ressortir le numéro de ligne pour pouvoir concaténer les deux fichiers !!
Call CopieFichierDansFeuille("P060224.txt")
Call CopieFichierDansFeuille("P060223.txt")
ex : de 1 à 200, le 1er fichier et de 201à 400 le second.
xpmich
Messages postés62Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention11 mars 2010 2 mars 2006 à 12:30
Salut,
Voici le code bon grâce au mix de vos messages. Je vous en remercie d'anvance.
J'utilise une fonction qui retourne le numéro de la ligne ou est rendu la fin du fichier copier.
Function CopieFichierDansFeuille(NomFichier, NumLigne As Integer) As Integer
'fonction permettant la copie des fichiers à partir de NumLigne
Dim It As String
Open NomFichier For Input As #1
While Not EOF(1)
Input #1, It
Range("A" & NumLigne).Value = Split(It, vbTab)(0)
Range("B" & NumLigne).Value = Split(It, vbTab)(1)
Range("C" & NumLigne).Value = Split(It, vbTab)(2)
Range("D" & NumLigne).Value = Split(It, vbTab)(3)
NumLigne = NumLigne + 1
CopieFichierDansFeuille = NumLigne
Wend
Close #1
End Function
neptunelle
Messages postés1Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention21 août 2007 21 août 2007 à 09:24
Bonjour,
Désolée de faire remonter un post aussi vieux mais j'ai presque le meme souci sauf que moi j'ai :
dans un dossier : 205 par exemple 247 fiches en texte séparé par des ;
J'aimerais pouvoir ouvrir les 247 fiches dans excel mais garder que la deuxieme colonne de mon fichier texte soit tout ce qui est deriere le ;