Excel - Compartir Excel por Comercial

   
Vista:

Compartir Excel por Comercial

Publicado por Vicente (2 intervenciones) el 11/02/2018 11:50:14
Tengo un archivo con una Tabla Excel que contiene la actividad de cada comercial, el problema es el siguiente:

He creado dentro de un sharepoint / onedrive " una red para simplificar "un archivo para cada comercial con una consulta ( Datos / Conexiones y consultas) para que cada uno de ellos pueda actualizar los datos, pero el problema es que pueden editar la conexión y ver a los otros comerciales.

Posibles soluciones:

A). Macro/protección : Está solución no me aporta confianza, se les facilita un archivo con una hoja protegida con lo cual ya no pueden editar la consulta. Por medio de una macro, ellos pueden actualizar la hoja, ya que esta DESPROTEGE + ACTUALIZA + VUELVE A PROTEGER hoja, pero todos sabemos que la seguridad de la protección de una hoja, el proyecto de VBA no son el fuerte de microsoft.
B). Opción en desarrollo : Confeccionar una macro que divida el archivo principal por comercial y guarde ese archivo en carpetas de acceso exclusivo ( Sharepoint/onedrive) por lo tanto no hace falta proteger la consulta . Ahora el problema es que la ACTUALIZACIÓN depende de cuando se haya ejecutado la macro


¿ Otras opciones ? No se me ocurren sin salir de Excel, sharepoint se comporta como un servidor en red, para poder compartir algo el usuario debe tener acceso a la carpeta por tanto las CONSULTAS protegidas con Macros no me dan confianza, dividir el archivo y colocarlo en carpetas en concreto es quizas la mejor...etc
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Compartir Excel por Comercial

Publicado por Vicente Jose (2 intervenciones) el 14/02/2018 08:36:52
Hola,

Me respondo a mi mismo.

A). La opción de la macro era la más fácil para mi y haber protegido el libro, pero ya sabemos que es fácil desproteger el libro o quitar la clave a un proyecto VBA. Los usuarios de estos archivos en algunos casos son Ingenieros o informáticos por lo que descarto por ese motivo la consulta. Además en un entorno de RED como es un ONEDRIVE/SHAREPOINT con sólo quitar la protección al archivo y ver sobre que archivo se hace la consulta hubiesen tenido pleno acceso al mismo, etc.Además esta era la opción que facilitaba un acceso en tiempo real a todas las cosas, algo que no era imprescindible ya que se puede facilitar cada 6 - 12 - 24 horas.

B) La segunda opción ante alternativas es la que he usado.

Ejemplo:


* Los comerciales necesitan tener acceso a dos base de datos que están almacenadas en Excel y cada uno debe ver lo SÓLO LO SUYO.
* En un entorno de red como es SHAREPOINT online defino para cada comercial una carpeta con acceso exclusivo que sólo el o el adminstradores pueden ver.
* Mediante una Macro que ejecuta el administrador guarda para cada comercial un archivo con su nombre dentro de la carpeta definida ( Archivo 1 y archivo 2)
* Se confecciona una Archivo por comercial que hace una Consulta a esos dos archivos para montarlos en un ARCHIVO UNICO, donde les aparecen ambas bases además de los cálculos correspondientes. Eso lo hago porque no tengo tantos conocimientos en base a este problema:
--- Cuando genero Archivo 1 y 2 para cada comercial no se como generarlo con formato, cada vez se genera uno que se graba encima del que tenia
--- Genero dos archivos porque tampoco tengo conocimientos para generar un único archivo con dos hojas

Por tanto ejecuto la Macro a cada comercial le aparecen dos archivos nuevos cada dia y ellos para actualizar su maestro ejectuan una macro que actualiza su base de datos de esta forma no pierden los formatos, fórmulas

¿ Alguien en base a mis macros me puede hechar una mano ? Seria que el problema siguiente:

*Partiendo de un Archivo con dos hojas
*Confeccionar un único archivo por comercial con dos hojas y que mantenga el formato


Lo que hice yo es lo siguiente:

Macro Archivo 1:
Macro Archivo 2:


En el libro maestro me sitio en la hoja 1
Ejecuto esta macro, que en función del nombre del comercial de la columna S me guarda un archivo en C:\Users\Vicente\NOMBRE SHAREPOINT\Altas - Comercial\Otros\Comercial.xlsx del rango A1 hasta W, para que no falle deben existir las rutas / carpetas porque lo fácil hubiese sido guardarlo todo en el mismo sitio que el archivo maestro pero necesito que este cada uno en su carpeta.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Archivo1()
 
 
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = ActiveSheet
    Set h2 = Sheets.Add
 
    ruta = "C:\Users\Vicente\NOMBRE SHAREPOINT\Altas - "
 
    u = h1.Range("S" & Rows.Count).End(xlUp).Row
    h1.Range("S:S").Copy h2.[A1]
 
 
    h2.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
    h2.Range("A1").Copy h2.Range("B1")
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        h2.[B2] = h2.Cells(i, "A")
        Set l2 = Workbooks.Add
        Set h3 = l2.ActiveSheet
        h1.Range("A1:W" & u).AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=h2.Range("B1:B2"), CopyToRange:=h3.Range("A1"), Unique:=False
        l2.SaveAs ruta & h2.Cells(i, "A") & "\Otros\" & h2.Cells(i, "A")
        l2.Close
    Next
    h2.Delete
    MsgBox "Descarga de clientes terminada", vbInformation
 
 
End Sub



Algo por el estilo hago con la siguiente macro, mes situo en la hoja la ejecuto y para no guardar con el mismo nombre le digo que es el siguiente C:\Users\Vicente\NOMBRE SHAREPOINT\Altas - Comercial\Otros\A Comercial.xlsx ya que cambio la macro anterior por el rango especifico, la columna de los comerciales y añado que se guarde con una A delante

l2.SaveAs ruta & h2.Cells(i, "A") & "\Otros\" & "A " & h2.Cells(i, "A")



ESTO FUNCIONA DE PERLAS pero la duda es saber si se podían generar por comercial un solo archivo con dos hojas, que no puierdan formato,etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana

Compartir Excel por Comercial

Publicado por Antoni Masana amasana@hotmail.com (809 intervenciones) el 14/02/2018 08:59:05
Puedes hacer muchas cosas con el Excel

- Crear un libro nuevo
- Añadir / Eliminar hojas
- Renombrar hojas
- Ordenar hojas
- Incluso añadir código VBA a un libro nuevo.

Sabido esto puedes:

- Crear un nuevo libro.
- Tendrá N número de hojas y puedes añadir si te faltan o eliminar si sobran para dejar 2 hojas
- Renombra las hojas
- Copiar los datos a las hojas
- Darles formato a los datos
- Guardar el libro donde quieras aunque ya exista otro fichero con el mismo nombre.

A este código le faltan unas cuantas cosas para que cree un solo fichero.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Archivo1()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
 
    Set l1 = ThisWorkbook
    Set h1 = ActiveSheet
    Set h2 = Sheets.Add
 
    ruta = "C:\Users\Vicente\NOMBRE SHAREPOINT\Altas - "
 
    u = h1.Range("S" & Rows.Count).End(xlUp).Row
    h1.Range("S:S").Copy h2.[A1]
 
    h2.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
    h2.Range("A1").Copy h2.Range("B1")
 
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        h2.[B2] = h2.Cells(i, "A")
        Set l2 = Workbooks.Add
        Set h3 = l2.ActiveSheet
 
        h1.Range("A1:W" & u).AdvancedFilter Action:=xlFilterCopy, _
                                            CriteriaRange:=h2.Range("B1:B2"), _
                                            CopyToRange:=h3.Range("A1"), _
                                            Unique:=False
        l2.SaveAs ruta & h2.Cells(i, "A") & "\Otros\" & h2.Cells(i, "A")
        l2.Close
    Next
    h2.Delete
    MsgBox "Descarga de clientes terminada", vbInformation
End Sub

Podemos seguir hablando.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad