Modificar macro a principiante

02/11/2004 - 19:03 por osalazarg | Informe spam
Tengo esta macro la cual antes me funcionaba bien, alguien me podria
ayudar a corregirla por favor.

Sub Descomprimir_Una_Solucion()
Dim Del_Directorio, Al_Directorio, Archivo As String, X As Integer,
Descomprime As String, EsteArchivo As String, Comando As String
Del_Directorio = Array("s:\", "t:\", "u:\")
Al_Directorio = Array("c:\sief01l", "c:\sief02vl", "c:\siefbas1")
Archivo = "RS" & Format(Date, "ddmmyy") & ".zip -d "
Descomprime = ActiveWorkbook.Path & "\unzip.exe -o "
For X = 0 To UBound(Del_Directorio)
EsteArchivo = Del_Directorio(X) & Archivo
Comando = Descomprime & EsteArchivo & Al_Directorio(X)
Shell Environ("comspec") & " /c " & Comando
Next
End Sub


pero ahora me cambiaron el nombre de los archivos y la quise modificar
asi, pero me envia error.
"Se ha producido el error '13' en tiempo de ejecucion:
No coinciden los tipos


Sub Descomprimir_3_Soluciones()
Dim Del_Directorio, Al_Directorio, Archivo As String, X As Integer,
Descomprime As String, EsteArchivo As String, Comando As String
Del_Directorio = Array("s:\", "t:\", "u:\")
Al_Directorio = Array("c:\sief01l", "c:\sief02vl", "c:\siefbas1")

Aqui me envia error

Archivo = Array("B1", "V1", "B2") & Format(Date, "ddmmyy") & ".zip -d"


Descomprime = ActiveWorkbook.Path & "\unzip.exe -o "
For X = 0 To UBound(Del_Directorio)
EsteArchivo = Del_Directorio(X) & Archivo
Comando = Descomprime & EsteArchivo & Al_Directorio(X)
Shell Environ("comspec") & " /c " & Comando
Next
End Sub

Preguntas similare

Leer las respuestas

#1 KL
02/11/2004 - 21:29 | Informe spam
Hola,

No se q es lo q quires conseguir con
Archivo = Array("B1", "V1", "B2") & Format(Date, "ddmmyy") & ".zip -d"

pero no puedes utilizar Array() para la variable Archivo por dos razones
basicas:
1. La variable Archivo esta declarada como Cadena de Texto (String) y no
como Serie (Array) en la primera linea de tu codigo.
2. No puedes mezclar serie (array) con cadena de texto (string) asi como asi

Si explicas lo q quires conseguir en esta linea quizas te podamos ayudar.

De momento he intentado adivinarlo y te pongo el codigo q igual es lo q
quieres (no lo he probado):

Sub Descomprimir_3_Soluciones()
Dim Del_Directorio, Al_Directorio, Nombre_Archivo, _
X As Integer, Descomprime As String, EsteArchivo As String, _
Comando As String
Del_Directorio = Array("s:\", "t:\", "u:\")
Al_Directorio = Array("c:\sief01l", "c:\sief02vl", "c:\siefbas1")
Nombre_Archivo = Array("B1", "V1", "B2")
Descomprime = ActiveWorkbook.Path & "\unzip.exe -o "
For X = 0 To UBound(Del_Directorio)
EsteArchivo = Del_Directorio(X) & Nombre_Archivo(X) _
& Format(Date, "ddmmyy") & ".zip -d"
Comando = Descomprime & EsteArchivo & Al_Directorio(X)
Shell Environ("comspec") & " /c " & Comando
Next
End Sub

saludos,
KL

"sago" wrote in message
news:
Mostrar la cita
#2 KL
02/11/2004 - 21:32 | Informe spam
Hola,

No se q es lo q quires conseguir con
Archivo = Array("B1", "V1", "B2") & Format(Date, "ddmmyy") & ".zip -d"

pero no puedes utilizar Array() para la variable Archivo por dos razones
basicas:
1. La variable Archivo esta declarada como Cadena de Texto (String) y no
como Serie (Array) en la primera linea de tu codigo.
2. No puedes mezclar serie (array) con cadena de texto (string) asi como asi

Si explicas lo q quires conseguir en esta linea quizas te podamos ayudar.

De momento he intentado adivinarlo y te pongo el codigo q igual es lo q
quieres (no lo he probado):

Sub Descomprimir_3_Soluciones()
Dim Del_Directorio, Al_Directorio, Nombre_Archivo, _
X As Integer, Descomprime As String, EsteArchivo As String, _
Comando As String
Del_Directorio = Array("s:\", "t:\", "u:\")
Al_Directorio = Array("c:\sief01l", "c:\sief02vl", "c:\siefbas1")
Nombre_Archivo = Array("B1", "V1", "B2")
Descomprime = ActiveWorkbook.Path & "\unzip.exe -o "
For X = 0 To UBound(Del_Directorio)
EsteArchivo = Del_Directorio(X) & Nombre_Archivo(X) _
& Format(Date, "ddmmyy") & ".zip -d"
Comando = Descomprime & EsteArchivo & Al_Directorio(X)
Shell Environ("comspec") & " /c " & Comando
Next
End Sub

saludos,
KL

"sago" wrote in message
news:
Mostrar la cita
#3 Héctor Miguel
03/11/2004 - 04:29 | Informe spam
hola, sago !

Mostrar la cita
1º como ya te lo ha comentado KL...
el error 13 'asoma' por el tipo [string] asignado y la matriz [array] con la que se 'llena' la variable 'archivo'
2º ANTES se trataba de UN SOLO [y el mismo] nombre de ARCHIVO EN TRES UBICACIONES 'distintas'
AHORA mencionas TRES [nombres de] ARCHIVOS 'diferentes'... =>pero no mencionas si...< a) cada uno de los nombres [de archivos] se corresponde con las ubicaciones de 'origen' y 'destino' o...
b) los tres archivos se encuentras [todos] en las tres ubicaciones de 'origen' y 'destino' [9 en total]
3º 'dependiendo' de cual es la necesidad 'real' [a / b] 'tendria que' modificarse la macro a...
a) incluir el nombre 'base' del archivo en las variables de 'origen' [del_directorio] y 'destino' [al_directorio]
b) agregar un bucle intermedio [fornext] para construir los tres archivos en los tres directorios [9 en total]

¿comentas?
saludos,
hector.
#4 osalazarg
03/11/2004 - 17:34 | Informe spam
Muchas gracias por ayudarme y respondeme a los dos Lo único que cambia son
las dos primeras letras del archivo, el primer archivo esta en

s:\ B2031104.zip y se necesita descompactar en c:\sief01l

el segundo archivo


t:\ V1031104.zip y se necesita descompactar en c:\sief02vl

el tercer archivo

u:\ B1031104.zip y se necesita descompactar en c:\siefbas1


a) cada uno de los nombres [de archivos] se corresponde con las ubicaciones
de 'origen' y 'destino' o...

Los archivos estan en estos directorios y van a estos directorios


Del_Directorio Al_Directorio Nombre_Archivo
Origen destino

s:\ c:\sief01l B2 & Format(Date, "ddmmyy")
t:\ c:\sief02vl V1 & Format(Date, "ddmmyy")
u:\ c:\siefbas1 B1 & Format(Date, "ddmmyy")

b) los tres archivos se encuentras [todos] en las tres ubicaciones de
'origen' y 'destino' [9 en total]

No solo cada uno en cada directorio, como se ve el la tabla de arriba

Espero haberme hecho entender y no hacerlos mas bolas, y otra vez muchas
gracias.
#5 KL
03/11/2004 - 22:43 | Informe spam
sago,

en este caso puedes utilizar el macro q te puse antes o la version mas
elegante q entiendo q proponia Hector q te expongo mas abajo:

Sub Descomprimir_3_Soluciones()
Dim Del_Directorio, Al_Directorio, X As Integer, _
Descomprime As String, EsteArchivo As String, _
Comando As String
Del_Directorio = Array("s:\B1", "t:\V1", "u:\B2")
Al_Directorio = Array("c:\sief01l", "c:\sief02vl", "c:\siefbas1")
Descomprime = ActiveWorkbook.Path & "\unzip.exe -o "
For X = 0 To UBound(Del_Directorio)
EsteArchivo = Del_Directorio(X) & Format(Date, "ddmmyy") & ".zip -d"
Comando = Descomprime & EsteArchivo & Al_Directorio(X)
Shell Environ("comspec") & " /c " & Comando
Next
End Sub

saludos,
KL


"sago" wrote in message
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida