hojala y me puean ayudar esta macro me lleva a la hoja de un libro segun lo que yoescriba en la celda A1
como hago para que me funcione en toda la columna A:A
Saludos. y buen dia
Private Sub Worksheet_Change(ByVal Target As Range)
'cuando la celda seleccionada sea la celda A1 de la hoja activa
If Target.Address = Range("A1").Address Then
'entonces activaremos/seleccionaremos la hoja del libro
'cuyo nombre o valor refleje la celda activa.
Sheets(Target.Value).Select
End If
End Sub
Estás comparando la celda (o el rango) que cambia, Target, con la celda A1
utiliza en su lugar la columna del rango Target para ver si está en la primera columna.
If Target.Column = 1 Then...
------
Ya sé Excel, pero necesito más.
si funciona en cualquier celda de la columna a pero solo en la celda activa ,la idea es que busque lo que tongo enlistado en la columna A:A en el mismo libro las hojas de mi libro tienen el missmo nombre qu en listo
anexo el archio de ejemplo :
Mil disculpas por mi ignoracia pero aveces no se como explicarme
Saludos..
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
sheets(Target.Value).Select
PrintOut
End If
End Sub
Sub inprimir()
Dim hoja As Worksheet
For Each hoja In ActiveWorkbook.Worksheets
'aquí lo que quieras hacer con la hoja, por ejemplo imprimirla
hoja.PrintOut
Next
End Sub
varias observaciones:
Primero: al utilizar el evento Change de la hoja esto se está ejecutando continuamente, cada vez que cambia una celda de la primera columna.
Igual tu macro debe ejecutarse desde otro lado, por ejemplo desde un botón o algo así, para que imprima las hojas sólo cuando tú se lo digas.
Segundo: Para imprimir una hoja no hace falta seleccionarla antes
es decir que en vez de
Sheets(nombredelahoja).Select 'seleccionar la hoja
PrintOut 'imprimir la hoja
Puedes hacerlo todo en un sólo paso
Sheets(nombredelahoja).PrintOut 'imprime la hoja sin seleccionarla
Tercero: bucle para imprimir recorrer todas las celdas de la columna A hasta encontrar una vacía, y que imprima las hojas que se llaman como lo que ponga en cada celda
Podría ser algo así:
Sub imprime_hojas_en_columna_A()
Range("A1").Select
Do Until IsEmpty(ActiveCell)
Sheets(ActiveCell.Value).PrintOut
ActiveCell.Offset(1, 0).Select 'voy a la celda siguiente
Loop
End Sub
------
Ya sé Excel, pero necesito más.
buen dia
muchas gracias , exactamente eso es lo que queria que hiciera la macro,,el que save save
esto me va afacilitar las inpresiones de varios formatos que me solicitan a menudo por medio de un listado
,,solo por ultimo a esta macro como le diria que se detenga hasta que encuentre mas de 3 celdas vacias ...
Saludos......
Bendicioenes para Ud. su Fam..
Bueno, pues para que se ejecute hasta que haya tres celdas vacías, habría qeu cambiar la condición del Loop
Añade un contador para contar las celdas vacías
si la celda no está vacía, imprimes la hoja (y pones el contador de celdas vacías a cero)
si está vacía, aumentas el contador de celdas vacías
podría ser algo así:
Sub imprime_hojas_en_columna_A()
Dim contadorceldasvacias
Range("A1").Select
contadorceldasvacias = 0
Do Until contadorceldasvacias >= 3
If IsEmpty(ActiveCell) Then
contadorceldasvacias = contadorceldasvacias + 1
Else
Sheets(ActiveCell.Value).PrintOut
End If
ActiveCell.Offset(1, 0).Select 'voy a la celda siguiente
Loop
End Sub
------
Ya sé Excel, pero necesito más.
Exelente mil gracias sabia que podia contar con Ud...