Buscar informacion de archivo y traerla a un MsgBox

23/01/2004 - 20:42 por osalazarg | Informe spam
Buenas tardes, alguien me podria ayudar por favor, ya que soy principiante
en macros en excel, y necesito ayuda para hacer lo siguiente:

Diario abro cada uno de los archivos de abajo y checo en determinado
espacio si la información que envio este correcta, antes de enviarlos por
mail, estos archivos van cambiando de fecha aaammdd, pero el archivo que
pongo el dia de hoy debe tener la fecha de mañana, y el de mañana debe
tener la fecha de pasado mañana, en pocas palabras la fecha del archivo
que se checa es del dia siguiente habil, nota: debe ser el dia habil, ya
que sabado ni domingo enviamos esos archivos, sino hasta el lunes que es
habil.

20040121.071
20040121.062
20040121.124
20040121.125

La información que necesito consultar esta en la linea 122, del espacio
154 al 160 y de la linea 122 del espacio 175 al 178, no se si se podria
hacer mediante un MsgBox, que me pusiera un titulo por cada concepto
consultado.

Si alguien me podria ayudar o enviarme un ejemplo se lo agradeceria mucho.
Gracias por anticipado.
Saludos.








Mensaje enviado desde http://grupos.buscadoc.org

 

Leer las respuestas

#1 Héctor Miguel
29/01/2004 - 02:56 | Informe spam
hola, oscar !

Diario abro ... archivos ... y checo ... informacion que ... este correcta, antes de enviarlos por mail
... van cambiando de fecha aaammdd, pero el ... que pongo ... hoy debe tener la fecha de mañana
... el de mañana debe tener la fecha de pasado mañana
... la fecha del archivo que se checa es del dia siguiente habil ... ni domingo enviamos esos archivos [...]
La informacion ... esta en la linea 122 ... espacio 154 al 160 y ... espacio 175 al 178
... hacer ... un MsgBox, que me pusiera un titulo por cada concepto consultado.



si entiendo 'bien', los archivos YA estan en la pc CON la fecha del siguiente dia habil [???]
1.- para 'obtener' el siguiente dia habil [con el formato 'aaaammdd'] te sugiero una funcion personalizada
=> si los archivos tienen la fecha de hoy [fecha EN el sistema al 'hacer la consulta] ...
cambia en la macro la 'apertura de archivos' CON esa variable A la variable 'del dia de hoy' <2.- si quieres que el 'MsgBox' te muestre 'el contenido' [en lugar de la 'verificacion'] de 'esos' campos ...
sustituye la 'creacion' del mensaje ['entre' las lineas =>If L-N = Linea Then<= y => Verificado = True<=] por:
Mensaje = Mensaje & _
Mid(Temp, Sec1P1, Len(Secc1OK)) & String(2, vbTab) & _
Mid(Temp, Sec2P1, Len(Secc2OK)) & vbCr
3.- [probablemente] surgiran algunas dudas [por 'mi interpretacion' de tus objetivos]
[o algunos 'imponderables' que no alcance a 'prevenir'] :((

¿comentas?
saludos,
hector.
_____ en un modulo de codigo 'normal' _____
' constantes publicas [para hacerlo 'facil de modificar'] '
Public Const Linea As Integer = 122 ' la linea donde se buscara '
Public Const Sec1P1 As Integer = 154 ' la posicion inicial de la seccion 1 '
Public Const Sec2P1 As Integer = 175 ' la posicion inicial de la seccin 2 '
Public Const Secc1OK As String = "Secc1OK" ' EL TEXTO que se debiera encontrar en la seccion 1 '
Public Const Secc2OK As String = "S2OK" ' EL TEXTO que se debiera encontrar en la seccion 2 '
Public Const Directorio As String = "C:\Mis documentos\" ' el directorio donde 'estan' los archivos '

' la funcion para 'obtener' el siguiente dia habil [en formato 'aaaammdd'] '
Private Function BuscarSigDiaHabil(ByVal Fecha As Date) As String
Dim DiaDeHoy As String
DiaDeHoy = StrConv(Format(Date, "ddd"), vbLowerCase)
Select Case DiaDeHoy
Case "vie", "fri": BuscarSigDiaHabil = Format(Date + 3, "yyyymmdd")
Case "sáb", "sab", "sat": BuscarSigDiaHabil = Format(Date + 2, "yyyymmdd")
Case Else: BuscarSigDiaHabil = Format(Date + 1, "yyyymmdd")
End Select
End Function

' el procedimiento para 'extraer' la informacion y 'ponerla' en un MsgBox '
Sub Verificando_Informacion()
Dim ArchivosDeDatos As Variant, FechaDeHoy As String, SigDiaHabil As String, _
Sig As Integer, Archivo As Integer, L_n As Integer, Verificado As Boolean, _
Temp As String, S1_Tmp As String, S2_Tmp As String, Mensaje As String
ArchivosDeDatos = Array(".062", ".071", ".124", ".125") ' las EXTensiones de los archivos '
FechaDeHoy = Format(Date, "yyyymmdd") ' el nombre-fecha de los archivos SI fecha de hoy '
SigDiaHabil = BuscarSigDiaHabil(Date) ' el nombre-fecha de los archivos SI fecha siguiente dia habil '
Mensaje = "Archivo" & vbTab & "Sección 1" & vbTab & "Sección 2" & vbCr
For Sig = 0 To UBound(ArchivosDeDatos)
Archivo = FreeFile
Verificado = False
Mensaje = Mensaje & ArchivosDeDatos(Sig) & vbTab
L_n = 1
Open Directorio & SigDiaHabil & ArchivosDeDatos(Sig) For Input As #Archivo
Do While Not EOF(Archivo)
Line Input #Archivo, Temp
If L_n = Linea Then
S1_Tmp = Mid(Temp, Sec1P1, Len(Secc1OK))
S2_Tmp = Mid(Temp, Sec2P1, Len(Secc2OK))
If S1_Tmp = Secc1OK _
Then Mensaje = Mensaje & "Es Correcta" & vbTab _
Else Mensaje = Mensaje & "Incorrecta !!!" & vbTab
If S2_Tmp = Secc2OK _
Then Mensaje = Mensaje & "Es Correcta" & vbCr _
Else Mensaje = Mensaje & "Incorrecta !!!" & vbCr
Verificado = True
Exit Do
End If
L_n = L_n + 1
Loop
If Not Verificado Then Mensaje = Mensaje & "NO llega a la línea " & Linea & vbCr
Close Archivo
Next
MsgBox Mensaje & "¡ Proceso finalizado !!!", vbInformation, _
"Revisión de archivos del " & FechaDeHoy
End Sub

Preguntas similares