Alguna función de vba, no corre en modo compartido

Tengo un trabajo que lo utilizo para control de mi trabajo diario.
El sistema en si funciona todo correcto, pero a la hora de ponerlo en modo "COMPARTIR" para usarlo desde otra PC o por varios usuarios, algunas funcionen no se ejecutan.
Observe y llegue a la conclusión que el código que no ejecuta "excel se tilda y queda pensando..." es el siguiente:

Private Sub CommandButton3_Click()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Celda As Range
Dim filtro As Worksheet
Dim Hpro As Worksheet
Set datos = Sheets("db_carga_transportes").Range("A1:M20000")
CUIT_PRODUCTOR = ComboBox1.Value
Set H = Sheets("aux_db_carga_transportes")
H.Cells.Clear
With datos
    .AutoFilter
    .AutoFilter FIELD:=13, Criteria1:=CUIT_PRODUCTOR
    .Copy
    H.Range("A1").PasteSpecial
    Set tabla = H.Range("A1").CurrentRegion
    With tabla
        Filas = .Rows.Count: COL = .Columns.Count
        MATRIZ = .Cells(1, 1).Resize(Filas, COL - 0)
        With ListBox1
            .ColumnCount = COL
            .ColumnWidths = "200;0;70;0;0;0;0;0;0;70;0;0;80"
            .List = MATRIZ
        End With
    End With
.AutoFilter
End With
With ComboBox2
Set Hpro = Sheets("aux_db_carga_transportes")
    ComboBox2.Clear
    For Each Celda In Hpro.Range("A2:A5000")
        If Celda.Value <> "" Then
            ComboBox2.AddItem Celda.Value
        Else
            Exit For
        End If
    Next
End With
With IMPORTETOTAL
For i = 0 To ListBox1.ListCount - 1
tot1 = tot1 + Val(ListBox1.List(i, 9))
Next i
IMPORTETOTAL = tot1
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set H = Nothing
End Sub

Este código lo que hace es, buscar y filtran una información desde un userfrom.

¿Tienen algún consejo? ¿El por qué no ejecuta en modo compartido? En modo normal anda todo perfecto.

aguardo...

1 Respuesta

Respuesta
1

Los libros compartidos tienen varias limitaciones. Es decir que ciertas herramientas (como crear tablas, filtros, etc) no se pueden ejecutar en libros compartidos.

Esas limitaciones dependen de la versión Excel que tengas.

Tendrás que leer desde la Ayuda de tu Excel o buscar aquí indicando tu versión:

https://support.microsoft.com/es-es/office/ 

Lo que generalmente se hace en esos casos es: quitar el modo compartido, ejecutar el proceso y volver a compartirlo.

Por ej en tu macro, luego de la declaración de variables:

Private Sub CommandButton1_Click()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Celda As Range
Dim filtro As Worksheet
Dim Hpro As Worksheet
'se evalúa si el libro está compartido, en ese caso se lo pasa a exclusivo
If ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.ExclusiveAccess
'se ejecuta el proceso del botón de tu UF
MsgBox "Ahora se puede filtrar"
'se vuelve a compartir el libro
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
'devolver el estado normal de la aplicación
Application.DisplayAlerts = True
'y otras
End Sub

Probalo en tu versión.

También tendrás que programar qué sucederá cuando otros intentan acceder al libro que en ese momento está como 'no compartido'... pero eso ya es otro tema mayor :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas