Error de orden de datos en Libro compartido

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

Error de orden de datos en Libro compartido

Notapor carlos juarez » 10 Oct 2018 13:59

Hola a todos
Excelente día

Hoy encontré un error totalmente desconocido para mi

Tengo un documento con estas características:

-Libro compartido
-Libro en red
-3 usuarios con sus passwords mediante un userform
-3 hojas con el mismo formato
-Usuarios 1 y 2 pueden editar su hoja respectiva y el usuario 3 solo puede ver información colocada por los otros 2 usuarios en su hoja
-Usuario 1 en hoja1 puede editar de A1:H40 y de I1:R40 solo ve la info que se iguala del usuario 2 hoja 2 y viceversa con el usuario 2, es un como intercambio de info, uno anota la instrucción y el otro ve la instrucción y contesta en otra celda y el primero ve que contesto.
Usuario 1 hoja 1 edita A1:H40 y Usuario 2 hoja2 edita I1:R40
Usuario 1 hoja 1 solo ve I1:R40 y Usuario 2 hoja2 solo ve A1:H40
Usuario 3 hoja3 solo ve A1:H40 y I1:R40
Esto lo ven mediante igualación de celdas (hoja1 celda I1= hoja2 celda I1, etc...) para que solo vean una sola hoja cada quien.
-Las celdas que solo pueden ver están bloqueadas mediante password, lo único permitido es:
*Seleccionar celdas desbloqueadas
*Seleccionar celdas bloqueadas
*Ordenar
*Modificar objetos (requieren agregar notas)
-Se auto guarda cada 30s con OnTime
-El usuario 1 en su área de editado coloca fechas, pero estas son introducidas desordenadamente en una Columna y esto no puede cambiar
-Se requiere ordenar las fechas después de colocarlas por usuario 1 y se refleje en los otros usuarios, para ello una macro de orden de fechas
*Como no puedo ordenar las celdas bloqueadas en cada hoja (que contienen info que otros colocan en otra hoja y se iguala), una formula crea un dato único en hoja1, copia estos datos en hoja 2 y ordena una sección en hoja1 y otra sección en hoja2, esto evita mezclar info
*Como las partes bloqueadas están igualadas con la otra hoja, se refleja el cambio, esto si quito compartido
*Si se comparte el doc. aquí viene el problema:

Al compartir, abrir al menos 2 usuarios y ordenar con macro:
-Usuario 1en área de edición no ordena adecuadamente, el dato único si, pero la info de fechas y otros datos en la misma fila varían random con cada clic.
-Usuario 1 en área bloqueada varían las filas de posición y la info se queda en su lugar, burlando la contraseña de no modificar filas o contenido (tremendamente ilógico!!!)
-Usuario 2 en área de edición ordena igualmente random
-Usuario 2 en área bloqueada varia las filas también

Ejemplo sin compartir:
Hoja1 A1 valor "1" = Hoja2 A1 valor "1"
Hoja1 A2 valor "10" = Hoja2 A2 valor "10"
Hoja1 A3 valor "20" = Hoja2 A1 valor "20"
Hoja1 A4 valor "8" = Hoja2 A4 valor "8"
Hoja1 A5 valor "3" = Hoja2 A5 valor "3"
*valor es valor de celda

ordeno valor con macro:
Hoja1 A1 valor "1" = Hoja2 A1 valor "1"
Hoja1 A2 valor "3" = Hoja2 A2 valor "3"
Hoja1 A3 valor "8" = Hoja2 A1 valor "8"
Hoja1 A4 valor "10" = Hoja2 A4 valor "10"
Hoja1 A5 valor "20" = Hoja2 A5 valor "20"

Comparto el libro y ordeno con macro:

Hoja1 A5 valor "20" = Hoja2 A5 valor "20"
Hoja1 A3 valor "8" = Hoja2 A1 valor "8"
Hoja1 A1 valor "1" = Hoja2 A1 valor "1"
Hoja1 A4 valor "10" = Hoja2 A4 valor "10"
Hoja1 A2 valor "3" = Hoja2 A2 valor "3"
Hoja1 A5 valor "20" = Hoja2 A5 valor "20"

*Cada fila tiene un numero único, del cual se ordena, este se ordena bien en cada caso
*Los valores no se mezclan
*Notan como varían las filas??, pasa con las 3 hojas, obviamente en cada hoja muestra ordenes distintos y se pierde el cometido, lo que no tiene lógica es que estas celdas están protegidas con password!!!! o es porque está activado Ordenar en proteger hoja???? pero solo pasa cuando esta compartido.

Código ordenar:

Código: Seleccionar todo
Sub ordenar()

Dim celda  As Range

Application.ScreenUpdating = False
Call comment      'Sub para copiar comentarios
ThisWorkbook.Worksheets("Shipments_Emba").Activate     'Hoja1

Range("B11").Select         'Creando dato unico, conactenando fecha en numero y lista de numeros del (01 al 30) y restando 1000000 segun caso     
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=IF(RC[+1]="""","""",IF(RC[+18]=""CERRADO"",SUM(CONCAT(RC[+1],RC[-1]),-1000000),CONCAT(RC[+1],RC[-1])))"
Range("B11").Select
Selection.AutoFill Destination:=Range("B11:B40"), Type:=xlFillDefault

Application.CutCopyMode = False      'Copia dato unico en el mismo lugar como valor
Range("B11:B40").Copy
Range("B11").Select
Selection.PasteSpecial Paste:=xlPasteValues

Set celda = Range("B11:B40")       'De texto a numero para poder ordenar
For Each celda In Selection

    If Not IsNumeric(celda.Value) Then
        celda.Value = WorksheetFunction.Trim(celda.Value)
    ElseIf TypeName(celda.Value) = "String" Then
        celda.Value = celda.Value + 1 - 1
    End If

Next celda

Range("B11:B40").Select              'Copiar columna de dato unico y pega valores en hoja2 para filtar en ambos lados debido a las partes bloquedas
Application.CutCopyMode = False
Selection.Copy
ThisWorkbook.Worksheets("Shipments_Vigi").Activate   'Hoja2
Range("T11").Select
Selection.PasteSpecial Paste:=xlPasteValues

ThisWorkbook.Worksheets("Shipments_Emba").Activate         'Ordenar ascendente en hoja2 la parte editable
Range("B11:I40").Sort Key1:=Range("B11"), Order1:=xlAscending, Header:= _        'Solo ordeno, no activo autofiltro
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

ThisWorkbook.Worksheets("Shipments_Vigi").Activate             'Ordenar ascendente en hoja1 la parte editable
Range("I11:T40").Sort Key1:=Range("T11"), Order1:=xlAscending, Header:= _          'Solo ordeno, no activo autofiltro
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("I11").Select


'Al tener el mismo dato unico ordena igual y no mezcla las filas, pero cambia las filas enteras de lugar en cada hoja ESTE ES EL PROBLEMA


ThisWorkbook.Worksheets("Shipments_Emba").Activate     'Hoja1
Range("C11").Select
Application.ScreenUpdating = True

End Sub

¿Que hice mal o es error de Excel?
¿Que debo hacer para corregir problema y se vea como cuando no comparto el libro y todas las hojas se vean igual?
carlos juarez
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 12 Sep 2018 13:55

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 4 invitados