Como mejorar programa
Publicado por Richard (43 intervenciones) el 16/03/2008 23:15:23
He hecho un programa que lo veo muy poco sofisticado que lee los datos de la "hoja1" y luego los escribe linea por linea en un archivo de texto ("datos.txt).
Como puedo mejorar este programa? Se podrá utilizar un for ,,, next definiendo las variables prod, cant, valr como prod(i), cant(i),valr(i) y que escriba los datos en el archivo de texto conservando la escritura de linea por linea?
Este es el programa:
Sub guardatos1()
Dim a(1000, 100)
Worksheets("Hoja1").Select
nfact = Range("b3").Value
Open "d:datos.txt" For Output As 1
For i = 1 To nfact + 2
nitems = Cells(i + 1, 1)
fact = Cells(i + 1, 2)
valort = Cells(i + 1, 3)
stat = Cells(i + 1, 4)
mesa = Cells(i + 1, 5)
mesero = Cells(i + 1, 6)
cliente = Cells(i + 1, 7)
fechin = Cells(i + 1, 8)
fechfin = Cells(i + 1, 9)
prod1 = Cells(i + 1, 10)
cant1 = Cells(i + 1, 11)
valr1 = Cells(i + 1, 12)
prod2 = Cells(i + 1, 13)
cant2 = Cells(i + 1, 14)
valr2 = Cells(i + 1, 15)
prod3 = Cells(i + 1, 16)
cant3 = Cells(i + 1, 17)
valr3 = Cells(i + 1, 18)
prod4 = Cells(i + 1, 19)
cant4 = Cells(i + 1, 20)
valr4 = Cells(i + 1, 21)
prod5 = Cells(i + 1, 22)
cant5 = Cells(i + 1, 23)
valr5 = Cells(i + 1, 24)
prod6 = Cells(i + 1, 25)
cant6 = Cells(i + 1, 26)
valr6 = Cells(i + 1, 27)
prod7 = Cells(i + 1, 28)
cant7 = Cells(i + 1, 29)
valr7 = Cells(i + 1, 30)
prod8 = Cells(i + 1, 31)
cant8 = Cells(i + 1, 32)
valr8 = Cells(i + 1, 33)
prod9 = Cells(i + 1, 34)
cant9 = Cells(i + 1, 35)
valr9 = Cells(i + 1, 36)
prod10 = Cells(i + 1, 37)
cant10 = Cells(i + 1, 38)
valr10 = Cells(i + 1, 39)
prod11 = Cells(i + 1, 40)
cant11 = Cells(i + 1, 41)
valr11 = Cells(i + 1, 42)
prod12 = Cells(i + 1, 43)
cant12 = Cells(i + 1, 44)
valr12 = Cells(i + 1, 45)
prod13 = Cells(i + 1, 46)
cant13 = Cells(i + 1, 47)
valr13 = Cells(i + 1, 48)
prod14 = Cells(i + 1, 49)
cant14 = Cells(i + 1, 50)
valr14 = Cells(i + 1, 51)
prod15 = Cells(i + 1, 52)
cant15 = Cells(i + 1, 53)
valr15 = Cells(i + 1, 54)
prod16 = Cells(i + 1, 55)
cant16 = Cells(i + 1, 56)
valr16 = Cells(i + 1, 57)
prod17 = Cells(i + 1, 58)
cant17 = Cells(i + 1, 59)
valr17 = Cells(i + 1, 60)
prod18 = Cells(i + 1, 61)
cant18 = Cells(i + 1, 62)
valr18 = Cells(i + 1, 63)
prod19 = Cells(i + 1, 64)
cant19 = Cells(i + 1, 65)
valr19 = Cells(i + 1, 66)
prod20 = Cells(i + 1, 67)
cant20 = Cells(i + 1, 68)
valr20 = Cells(i + 1, 69)
Write #1, nitems, fact, valort, stat, mesa, mesero, cliente, fechin, fechfin, prod1, cant1, valr1, prod2, cant2, valr2, prod3, cant3, valr3, prod4, cant4, valr4, prod5, cant5, valr5, prod6, cant6, valr6, prod7, cant7, valr7, prod8, cant8, valr8, prod9, cant9, valr9, prod10, cant10, valr10, prod11, cant11, valr11, prod12, cant12, valr12, prod13, cant13, valr13, prod14, cant14, valr14, prod15, cant15, valr15, prod16, cant16, valr16, prod17, cant17, valr17, prod18, cant18, valr18, prod19, cant19, valr19, prod20, cant20, valr20
Next i
Close #1
End Sub
Agradezco cualquier ayuda.
Richard desde Colombia
Como puedo mejorar este programa? Se podrá utilizar un for ,,, next definiendo las variables prod, cant, valr como prod(i), cant(i),valr(i) y que escriba los datos en el archivo de texto conservando la escritura de linea por linea?
Este es el programa:
Sub guardatos1()
Dim a(1000, 100)
Worksheets("Hoja1").Select
nfact = Range("b3").Value
Open "d:datos.txt" For Output As 1
For i = 1 To nfact + 2
nitems = Cells(i + 1, 1)
fact = Cells(i + 1, 2)
valort = Cells(i + 1, 3)
stat = Cells(i + 1, 4)
mesa = Cells(i + 1, 5)
mesero = Cells(i + 1, 6)
cliente = Cells(i + 1, 7)
fechin = Cells(i + 1, 8)
fechfin = Cells(i + 1, 9)
prod1 = Cells(i + 1, 10)
cant1 = Cells(i + 1, 11)
valr1 = Cells(i + 1, 12)
prod2 = Cells(i + 1, 13)
cant2 = Cells(i + 1, 14)
valr2 = Cells(i + 1, 15)
prod3 = Cells(i + 1, 16)
cant3 = Cells(i + 1, 17)
valr3 = Cells(i + 1, 18)
prod4 = Cells(i + 1, 19)
cant4 = Cells(i + 1, 20)
valr4 = Cells(i + 1, 21)
prod5 = Cells(i + 1, 22)
cant5 = Cells(i + 1, 23)
valr5 = Cells(i + 1, 24)
prod6 = Cells(i + 1, 25)
cant6 = Cells(i + 1, 26)
valr6 = Cells(i + 1, 27)
prod7 = Cells(i + 1, 28)
cant7 = Cells(i + 1, 29)
valr7 = Cells(i + 1, 30)
prod8 = Cells(i + 1, 31)
cant8 = Cells(i + 1, 32)
valr8 = Cells(i + 1, 33)
prod9 = Cells(i + 1, 34)
cant9 = Cells(i + 1, 35)
valr9 = Cells(i + 1, 36)
prod10 = Cells(i + 1, 37)
cant10 = Cells(i + 1, 38)
valr10 = Cells(i + 1, 39)
prod11 = Cells(i + 1, 40)
cant11 = Cells(i + 1, 41)
valr11 = Cells(i + 1, 42)
prod12 = Cells(i + 1, 43)
cant12 = Cells(i + 1, 44)
valr12 = Cells(i + 1, 45)
prod13 = Cells(i + 1, 46)
cant13 = Cells(i + 1, 47)
valr13 = Cells(i + 1, 48)
prod14 = Cells(i + 1, 49)
cant14 = Cells(i + 1, 50)
valr14 = Cells(i + 1, 51)
prod15 = Cells(i + 1, 52)
cant15 = Cells(i + 1, 53)
valr15 = Cells(i + 1, 54)
prod16 = Cells(i + 1, 55)
cant16 = Cells(i + 1, 56)
valr16 = Cells(i + 1, 57)
prod17 = Cells(i + 1, 58)
cant17 = Cells(i + 1, 59)
valr17 = Cells(i + 1, 60)
prod18 = Cells(i + 1, 61)
cant18 = Cells(i + 1, 62)
valr18 = Cells(i + 1, 63)
prod19 = Cells(i + 1, 64)
cant19 = Cells(i + 1, 65)
valr19 = Cells(i + 1, 66)
prod20 = Cells(i + 1, 67)
cant20 = Cells(i + 1, 68)
valr20 = Cells(i + 1, 69)
Write #1, nitems, fact, valort, stat, mesa, mesero, cliente, fechin, fechfin, prod1, cant1, valr1, prod2, cant2, valr2, prod3, cant3, valr3, prod4, cant4, valr4, prod5, cant5, valr5, prod6, cant6, valr6, prod7, cant7, valr7, prod8, cant8, valr8, prod9, cant9, valr9, prod10, cant10, valr10, prod11, cant11, valr11, prod12, cant12, valr12, prod13, cant13, valr13, prod14, cant14, valr14, prod15, cant15, valr15, prod16, cant16, valr16, prod17, cant17, valr17, prod18, cant18, valr18, prod19, cant19, valr19, prod20, cant20, valr20
Next i
Close #1
End Sub
Agradezco cualquier ayuda.
Richard desde Colombia
Valora esta pregunta


0