Visual Basic para Aplicaciones - parar la macro si nohay datos en archivo externo?

Life is soft - evento anual de software empresarial
 
Vista:

parar la macro si nohay datos en archivo externo?

Publicado por Israel Monreal (2 intervenciones) el 19/06/2009 18:19:04
mi problema consiste en que tengo que extraer datos de un bloc de notas, pero cuando esta vacio se produce un error, y lo que se nececita es que se revice el bloc de notas y si no tiene nada se detenga la macro de lo contrario que continue.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:parar la macro si nohay datos en archivo extern

Publicado por JuanC (565 intervenciones) el 19/06/2009 18:23:12
para detener la macro podes usar Exit Sub (procedimiento) o End
podrías poner el código para ver de qué se trata?

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parar la macro si nohay datos en archivo extern

Publicado por ISRAEL (2 intervenciones) el 19/06/2009 18:53:15
bueno el codigo no lo tengo, pero se trata de datos que se extraen de un bloc de notas con aproximadamente diez columnas, y no caben en una hoja de excel en ocaciones, esta informacion la tengo en el trabajo y no se puede poner para llevar, sin en canbio solo necesito saber si trabajo la funcion IF, o no ya que esa utiliza un escript, y funciona cuando el bloc esta vacio aparece una cuadro de dialogo que dice archivo vacio, revivizar y vuelva a intentarlo, de lo contrario continua. algo asi

IF user = "" then
msgbox archivo corrupto
Emkey f3,
Emkey f3,
msgbox revise el archivo de entrada e intente de nuevo

else
aqui lee el archivo de entrada

end if

obvimente esto no es correcto pero creo que explica que necesito.

nota: segun dice si user = a nada entonces abre ventana que diga archivo corrupto, me saca de ese sistema con f3, y dice revise el archivo de entrada e intente de nuevo, de la contrario lee el archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:parar la macro si nohay datos en archivo extern

Publicado por JuanC (565 intervenciones) el 19/06/2009 18:58:34
la verdad es que entiendo menos que antes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parar la macro si nohay datos en archivo extern

Publicado por ISRL (2 intervenciones) el 19/06/2009 19:08:16
ok me referia a como devo escribir la condicion If para lo siguinte:

Sub Macro1()
'
' Macro1 Macro
'

'
if C:Documents and SettingsxpMis documentosF5.txt = "(nada)" then
msg reviza archivo de entrada '
exit sub
else

Range("A1").Select
ActiveCell.FormulaR1C1 = ""
Range("A1").Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:Documents and SettingsxpMis documentosF5.txt", Destination:=Range _
("$A$1"))
.Name = "F5"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(4, 7, 7, 6, 10, 11, 13, 8, 6, 8, 6, 6, 8, 6, 5)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
end if
End Sub

NOTA: LA CONDICION IF SE QUE ESTA MAL PERO COMO DEVE IR.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:parar la macro si nohay datos en archivo extern

Publicado por JuanC (565 intervenciones) el 19/06/2009 19:54:57
si el problema es saber si el archivo de texto plano .txt tiene o no
datos, deberías abrirlo y leerlo como cualquier archivo, o también
podrías verificar su tamaño...
a este procedimiento lo conviertes en una función que devuelva
un valor booleano y listo...

EJ:

If Check_TXT = False Then
MsgBox "revisa archivo de entrada"
Exit Sub
Else
....
End If

Function Check_TXT() As Boolean
Dim hFile%, sFileName$, sLinea$
sFileName = "archivo.txt"
hFile = FreeFile
Open sFileName For Input Access Read As #hFile

Do While Not EOF(hFile)
Line Input #hFile, sLinea '//Lee primer línea
If Trim(sLinea) = "" Then
'//No hay nada!
Chech_TXT = False
Else
Check_TXT = True
End If
Exit Do
Loop

Close hFile
End Function

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parar la macro si nohay datos en archivo extern

Publicado por ISRL (2 intervenciones) el 19/06/2009 20:09:40
¿Y donde pongo el nombre de el bloc de notas?

Saludos de Ixtapaluca. donde es Baires
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parar la macro si nohay datos en archivo extern

Publicado por JuanC (1 intervención) el 19/06/2009 20:14:07
cómo el bloc de notas?? no sacás los datos de un archivo de texto?

Baires es Buenos Aires, Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar