Discussione:
Copia/Incolla fra fogli protetti
(troppo vecchio per rispondere)
A.R.
2007-05-12 15:49:27 UTC
Permalink
C'è un modo che mi permetta di copiare celle (non protette) da un foglio
protetto in celle (non protette) di un altro foglio protetto, senza dover
sproteggere i fogli protetti?

(non è uno scioglilingua, ma una domanda di aiuto).

Il solito, e doveroso, ringraziamento a chi mi vorrà rispondere. Saluti.
A.R.
Norman Jones
2007-05-12 16:16:49 UTC
Permalink
Ciao A,

'------------------
C'è un modo che mi permetta di copiare celle (non protette) da un foglio
protetto in celle (non protette) di un altro foglio protetto, senza dover
sproteggere i fogli protetti?

(non è uno scioglilingua, ma una domanda di aiuto).
'------------------

Si puo' copiare un intervallo non protetto ad un
intervallo non protetto senza problemi anche se i
due fogli siano protetti, cioe', un semplice
copia / incolla.

Se vuoi effettuare la copia da VBA, in un modulo
standard (vedi di sotto), prova:

'=============>>
Public Sub Tester()
Dim WB As Workbook
Dim srcSH As Worksheet
Dim destSH As Worksheet
Dim srcRng As Range
Dim destRng As Range

Set WB = Workbooks("Pippo.xls") '<<== da CAMBIARE

With WB
Set srcSH = .Sheets("Foglio1") '<<== da CAMBIARE
Set destSH = .Sheets("Foglio2") '<<== da CAMBIARE
End With

Set srcRng = srcSH.Range("A1:D10") '<<== da CAMBIARE
Set destRng = destSH.Range("A21:D30") '<<== da CAMBIARE
srcRng.Copy Destination:=destRng

End Sub
'<<=============

Per utilizzare questa routine:

Alt-F11 per aprire l'Editor di VBA
Menu | Inserisci | Modulo
Incolla il suddetto codice
Alt-F11 per tornare in Excel
Alt-F8
Seleziona "Tester"
Esegui


---
Regards,
Norman
Microsoft Excel MVP
cucchiaino
2007-05-12 17:36:45 UTC
Permalink
Post by Norman Jones
Ciao A,
'------------------
C'è un modo che mi permetta di copiare celle (non protette) da un foglio
protetto in celle (non protette) di un altro foglio protetto, senza dover
sproteggere i fogli protetti?
(non è uno scioglilingua, ma una domanda di aiuto).
'------------------
Si puo' copiare un intervallo non protetto ad un
intervallo non protetto senza problemi anche se i
due fogli siano protetti, cioe', un semplice
copia / incolla.
Se vuoi effettuare la copia da VBA, in un modulo
'=============>>
Public Sub Tester()
[]
Post by Norman Jones
End Sub
'<<=============
ciao Norman, :)
aggiungiamo anche che

all'apertura del file puo' utilizzare il metodo Protect con
l'opzione userInterfaceOnly:True per bloccare il foglio in oggetto.
Con questa opzione l'utente è bloccato ma non vb.

Esempio per un solo foglio:

Private Sub Workbook_Open()
Worksheets("paraponziponzi"). _
Protect contents:True, userInterfaceOnly:True
End Sub



()---cucchiaino
Norman Jones
2007-05-12 18:20:49 UTC
Permalink
Ciao A, Ciao Cucchiaino,

'-----------------
aggiungiamo anche che

all'apertura del file puo' utilizzare il metodo Protect con
l'opzione userInterfaceOnly:True per bloccare il foglio in oggetto.
Con questa opzione l'utente è bloccato ma non vb.

Esempio per un solo foglio:

Private Sub Workbook_Open()
Worksheets("paraponziponzi"). _
Protect contents:True, userInterfaceOnly:True
End Sub
'-----------------

Concordo con il consiglio di Cucchiaino; l'uso
dell'argomento UserInterfaceOnly dell metodo
Protect puo' essere molto utile, anche se non
permette *ogni* manipolazione del foglio protetto
da VBA.

Comunque sono sicuro che Cucchiaino intendeva:

Worksheets("paraponziponzi").Protect _
Contents:=True, UserInterfaceOnly:=True

(: ==> :=)


---
Regards,
Norman
Microsoft Excel MVP
KL
2007-05-12 18:54:52 UTC
Permalink
...un'altra cosa:

se il foglio ha una 'password' gia, [a partire da XL2002] sia necessario da indicarla esplicitamente. Altrimenti, il codice la
chiedera al aprire il libro. Per essempio:

Private Sub Workbook_Open()
Worksheets("paraponziponzi").Protect _
Password:="abracadabra", Contents:=True, _
UserInterfaceOnly:=True
End Sub

Saluti,
KL
[MVP - Microsoft Excel]
RU: http://www.mvps.ru/Program/Default.aspx
ES: http://mvp.support.microsoft.com/?LN=es-es
EN: http://mvp.support.microsoft.com/?LN=en-us
Profile: https://mvp.support.microsoft.com/profile=AB32F8EE-8ED3-4AB9-ADDA-9E6C73C09A36
Post by Norman Jones
Ciao A, Ciao Cucchiaino,
'-----------------
aggiungiamo anche che
all'apertura del file puo' utilizzare il metodo Protect con
l'opzione userInterfaceOnly:True per bloccare il foglio in oggetto.
Con questa opzione l'utente Х bloccato ma non vb.
Private Sub Workbook_Open()
Worksheets("paraponziponzi"). _
Protect contents:True, userInterfaceOnly:True
End Sub
'-----------------
Concordo con il consiglio di Cucchiaino; l'uso
dell'argomento UserInterfaceOnly dell metodo
Protect puo' essere molto utile, anche se non
permette *ogni* manipolazione del foglio protetto
da VBA.
Worksheets("paraponziponzi").Protect _
Contents:=True, UserInterfaceOnly:=True
(: ==> :=)
---
Regards,
Norman
Microsoft Excel MVP
Norman Jones
2007-05-12 22:20:06 UTC
Permalink
Ciao KL,

'----------------
...un'altra cosa:

se il foglio ha una 'password' gia, [a partire da XL2002] sia necessario da
indicarla esplicitamente. Altrimenti, il codice la
chiedera al aprire il libro. Per essempio:

Private Sub Workbook_Open()
Worksheets("paraponziponzi").Protect _
Password:="abracadabra", Contents:=True, _
UserInterfaceOnly:=True
End Sub
'----------------

Se avessi seguito il NG piu attentamente,
avresti notato il seguente codice suggerito
da me in risposta ad una domanda proprio
dallo stesso A.R

MACRO: esecuzione in un foglio protetto
http://tinyurl.com/2t8tuq

'------------
'=============>>
Private Sub Workbook_Open()
Dim SH As Worksheet
Const PWORD As String = "Pippo" '<<=== da CAMBIARE

Set SH = Me.Sheets("Foglio1") '<<=== da CAMBIARE

With SH
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True, _
Password:=PWORD
End With
End Sub
'<<=============

'------------

Se vorresti fare una ricerca, sia in questo NG
che in altri, credo che tu trovi molti piu esempi,
e.g.:

http://tinyurl.com/2qae44

Avendo letto i commenti in proposito di Hector
in seguito ad una tua risposta ad una vecchia
domanda nel NG spagnolo, sapevo che ormai tu
eri al corrente delle esigenze dell'argomento
Password del metodo Protect.


---
Regards,
Norman
Microsoft Excel MVP
KL
2007-05-13 09:05:39 UTC
Permalink
Ciao Norman,
Post by Norman Jones
Se avessi seguito il NG piu attentamente,
avresti notato ...
Se vorresti fare una ricerca, sia in questo NG
che in altri, ...
Avendo letto i commenti in proposito di Hector
in seguito ad una tua risposta ad una vecchia
domanda nel NG spagnolo, sapevo che ormai tu
eri al corrente delle esigenze...
Credo sinceramente che il tuo post e un chiarissimo OT - parla della mia persona e no dell oggetto della richiesta. Ti ho risposto
in un mail privato.

Saluti,
KL
[MVP - Microsoft Excel]
RU: http://www.mvps.ru/Program/Default.aspx
ES: http://mvp.support.microsoft.com/?LN=es-es
EN: http://mvp.support.microsoft.com/?LN=en-us
Profile: https://mvp.support.microsoft.com/profile=AB32F8EE-8ED3-4AB9-ADDA-9E6C73C09A36
Norman Jones
2007-05-13 11:10:49 UTC
Permalink
Ciao Kirill,

'-----------------
Credo sinceramente che il tuo post e un chiarissimo OT - parla della mia
persona e no dell oggetto della richiesta. Ti ho risposto
in un mail privato.
'-----------------

Ho ricevuto la tua e-mail e ti ho mandato una risposta
dettagliata.Con il tuo permesso, sarei molto contento
di postare la mia risposta qui.

Tuttavia, sono molto spiacente che tu consideri la mia
risposta al tuo post come OT e che pensi la mia risposta
rappresenti un attacco personale.


Saluti.

---
Regards,
Norman
Microsoft Excel MVP
Ignazio
2007-05-12 20:22:43 UTC
Permalink
Post by A.R.
C'è un modo che mi permetta di copiare celle (non protette) da un foglio
protetto in celle (non protette) di un altro foglio protetto, senza dover
sproteggere i fogli protetti?
Ciao A.R.
se (come dici) le celle in cui esegui la copia sono NON protette, non c'è
nessun problema ad eseguire il comando:
Copia/Incolla
quando il foglio di destinazione è protetto.

O forse intendevi una copia in celle protette di un foglio protetto?
--
Ciao
Ignazio
A.R.
2007-05-13 22:49:58 UTC
Permalink
"A.R." <***@hotmail.it> ha scritto nel messaggio news:***@TK2MSFTNGP02.phx.gbl...

| C'è un modo che mi permetta di copiare celle (non protette) da un foglio
| protetto in celle (non protette) di un altro foglio protetto, senza dover
| sproteggere i fogli protetti?
|
| (non è uno scioglilingua, ma una domanda di aiuto).
|
| Il solito, e doveroso, ringraziamento a chi mi vorrà rispondere. Saluti.
| A.R.
|
------------------------
Una doverosa spiegazione:

Il copia/incolla manuale funziona regolarmente (fogli protetti, gli
intervalli no):l'impossibilità della copia dipende dall'utilizzo di una
macro che, contemporaneamente al passaggio dall'un foglio all'altro,
effettua anche l'ordinamento delle righe del foglio di destinazione,
collocando il cursore nella prima riga vuota: presumo (?) che, eseguendo la
macro, Excel non mantenga in memoria la selezione da incollare.

Per eludere il problema, ho registrato questa modestissima macro, da
eseguire *dopo* il riordinamento e dopo la selezione delle celle da copiare
(ho omesso le istruzioni di protezione, etc.):

Sub Copia()
Selection.Copy
Sheets("Archivio").Select
Range("B5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1).Select
ActiveSheet.Paste
Sheets("Clienti").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Grazie per tutti i consigli, che -comunque- mi aiutano nel mio tentativo di
svezzarmi.
Mi spiace che la mia domanda abbia innescato una piccola diatriba, che non
ho ben capito: a Roma dicono "volemose bene...".
Saluti a tutti. A.R.
P.S.: io son di Torino...
Norman Jones
2007-05-14 07:05:05 UTC
Permalink
Ciao A,

'------------------
Il copia/incolla manuale funziona regolarmente (fogli protetti, gli
intervalli no):l'impossibilità della copia dipende dall'utilizzo di una
macro che, contemporaneamente al passaggio dall'un foglio all'altro,
effettua anche l'ordinamento delle righe del foglio di destinazione,
collocando il cursore nella prima riga vuota: presumo (?) che, eseguendo la
macro, Excel non mantenga in memoria la selezione da incollare.

Per eludere il problema, ho registrato questa modestissima macro, da
eseguire *dopo* il riordinamento e dopo la selezione delle celle da copiare
(ho omesso le istruzioni di protezione, etc.):

Sub Copia()
Selection.Copy
Sheets("Archivio").Select
Range("B5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1).Select
ActiveSheet.Paste
Sheets("Clienti").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Grazie per tutti i consigli, che -comunque- mi aiutano nel mio tentativo di
svezzarmi.
'------------------

Seguendo il consiglio di Cucchiaino,
prova a proteggere i fogli utilizzando
l'argomento UserInterfaceOnly del
metodo Protect:

'=============>>
Private Sub Workbook_Open()
Dim SH As Worksheet
Dim Arr As Variant
Const PWORD As String = "Pippo" '<<=== da CAMBIARE

Arr = VBA.Array("Archivio", "Clienti") '<<=== da CAMBIARE

For Each SH In Me.Sheets(Arr)

With SH
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True, _
Password:=PWORD
End With
Next SH
End Sub
'<<=============

Per eseguire la suddetta procedura, salva,
chiudi e riapri il file. In alternativa, seleziona
il codice e premi F5.

Avendo cosi' protetto i fogli, non avevo
alcun problema con la tua macro.


---
Regards,
Norman
Microsoft Excel MVP
A.R.
2007-05-14 10:17:35 UTC
Permalink
"Norman Jones" <***@whereforartthou.com> ha scritto nel messaggio news:%***@TK2MSFTNGP05.phx.gbl...
| Ciao A,
|
| '------------------
| Il copia/incolla manuale funziona regolarmente (fogli protetti, gli
| intervalli no):l'impossibilità della copia dipende dall'utilizzo di una
| macro che, contemporaneamente al passaggio dall'un foglio all'altro,
| effettua anche l'ordinamento delle righe del foglio di destinazione,
| collocando il cursore nella prima riga vuota: presumo (?) che, eseguendo
la
| macro, Excel non mantenga in memoria la selezione da incollare.
|
| Per eludere il problema, ho registrato questa modestissima macro, da
| eseguire *dopo* il riordinamento e dopo la selezione delle celle da
copiare
| (ho omesso le istruzioni di protezione, etc.):
|
| Sub Copia()
| Selection.Copy
| Sheets("Archivio").Select
| Range("B5").Select
| Selection.End(xlDown).Select
| ActiveCell.Offset(1).Select
| ActiveSheet.Paste
| Sheets("Clienti").Select
| Application.CutCopyMode = False
| Selection.ClearContents
| End Sub
|
| Grazie per tutti i consigli, che -comunque- mi aiutano nel mio tentativo
di
| svezzarmi.
| '------------------
|
| Seguendo il consiglio di Cucchiaino,
| prova a proteggere i fogli utilizzando
| l'argomento UserInterfaceOnly del
| metodo Protect:
|
| '=============>>
| Private Sub Workbook_Open()
| Dim SH As Worksheet
| Dim Arr As Variant
| Const PWORD As String = "Pippo" '<<=== da CAMBIARE
|
| Arr = VBA.Array("Archivio", "Clienti") '<<=== da CAMBIARE
|
| For Each SH In Me.Sheets(Arr)
|
| With SH
| .EnableAutoFilter = True
| .Protect UserInterfaceOnly:=True, _
| Password:=PWORD
| End With
| Next SH
| End Sub
| '<<=============
|
| Per eseguire la suddetta procedura, salva,
| chiudi e riapri il file. In alternativa, seleziona
| il codice e premi F5.
|
| Avendo cosi' protetto i fogli, non avevo
| alcun problema con la tua macro.
|
|
| ---
| Regards,
| Norman
| Microsoft Excel MVP
|
------------------------
Grazie. Ci provo. Certo che presuntuosamente speravo di capirne di più.
Purtroppo, fra il mio rudimentale vecchio Basic degli anni 80 ed il VBE c'è
un abisso incolmabile. Grazie ancora. Ciao. A.R.

Loading...