hola que tal , primero que nada muchas gracias por su tiempo, y despues me gustaria comentarles que no se nada de VB y estoy haciendo un pequeño codigo que obtiene valores de otros archivos de excel que estan cerrados,
la estructura del excel es la siguiente
2.xlsx contiene la informacion deseada en la celda "A2" asi mismo en 3.xlsx y 4.xlsx
mi codigo esta asi :
Sub macro()
i = 4
j = 0
esta linea dice que se ejecute el bucle hasta que encuentre una celda sin valor
Do While Cells(i, 1) <> ""
esta es la que me esta fallando.me parece que es por que no toma el valor de Cells(i, 1).Value como un string cuando se lo paso al siguiente trozo de codigo
Const ruta As String = Cells(i, 1).Value
aqui abrimos el archivo al que le sacaremos la informacion.
Workbooks.Open Filename:=ruta
aqui guardamos en una variable el valor de la celda que necesitamos del archivo que acabamos de abrir, ya que lo cerraremos
mivariable = Range("A2").Value
aqui cerramos el archivo y no guardamos los cambios
ActiveWindow.Close SaveChanges:=False
aqui grabamos en B4 los datos de ArchivoCerrado("A2") y "j" hace que la proxima vez que el bucle se repita escriba el valor en la celda de abajo.
Range("b4").Offset(j, 0).Select
ActiveCell.FormulaR1C1 = mivariable
aumentamos en 1 a "i" para que ya no busque la ruta de la celda A4 sino que busque en la celda A5
i = i + 1
j = j + 1
mivariable = "";
Loop
End Sub
cuando lo ejecuto me tira el siguiente error : " can´t execute code in break mode"
tengo la leve sospecha que el problema esta aqui Const ruta As String = Cells(i, 1).Value pero por mas que busque no encontre solucion
alguien sabe como puedo arreglarlo ?
espero haberme explicado. muchas gracias desde ya .
saludos