Variable Publica

02/03/2005 - 04:03 por Fabian | Informe spam
Hola a Todos!
Es posible usar una variable perteneciente a un libro, en otro libro?
Si es posible me pudiesen decir que tipo de variable tiene que ser y donde
declararla, sino tendre que pasarla a una celda y tomarla de alli. La
variable en cuestion seria esta:
Libro1=ThisWorkbook.Name

Gracias.

Preguntas similare

Leer las respuestas

#21 Héctor Miguel
06/03/2005 - 08:07 | Informe spam
hola, Fabian !

haz una prueba con el siguiente codigo...
saludos,
hector.
=Sub Buscando()
Dim Libro As Workbook, Hoja As Worksheet
Dim LibroHallado As Workbook, HojaHallada As Worksheet
Dim Celda As Range
For Each Libro In Workbooks
If Libro.CodeName = "LibroMaestro" Then
Set LibroHallado = Libro: Exit For
End If
Next
If LibroHallado Is Nothing Then MsgBox "El LibroMaestro NO se encuentra!": Exit Sub
For Each Hoja In LibroHallado.Worksheets
If Hoja.CodeName = "Hoja1" Then
Set HojaHallada = Hoja: Exit For
End If
Next
If HojaHallada Is Nothing Then MsgBox "La Hoja1 NO se encuentra!": Exit Sub
For Each Celda In EstaHoja.[a2:a100]
' aqui va el codigo que necesitas.. '
Next
Set HojaHallada = Nothing
Set LibroHallado = Nothing
End Sub
Respuesta Responder a este mensaje
#22 Fabian
06/03/2005 - 08:11 | Informe spam
Con el entusiasmo olvide agradecerte... Gracias.
Esta logrado el objetivo con el codigo de los nombres, funciona a la
perfeccion, ante cualquier cambio de nombres en archivos o solapas no afecta
el trabajo de las macros.
No me cabe duda que este codigo es importantisimo para cualquier macro que
utilice mas de un libro, esto debido a que siempre vamos cambiando los
nombres de los archivos, y las solapas segun conveniencia.
Con respecto a los codenames voy a continuar, porque hace lo mismo pero de
otro modo.
Saludos!
Respuesta Responder a este mensaje
#23 Fabian
06/03/2005 - 08:14 | Informe spam
Ahora lo pruebo
Gracias por toda la ayuda!
"Héctor Miguel" escribió en el mensaje
news:#
hola, Fabian !

haz una prueba con el siguiente codigo...
saludos,
hector.
=> Sub Buscando()
Dim Libro As Workbook, Hoja As Worksheet
Dim LibroHallado As Workbook, HojaHallada As Worksheet
Dim Celda As Range
For Each Libro In Workbooks
If Libro.CodeName = "LibroMaestro" Then
Set LibroHallado = Libro: Exit For
End If
Next
If LibroHallado Is Nothing Then MsgBox "El LibroMaestro NO se


encuentra!": Exit Sub
For Each Hoja In LibroHallado.Worksheets
If Hoja.CodeName = "Hoja1" Then
Set HojaHallada = Hoja: Exit For
End If
Next
If HojaHallada Is Nothing Then MsgBox "La Hoja1 NO se encuentra!": Exit


Sub
For Each Celda In EstaHoja.[a2:a100]
' aqui va el codigo que necesitas.. '
Next
Set HojaHallada = Nothing
Set LibroHallado = Nothing
End Sub


Respuesta Responder a este mensaje
#24 Héctor Miguel
06/03/2005 - 08:23 | Informe spam
hola [de nuevo], Fabian ! disculpas y... 'fe de erratas' :(

donde 'dice':
For Each Celda In EstaHoja.[a2:a100]
' aqui va el codigo que necesitas.. '
Next
debe decir...
For Each Celda In HojaHallada.[a2:a100]
' aqui va el codigo que necesitas.. '
Next

[cuestion de 'cambios' al hacer las pruebas] :))
saludos,
hector.

p.d. una instruccion 'Set' equivale a 'mantener seleccionado' un objeto... [p.e.]
-> una vez 'encontrado' el libro, se establece su referencia con: Set LibroHallado = Libro
-> luego se busca ->en las hojas de dicho libro<- con: For Each Hoja In LibroHallado.Worksheets
-> una vez 'encontrada' la hoja, se establece su referencia con: Set HojaHallada = Hoja
=> a partir de este 'momento', la variable-objeto 'HojaHallada' [que es un objeto de tipo 'Worksheet']
es TAMBIEN un objeto 'perteneciente' a la coleccion de objetos 'Worksheets' ->de LibroHallado<-
por lo cual, la 'sola' referencia a la variable-objeto 'HojaHallada'...
es TAMBIEN una referencia 'completa' a su objeto 'contenedor'... es 'como decirle' [al codigo]...
HojaHallada = Workbooks("Nombre del libro hallado").Worksheets("Nombre de la hoja hallada") etc.
Respuesta Responder a este mensaje
#25 Héctor Miguel
06/03/2005 - 08:33 | Informe spam
hola, Fabian !

Con el entusiasmo olvide agradecerte... Gracias.



=> si lo hiciste... [de paso, asumo que 'corregiste mi error' :))]
te agradezco [doble] el 'feec-back' ;)

... ante cualquier cambio de nombres en archivos o solapas... este codigo es importantisimo
... con respecto a los codenames voy a continuar, porque hace lo mismo pero de otro modo.



=> solo 'anticiparte' que usando los codenames ->y referenciando los proyectos de vba<-
podria presentar 'fallas' si se modifica el nombre [real] del libro...
la referencia 'original' sera reportada como... 'perdida' :( <= OJO al hacer pruebas.

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida