Ayuda con Macro

22/07/2005 - 18:24 por osalazarg | Informe spam
Me podria ayudar por favor ya que soy principiante en macros e hice esta
macro que me copia dos archivos de un ruta a otra, y despues me abre los
archivos, el problema esta al abrir los archivos ya que si no encuentra el
primero me manda error y ya no me abre el segundo archivo, lo que necesito
es que si no existe el primero se salte al segundo y me lo abra, espero
que alguien me pueda ayudar.

Saludos.



Sub TRANSF_PROFUTB1()
Dim strArchivo As String
Const cNombreBase = "MO"
Const cNombreBase1 = "Md"
strArchivo = Format(Date, "ddmmyy")

If Dir("Y:\INVERSIONES\Archivos del Sistema\OPERACION
SOLUCIONES\PROFUTB1\" & "MO" & Format(Date, "ddmmyy") & ".txt") <> "" Then
MsgBox "LOS TRANSFERS DE SIEFORE BASICA 1 DEL DIA DE HOY " & Format(Date,
"dd mmmm yyyy") & " ESTÁN LISTOS "
Dim Archivo As String, Del_Dir_1 As String, Del_Dir_2 As String, Al_Dir
As String, Sig As Integer
Del_Dir_1 = "Y:\INVERSIONES\Archivos del Sistema\OPERACION
SOLUCIONES\PROFUTB1\"
Al_Dir = "C:\SIEFB1L\TRANSFER\"
Nom = Array("MO", "MD")
Ext = ".TXT"
Archivo = Format(Date, "ddmmyy")
If Archivo = "" Then Exit Sub
For Sig = 0 To 1
If Dir(Del_Dir_1 & Nom(Sig) & Archivo & Ext) <> "" Then FileCopy Del_Dir_1
& Nom(Sig) & Archivo & Ext, Al_Dir & Nom(Sig) & Archivo & Ext
Next


ChDir "C:\"

Application.ScreenUpdating = False
Workbooks.OpenText Filename:="C:\SIEFB1L\TRANSFER\" & cNombreBase &
strArchivo & ".TXT", Origin:=xlWindows, StartRow _
:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1),
Array(20, 2), Array( _
21, 1), Array(25, 5), Array(32, 2), Array(39, 1), Array(42, 5),
Array(50, 5), Array(58, 1) _
, Array(60, 1), Array(67, 1), Array(72, 1), Array(77, 1),
Array(89, 1), Array(101, 1), _
Array(113, 1), Array(135, 1), Array(152, 1), Array(170, 1),
Array(188, 1), Array(206, 1), _
Array(224, 1), Array(242, 1), Array(260, 1), Array(278, 1),
Array(292, 1), Array(310, 1), _
Array(328, 1), Array(346, 1), Array(364, 1), Array(371, 1),
Array(373, 1), Array(391, 1), _
Array(409, 1), Array(427, 1), Array(445, 1), Array(463, 1),
Array(481, 1), Array(503, 1), _
Array(515, 1), Array(522, 1), Array(562, 1), Array(564, 1),
Array(568, 1), Array(572, 1))
Range("A1").Select
ChDir "C:\"

Application.ScreenUpdating = False
Workbooks.OpenText Filename:="C:\SIEFB1L\TRANSFER\" & cNombreBase1 &
strArchivo & ".TXT", Origin:=xlWindows, StartRow _
:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1),
Array(4, 2), Array( _
8, 1), Array(15, 5), Array(22, 2), Array(25, 5), Array(33, 5),
Array(41, 5), Array(42, 1) _
, Array(43, 1), Array(50, 1), Array(64, 1), Array(80, 1),
Array(94, 1), Array(108, 5), _
Array(116, 1), Array(133, 5), Array(139, 1), Array(157, 1),
Array(166, 1), Array(167, 1), _
Array(172, 1), Array(180, 1), Array(198, 1), Array(216, 1),
Array(234, 1), Array(252, 1), _
Array(402, 1), Array(409, 1))
Range("A1").Select

End Sub

Preguntas similare

Leer las respuestas

#1 KL
22/07/2005 - 20:15 | Informe spam
Hola Sago,

No lo he probado, pero mira a ver si te funciona.

Saludos,
KL

Option Explicit
Sub TRANSF_PROFUTB1()
Dim Al_Dir As String, Del_Dir As String, i As Long, _
Ext As String, Campos As Variant, Nombres As Variant
Del_Dir = _
"Y:\INVERSIONES\Archivos del Sistema\OPERACION SOLUCIONES\PROFUTB1\"
Al_Dir = _
"C:\SIEFB1L\TRANSFER\"
Nombres = Array("MO", "MD")
Ext = Format(Date, "ddmmyy") & ".txt"
Campos = Array(Array(Array(0, 1), Array(20, 2), Array(21, 1), _
Array(25, 5), Array(32, 2), Array(39, 1), Array(42, 5), _
Array(50, 5), Array(58, 1), Array(60, 1), Array(67, 1), _
Array(72, 1), Array(77, 1), Array(89, 1), Array(101, 1), _
Array(113, 1), Array(135, 1), Array(152, 1), Array(170, 1), _
Array(188, 1), Array(206, 1), Array(224, 1), Array(242, 1), _
Array(260, 1), Array(278, 1), Array(292, 1), Array(310, 1), _
Array(328, 1), Array(346, 1), Array(364, 1), Array(371, 1), _
Array(373, 1), Array(391, 1), Array(409, 1), Array(427, 1), _
Array(445, 1), Array(463, 1), Array(481, 1), Array(503, 1), _
Array(515, 1), Array(522, 1), Array(562, 1), Array(564, 1), _
Array(568, 1), Array(572, 1)), _
Array(Array(0, 1), Array(4, 2), Array(8, 1), Array(15, 5), _
Array(22, 2), Array(25, 5), Array(33, 5), Array(41, 5), _
Array(42, 1), Array(43, 1), Array(50, 1), Array(64, 1), _
Array(80, 1), Array(94, 1), Array(108, 5), Array(116, 1), _
Array(133, 5), Array(139, 1), Array(157, 1), Array(166, 1), _
Array(167, 1), Array(172, 1), Array(180, 1), Array(198, 1), _
Array(216, 1), Array(234, 1), Array(252, 1), Array(402, 1), _
Array(409, 1)))

For i = LBound(Nombres) To UBound(Nombres)
If Dir(Del_Dir & Nombres(i) & Ext) <> "" Then
MsgBox "LOS TRANSFERS DE SIEFORE BASICA 1 DEL DIA DE HOY " _
& Format(Date, "dd mmmm yyyy") & " EST?N LISTOS"
FileCopy Del_Dir & Nombres(i) & Ext, Al_Dir & Nombres(i) & Ext
ChDir Al_Dir
Application.ScreenUpdating = False
Workbooks.OpenText _
Filename:=Al_Dir & Nombres(i) & Ext, _
Origin:=xlWindows, _
StartRow:=1, DataType:=xlFixedWidth, _
FieldInfo:=Campos(i)
End If
Next i
End Sub
Respuesta Responder a este mensaje
#2 hector barajas
23/07/2005 - 03:51 | Informe spam
No se si fiuncione, pero tengo entendido que si pones esta linea al inicio
de tu macro, cuando encuentra un error no te saca ningun mensaje y hace que
se ejecute la siguiente linea


on error resume next

"KL" escribió en el mensaje
news:%
Hola Sago,

No lo he probado, pero mira a ver si te funciona.

Saludos,
KL

Option Explicit
Sub TRANSF_PROFUTB1()
Dim Al_Dir As String, Del_Dir As String, i As Long, _
Ext As String, Campos As Variant, Nombres As Variant
Del_Dir = _
"Y:\INVERSIONES\Archivos del Sistema\OPERACION


SOLUCIONES\PROFUTB1\"
Al_Dir = _
"C:\SIEFB1L\TRANSFER\"
Nombres = Array("MO", "MD")
Ext = Format(Date, "ddmmyy") & ".txt"
Campos = Array(Array(Array(0, 1), Array(20, 2), Array(21, 1), _
Array(25, 5), Array(32, 2), Array(39, 1), Array(42, 5), _
Array(50, 5), Array(58, 1), Array(60, 1), Array(67, 1), _
Array(72, 1), Array(77, 1), Array(89, 1), Array(101, 1), _
Array(113, 1), Array(135, 1), Array(152, 1), Array(170, 1), _
Array(188, 1), Array(206, 1), Array(224, 1), Array(242, 1), _
Array(260, 1), Array(278, 1), Array(292, 1), Array(310, 1), _
Array(328, 1), Array(346, 1), Array(364, 1), Array(371, 1), _
Array(373, 1), Array(391, 1), Array(409, 1), Array(427, 1), _
Array(445, 1), Array(463, 1), Array(481, 1), Array(503, 1), _
Array(515, 1), Array(522, 1), Array(562, 1), Array(564, 1), _
Array(568, 1), Array(572, 1)), _
Array(Array(0, 1), Array(4, 2), Array(8, 1), Array(15, 5), _
Array(22, 2), Array(25, 5), Array(33, 5), Array(41, 5), _
Array(42, 1), Array(43, 1), Array(50, 1), Array(64, 1), _
Array(80, 1), Array(94, 1), Array(108, 5), Array(116, 1), _
Array(133, 5), Array(139, 1), Array(157, 1), Array(166, 1), _
Array(167, 1), Array(172, 1), Array(180, 1), Array(198, 1), _
Array(216, 1), Array(234, 1), Array(252, 1), Array(402, 1), _
Array(409, 1)))

For i = LBound(Nombres) To UBound(Nombres)
If Dir(Del_Dir & Nombres(i) & Ext) <> "" Then
MsgBox "LOS TRANSFERS DE SIEFORE BASICA 1 DEL DIA DE HOY " _
& Format(Date, "dd mmmm yyyy") & " EST?N LISTOS"
FileCopy Del_Dir & Nombres(i) & Ext, Al_Dir & Nombres(i) & Ext
ChDir Al_Dir
Application.ScreenUpdating = False
Workbooks.OpenText _
Filename:=Al_Dir & Nombres(i) & Ext, _
Origin:=xlWindows, _
StartRow:=1, DataType:=xlFixedWidth, _
FieldInfo:=Campos(i)
End If
Next i
End Sub


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida