Discussione:
Condivisione di un file con VBA...come?
(troppo vecchio per rispondere)
CiccioSPICE
2005-11-22 08:05:09 UTC
Permalink
Salve a tutti,
ho creato un file usando excel 2000 che dovrebbe essere condiviso tra
vari utenti. Il file è in una cartella con diritti di scrittura
assegnati ai soli utenti abilitati. Al file ho aggiunto un piccolo
script vba che mi serve per creare un "profilo" nell'accesso, in
pratica, alcuni utenti possono accedere solo alla colonna A, alti alla
B e così via. Di seguito il listato:

--------------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
If ComboBox1.Text = "A" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("A:A").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End If
If ComboBox1.Text = "B" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("B:B").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If
If ComboBox1.Text = "C" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("C:C").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If

End Sub


Private Sub CommandButton1_Click()
pippo.Hide
pippo.Enabled = False
End Sub



Private Sub Label1_Click()

End Sub

Private Sub UserForm_Initialize()

ComboBox1.AddItem ("A")
ComboBox1.AddItem ("B")
ComboBox1.AddItem ("C")

End Sub
-----------------------------------------------------------------------------

E se c'è un solo utente non ci sono problemi. Se il file viene aperto
da un altro utente viene mostrata la notifica "apri in sola lettura" -
"notifica" e la cosa può essere evitata usando
Application.DisplayAlert=False, ma purtroppo rimane l'impossibilità di
salvare se il primo utente non ha finito di usare il file e quindi dopo
averlo chiuso.

Non posso condividere il file, dato che, quando tento di impostare la
possibilità di effettuare modifiche contemporanee mi viene mostarto un
errore comunicandomi che non è possibile condividere file in cui ci
sono macro e vba.

Come posso risolvere il problema? E' possibile far aprire il file da
più utenti contemporaneamente ma che abbiano diritti esclusivamente su
ciolonne differenti?

Grazie a chi potrà darmi una mano.

Saluti
CiccioSPICE
Rémi
2005-11-22 20:44:18 UTC
Permalink
Ciao,

Ho trovato una soluzione sull'Internet usando i componenti aggiuntivi.



1/ Copia e incolla tutte le macro su una nuova cartella e salvala come :

componente aggiuntivo di Microsoft Office Excel (*.xla)

Esempio : prova.xla



Il file deve essere salvato nello stesso repertorio che il file da
condividere.

2/ Poi, apri il componente aggiuntivo : prova

Strumenti => componenti aggiuntivi => prova



3/ Nel VBE (Alt + F11) o Strumenti => macro => Visual Basic Editor
Fa un clic destra sulla cartella « prova.xla »

Scegli proprietà e cambia il nome ; esempio : macrocondivise



5/ Apri la cartella da condividere e va nel VBA (Alt + F11)
Fa : Strumenti => Riferimenti

Cerca e scegli "macrocondivise" e salva

Così le macro saranno accessibili sempre perchè saranno aperte insieme al
file.



Per il codice, dovrai precisare il nome della cartella e il nome del foglio,
altrimenti rischierebbe di non funzionare.



Però nel tuo caso, come usi un'userform e la funzione "activesheet" dovrebbe
andare bene senza cambiare niente.



In ogni caso, per curiosità fa sapere se hai risolto o non.



Ciao.
--
Alcuni esempi VBA Excel
http://remigueudelot.free.fr/

Spero di aver risposto bene alla tua domanda.
Rémi.



"CiccioSPICE" <***@libero.it> a �crit dans le message de news:***@g47g2000cwa.googlegroups.com...
Salve a tutti,
ho creato un file usando excel 2000 che dovrebbe essere condiviso tra
vari utenti. Il file è in una cartella con diritti di scrittura
assegnati ai soli utenti abilitati. Al file ho aggiunto un piccolo
script vba che mi serve per creare un "profilo" nell'accesso, in
pratica, alcuni utenti possono accedere solo alla colonna A, alti alla
B e così via. Di seguito il listato:

----------------------------------------------------------------------------
----------
Private Sub ComboBox1_Change()
If ComboBox1.Text = "A" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("A:A").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End If
If ComboBox1.Text = "B" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("B:B").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If
If ComboBox1.Text = "C" Then
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Columns("C:C").Select
Selection.Locked = False
Selection.FormulaHidden = False
'Range("E3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If

End Sub


Private Sub CommandButton1_Click()
pippo.Hide
pippo.Enabled = False
End Sub



Private Sub Label1_Click()

End Sub

Private Sub UserForm_Initialize()

ComboBox1.AddItem ("A")
ComboBox1.AddItem ("B")
ComboBox1.AddItem ("C")

End Sub
----------------------------------------------------------------------------
-

E se c'è un solo utente non ci sono problemi. Se il file viene aperto
da un altro utente viene mostrata la notifica "apri in sola lettura" -
"notifica" e la cosa può essere evitata usando
Application.DisplayAlert=False, ma purtroppo rimane l'impossibilità di
salvare se il primo utente non ha finito di usare il file e quindi dopo
averlo chiuso.

Non posso condividere il file, dato che, quando tento di impostare la
possibilità di effettuare modifiche contemporanee mi viene mostarto un
errore comunicandomi che non è possibile condividere file in cui ci
sono macro e vba.

Come posso risolvere il problema? E' possibile far aprire il file da
più utenti contemporaneamente ma che abbiano diritti esclusivamente su
ciolonne differenti?

Grazie a chi potrà darmi una mano.

Saluti
CiccioSPICE
CiccioSPICE
2005-11-23 11:55:00 UTC
Permalink
Rémi (senza) ha scritto:

[CUT]

Soluzione molto elegante...grazie ha funzionato!

Saluti
CiccioSPICE

Loading...