Integrar macros, proteger y compartir libro, y color de celda

Para Elsa:

Hola Elsa, nuevamente molestándote estoy tratando de incorporar esta macros con la anterior que me ayudaste a hacer (adjunto código de la anterior), Si es posible me ayudarías a saber como poner el color gris a las celdas que se protegen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
    'se desprotege la hoja
    ActiveSheet.Unprotect Password = "microft"
    If Target.Value = "LOCAL" Then
        Range("D" & Target.Row).Locked = True
        Range("F" & Target.Row).Locked = True
        Range("G" & Target.Row).Locked = True
    ElseIf Target.Value = "FORANEO" Then
        Range("G" & Target.Row).Locked = True
    ElseIf Target.Value = "EXTRANJERO" Then
        'completar
    End If
    'se vuelve a proteger
    ActiveSheet.Protect Password = "microft"
End If
End Sub

pero en este nuevo proyecto al hacer la lista automática con este otro código

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Set xWs = Application.ActiveSheet
    On Error Resume Next
    Set xCombox = xWs.OLEObjects("Tipo")
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
    End With
    If Target.Validation.Type = 3 Then
        Target.Validation.InCellDropdown = False
        Cancel = True
        xStr = Target.Validation.Formula1
        xStr = Right(xStr, Len(xStr) - 1)
        If xStr = "" Then Exit Sub
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 1
            .Height = Target.Height + 1
            .ListFillRange = xStr
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.Tipo.DropDown
    End If
End Sub
Private Sub TipoCta_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(0, 1).Activate
        Case 37 'flecha izquierda
            Application.ActiveCell.Offset(0, -1).Activate
        Case 39 'flecha derecha
            Application.ActiveCell.Offset(0, 1).Activate
    End Select
End Sub

me pasa los siguiente:
1 no se como incorporar los 2 códigos
2 al ejecutar este ultimo y proteger y compartir el libro se queda pegada la un cuadro en la pantalla

3 al tratar de desbloquear la hoja ya no me acepta la contraseña "1234"

Te comparto el archivo

https://www.dropbox.com/s/vxjdvs0ebjg4dnz/Envios%20Base.xlsm?dl=0

1 respuesta

Respuesta
1

Ya lo descargué ... me ocuparé mañana de tu consulta (no la valores aún).

Viendo tu hoja recordé un frase que dice: 'Lo óptimo es enemigo de lo bueno'

¿Intentaste, estando en alguna celda de col A o B pasar a filas arriba?

¿Intentaste seleccionar algunas celdas de esas col para borrarlas y cargarlas nuevamente?

Estás utilizando el evento SelectionChange, es decir que se ejecuta al 'seleccionar la celda'... en ese momento no se sabe aún cuál será su contenido por eso no sirve colocar allí las instrucciones de la macro que te envié en consulta anterior.

En ese caso se utilizó el evento Change... es decir que ejecuta recién al cambiar el contenido de la celda (**)

Ahora, si luego de seleccionar se ejecuta el evento que te mueve el cursor a derecha (*) y automáticamente se ejecuta el evento Selección de la nueva celda no hay modo de que se ejecute el Change de la celda anterior.

(*) Para avanzar a derecha, desde menú Opciones, Avanzadas, Mover el cursor que quede a derecha resolvería parte del problema.

(**) A la macro del Change le faltaría agregar que si es LOCAL (las instrucciones que ahora tiene) y sino ... que las desbloquee. Es por si cambias el contenido de una celda que ya tenía información.

Con respecto a la clave no responde ni con 1234 ni con "1234"... tomá una copia anterior que esté desprotegida y colocale una clave alfanumérica para no correr riesgos.

Probá nuevamente cómo te movés en esas celdas así como están y luego comentame si vas a mantener ese estilo (en ese caso veremos de agregar el otro código de otro modo) o le quitas el evento selection a la col A.

Puedo enviarte otra hoja de muestra. Mis correos aparecen en la portada de mi sitio (o dejame un correo tuyo)

Muchas Gracias Elsa, estoy enviándote mi correo electrónico.

El libro ya fue enviando.

Si quedó resuelto el tema no olvides regresar aquí a valorar la respuesta (opciones: excelente o buena)

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas