fusion de fichier - VB/VBA/VBS - Programmation
Marsh Posté le 06-03-2007 à 19:37:03
au debut du code L et S ils doivent être vides ?! ( c'est bien une question et non un conseil )
Marsh Posté le 06-03-2007 à 20:26:51
lors de leur déclaration elle sont vides elle seront remplis au fur et a mesur lors de la lecture des fichiers
Marsh Posté le 06-03-2007 à 21:51:43
Bonsoir,
Ta sortie sur les EOF n'est pas idéale, le fichier le plus long ne voit jamais ses dernières données transmises.
Voici une voie à explorer:
Fins=false
finL=false
Line Input #1, L
si eof(1) finL =true
Line Input #2, S
si eof(2) finS =true
tant que non (finL ET finS)
si finL
Print #3, S
Line Input #2, S
si eof(2) finS =true
sinon si finS
Print #3, L
Line Input #1, L
si eof(1) finL =true
sinon
si L>=S..............utiliser tes srtcomp....
Print #3, S
Line Input #2, S
si eof(2) finS =true
sinon
Print #3, L
Line Input #1, L
si eof(1) finL =true
fin tant que
Cordialement
Marsh Posté le 07-03-2007 à 17:26:28
salu
j'ai trouvé une solution qui ouvrir tes fichiers .txt en .xls
à la fin tu obtiens le fichiers etudiant classé.txt
si tu veux tester mon code il te faut
'au début tu es dans zouba.xls
'il te faut temp.xls et f1.txt et f2.txt sur C:\
'f1 et f2 representant tes fichiers d'éleves à triers
Sub Macro1()
Workbooks.Open Filename:="C:\temp.xls"
Workbooks("temp.xls" ).Activate
Workbooks.OpenText Filename:= _
"C:\f1.txt", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:= _
"C:\f1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
nbl1 = Range("a6555" ).End(xlUp).Row
Range(Cells(1, 1), Cells(nbl1, 1)).Select
Selection.Copy
Windows("temp.xls" ).Activate
Range("A1" ).Select
ActiveSheet.Paste
nbl2 = Range("a6555" ).End(xlUp).Row + 1
Workbooks.OpenText Filename:= _
"C:\f2.txt", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:= _
"C:\f2.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
nbl3 = Range("a6555" ).End(xlUp).Row
Range(Cells(1, 1), Cells(nbl3, 1)).Select
Selection.Copy
Windows("temp.xls" ).Activate
Cells(nbl2, 1).Select
ActiveSheet.Paste
nbl4 = Range("a6555" ).End(xlUp).Row
Workbooks("f1.xls" ).Close savechanges:=False
Workbooks("f2.xls" ).Close savechanges:=False
Range("A1" ).Select
Range(Cells(1, 1), Cells(nbl4, 1)).Sort Key1:=Range("A1" ), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\etudiantclassé.txt", FileFormat:=xlText _
, CreateBackup:=False
Workbooks("etudiantclassé.txt" ).Close savechanges = True
DisplayAlerts = True
End Sub
sinon tu en ais où ? vu que tu as d'autres topics
a+
Marsh Posté le 06-03-2007 à 19:07:50
slt
je veux faire la fusion de deux fichiers textes qui contiennent les noms des étudiant triés par nom et les mettre dans un autre fichier trié aussi
j'ai fait ceci mais je ne sais pa pkoi ca ne marche pa ,please help c'est urgent
Private Sub cmdFusionner_Click()
Open "C:\Fich1.txt" For Input As #1
Open "C:\Fich2.txt" For Input As #2
Do While Not EOF(1) And Not EOF(2)
If StrComp(L, S, vbTextCompare) <= 0 Then
Print #3, L
'Line Input #1, L
ElseIf StrComp(L, S, vbTextCompare) > 0 Then
Print #3, S
'Line Input #2, S
End If
Loop
close...