Saltar al contenido

Tengo.


Recommended Posts

publicado

Hola a tod@s.

Tengo libro con 50 hojas.

Sub OcultarExceptoActiva() Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets If Ws.Name <> ActiveSheet.Name Then Ws.Visible = xlSheetHidden Next Ws End Sub

Hace lo que dice. Pero el problema está en que no obedece a sus vínculos.

¿Se podría solucionar?

Agradecido de antemano.

publicado

Si te refieres a que la hoja activa tiene objetos con vínculos a las hojas que se han ocultado, no podrás por ese mismo detalle. Los vínculos no te pueden llevar a una hoja oculta.

Tienes que modificar un poco tu sentencia a xlSheetVisible antes.

publicado

Hola Israel.

Si, claro me refiero a los que dices.

No creo que sea insoslayable el problema.

Tiene que haber alguna forma/manera , por eso pregunto.

Si pongo = xlVisible las hojas no se ocultarán.

Muchas gracias por todo.

 

 

publicado

Hola.

Lo he intentado de mil maneras y no lo consigo.

Como puedo abrir el libro en la última hoja abierta, con todas las demás ocultas.

Y que funcionen los hipervínculos a cualquier otra hoja.

¿Es posible?

Adjunto libro muestra.

MUCHISIMAS GRACIAS.

Libro1.xlsm

publicado

Estimado @Pedro Alonso ya has hecho esa pregunta y nuevamente se te dice: No hay forma de hacerlo como deseas, a través de vínculos no se puede mostrar una hoja ya oculta, necesariamente también tienes que mostrarlas por macros para lo que los vínculos creados no te serán útiles. No se trata solo de creer algo y que por creer pues se va a poder.

publicado

Bon día @Pedro Alonso

hace 31 minutos , Pedro Alonso dijo:

Podrías haber tratado de saber porqué mi reiteración, y no abroncarme.

no veo donde te abronco.

hace 33 minutos , Pedro Alonso dijo:

Creus que estic perdent el temps si hagués solucionat la qüestió?

pues para no hacer perder el tiempo a los demás , lo primero que tenias haber echo es poner un titulo acorde con tu necesidad lo segundo una buena descripción de tu problema y lo mas importante un archivo donde tienes el problema.

hace 35 minutos , Pedro Alonso dijo:

Me parece que pecas un poco de engrehído.

desde luego el que no va a perder más tiempo con tus problemas soy yo.

salutacions i que tinguis un bon dia

 

publicado
Cita

Y que funcionen los hipervínculos a cualquier otra hoja.

Se te ha dicho, por activa y por pasiva, que lo que pides no es posible.

Los vínculos solo funcionan con hojas visibles. ¿Que parte no entiendes?

Por cierto, lo de COLLONS sobra, ¡Maleducado!

publicado

Toni, puede que te sirva.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
   'Updateby Extendoffice
    Application.ScreenUpdating = False
    Dim strLinkSheet As String
    If InStr(Target.Parent, "!") > 0 Then
        strLinkSheet = Left(Target.Parent, InStr(1, Target.Parent, "!") - 1)
    Else
        strLinkSheet = Target.Parent
    End If
    Sheets(strLinkSheet).Visible = True
    Sheets(strLinkSheet).Select
    Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_Activate()
    On Error Resume Next
    Sheets(ActiveCell.Value2).Visible = False
End Sub
 

Bye.

publicado

Hola @Pedro Alonso

De manera sincera me da gusto que hayas encontrado una solución a tu cuestionamiento buscando por la WEB. Puntualizando un poco las indicaciones mostradas refuerzan lo que hemos venido recomendándote.

Lo que encontraste:

Captura.jpg

Lo que hemos comentado:

En 23/2/2023 at 17:25 , Israel Cassales dijo:

Tienes que modificar un poco tu sentencia a xlSheetVisible antes.

 

En 23/2/2023 at 19:16 , Abraham Valencia dijo:

necesariamente también tienes que mostrarlas por macros para lo que los vínculos creados no te serán útiles.

 

En 24/2/2023 at 3:04 , Antoni dijo:

Los vínculos solo funcionan con hojas visibles. ¿Que parte no entiendes?

No se trata de tomar posturas ni hacerlo algo personal, pero das la impresión que lo encontraste y lo primero que hiciste fue venir a señalar a @Antoni y por añadidura a los demás participantes porque lo consideras nuestro error.

hace 22 minutos , Pedro Alonso dijo:

Estas equivocado. Si pueden funcionar.

Sí, pueden funcionar de la forma en la que hemos venido (repito) sugiriendo.

Aunque sería bueno dedicarle un poco de tiempo a leer todo lo que contiene lo que nos mandaste:

Captura.jpg

 

En resumen la respuesta es la misma, NO PUEDES SEGUIR UN HIPERVINCULO  EN UNA HOJA OCULTA, debes hacer una sentencia previa por VBA. Al día de hoy es la única opción, no se trata de egos ni nada por el estilo.

La experiencia nos muestra que uno es responsable de lo que escribe y dice, no de cómo lo sientan o entiendan los demás. Con este mensaje cierro mi participación en este tema agregando que aporta algo bueno que es indexar más comentarios para que lleguen más usuarios a este foro que es de los mejores que hay.

Saludines.

 

publicado
hace 38 minutos , Pedro Alonso dijo:

 

Estas equivocado. Si pueden funcionar.

Estimado, por favor, un poco más de lectura si vas a usar VBA. Ya Israel lo dijo ampliamente: No se puede como tú creías, se puede como te decíamos.

publicado

Tengo una duda @JSDJSD como haces esos gif! deberías compartir esos tips de como haces los mini videos y estas otras cosas.

Saludos 

 

publicado

Hola José.

No se a que te refieres con gif!. Soy nuevo en esto, tengo 70, y como jubilado he adoptado EXCEL como hoby.

No he tenido, tengo, ni tendré , reparo en compartir mis poquísimos conocimientos. 

Dime, o ponme un ejemplo a que te refieres.

SALUDOS

publicado
hace 7 horas, Pedro Alonso dijo:

Hola José.

No se a que te refieres con gif!. Soy nuevo en esto, tengo 70, y como jubilado he adoptado EXCEL como hoby.

No he tenido, tengo, ni tendré , reparo en compartir mis poquísimos conocimientos. 

Dime, o ponme un ejemplo a que te refieres.

SALUDOS

Definición de GIF

Solo hay que buscarlo en Google.

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.