Problema copia incolla con foglio protetto

di il
10 risposte

Problema copia incolla con foglio protetto

Buongiorno.

Ho un problema su una macro di Excel che copia una porzione di foglio da un altro file excel sull'ard disk e lo incolla sul suo foglio attivo.

Tutti e due i file e relativi fogli sono protetti da password.

I file sono protetti in avvio nella Sub Workbook_Open().

Se tolgo la protezione (solo al foglio attivo) prima della copia tutto funziona bene.

Se non la tolgo Excel mi dà errore 400.

Il foglio protetto, dovrebbe permettere alla macro le modifiche.

Di seguito il comando che uso per attivare la protezione e poi la linea che mi da l'errore.

Suggerimenti...Grazie

Sub ProteggiFoglio()

Dim Parola As String
Parola = "Pippo"
For i = 1 To Sheets.Count
Sheets(i).Protect Password:=Parola, UserInterFaceOnly:=True
Next i

End Sub

OrigineWorkbook.Sheets("Ins_Utenti").Range("I42:J71").Copy DestinazioneWorkbook.Sheets("Liste").Range("M3") ' ricopio il file di origine su questo foglio





10 Risposte

  • Re: Problema copia incolla con foglio protetto

    Dopo che proteggi i fogli con UserInterfaceOnly:= True, effettui il salvataggio della cartella?

    La guida dice:

    If you apply this method with the UserInterfaceOnly argument set to true and then save the workbook, the entire worksheet (not just the interface) will be fully protected when you reopen the workbook. To re-enable the user interface protection after the workbook is opened, you must again apply this method with UserInterfaceOnly set to true.

    In pratica, dopo il salvataggio devi reimpostarla, altrimenti perde validità.

  • Re: Problema copia incolla con foglio protetto

    17/02/2025 - Premuroso ha scritto:

    Suggerimenti...Grazie

    Ciao, se la cartella o foglio sono protetti il semplice paste non è consentito.

    SENZA rimuovere la protezione, puoi per esempio eseguire il .PasteSpecial Paste:=xlPasteAll 

    ESEMPIO:

    ' COPY PASTE
    Sub ExecuteCopyPaste()
        ' Save the current active sheet
        Dim sheetActive As Worksheet
        Set sheetActive = ThisWorkbook.ActiveSheet
        
        ' Open the source file
        Dim SourcePath  As String
        SourcePath = "YourPath\CartelSource.xlsm"
        Dim SourceWorkbook As Workbook
        Set SourceWorkbook = Workbooks.Open(SourcePath)
        SourceWorkbook.Windows(1).Visible = False
           
        ' Copy the range from the source file
        SourceWorkbook.Sheets("Ins_Utenti").Range("I42:J71").Copy
      
        ' Paste into the destination sheet
        With ThisWorkbook.Sheets("Liste")
            .Activate
            .Range("M3").PasteSpecial Paste:=xlPasteAll
            ' Cancel the copy mode without selecting anything
            .Range("M3").Select
        End With
        
       ' Return the focus to the sheet that was active before
        sheetActive.Activate
            
        ' Close the source file
        SourceWorkbook.Close SaveChanges:=False
        
        ' Show a message box when the operation is complete
        MsgBox "The copy and paste operation was completed successfully.", vbInformation, "Info"
    End Sub

    .
    Se invece vuoi copiare/incollare solo i valori .PasteSpecial Paste:=xlPasteValues 
    ESEMPIO:

    ' COPY PASTE VALUES ONLY
    Sub ExecuteCopyPasteValues()
        ' Save the current active sheet
        Dim sheetActive As Worksheet
        Set sheetActive = ThisWorkbook.ActiveSheet
        
        ' Open the source file
        Dim SourcePath As String
        SourcePath = "YourPath\CartelSource.xlsm"
        Dim SourceWorkbook As Workbook
        Set SourceWorkbook = Workbooks.Open(SourcePath)
        SourceWorkbook.Windows(1).Visible = False
           
        ' Copy the range from the source file
        SourceWorkbook.Sheets("Ins_Utenti").Range("I42:J71").Copy
      
        ' Paste into the destination sheet (only values)
        With ThisWorkbook.Sheets("Liste")
            .Activate
            .Range("M3").PasteSpecial Paste:=xlPasteValues  ' Only values paste
            ' Cancel the copy mode without selecting anything
            .Range("M3").Select
        End With
        
        ' Return the focus to the sheet that was active before
        sheetActive.Activate
            
        ' Close the source file
        SourceWorkbook.Close SaveChanges:=False
    
        ' Show a message box when the operation is complete
        MsgBox "The copy and paste operation was completed successfully.", vbInformation, "Info"
    End Sub
  • Re: Problema copia incolla con foglio protetto

    Grazie a tutti per le risposte.

    Domani proverò ad applicare i vostri suggerimenti e vi farò sapere.

  • Re: Problema copia incolla con foglio protetto

    17/02/2025 - Premuroso ha scritto:

    Domani proverò ad applicare i vostri suggerimenti e vi farò sapere.

    NO NO NO NO ... io lo voglio sapere subito  ;-)

  • Re: Problema copia incolla con foglio protetto

    Eeee... subito subito ieri sera sarebbe stato un problema.

    Primo perchè mi trovo in Thailandia e con il fuso orario di 6 ore in avanti era un pò tardino.

    Secondo perchè quando vi ho risposto ero appena rientrato in hotel dopo svariati giri di Tequila... capirai che bella idea sarebbe stata di mettermi a pasticciare con Excel.

    Sgrubak.....................

    Si ogni volta che il file è salvato e si esce da Excel il file rimane protetto. Alla sua riapertura bisogna però ridare il comando UserInterfaceOnly:= True altrimenti le macro non possono più modificarne il contenuto. Ecco perchè ho inserito il comando nella Sub Workbook_Open().

    By65Franco...............

    Hai fatto centro. Con il codice che mi hai gentilmente scritto tutto funge senza intoppi. GRANDE.

    Grazie ancora a tutti e due.

  • Re: Problema copia incolla con foglio protetto

    18/02/2025 - Premuroso ha scritto:

    Primo perchè mi trovo in Thailandia e con il fuso orario di 6 ore in avanti era un pò tardino.

    Secondo perchè quando vi ho risposto ero appena rientrato in hotel dopo svariati giri di Tequila...

    ....e quindi ? ti sembra bello ???  

    Pure io sono a enne ore di fuso in quel di Kiribati nelle isole Gilbert... non bevo Tequila e.... mo' non te posso dì cosa faccio... però ad una chiamata di aiuto rispondo sempre e comunque ...  ;-(

    Anzi fai una cosa, visto che sei in giro, appena hai fatto lì fai un salto da me, tanto un areo vale l'altro... e porta una buona crema. Dimmi quando arrivi che ti faccio trovare tutto pronto.

  • Re: Problema copia incolla con foglio protetto

    He he he.....

  • Re: Problema copia incolla con foglio protetto

    Allora ti aspetto... ;-)) ...non farti scrupoli !!!

    Guarda ... siamo al centro del Mondo... da dove sei ti basta andare verso destra e poi per tornare a casa puoi continuare sempre a destra.

  • Re: Problema copia incolla con foglio protetto

    Dove sei ? glu glu glu io sono glu glu arrivato glu glu.... He he.

    Ciao.

  • Re: Problema copia incolla con foglio protetto

    Hahaahaha...  domani ho appuntamento sotto una palma ... però piove ;-(

    Mi preparo per la cena, giornataccia oggi. Ma tu sei rientrato? 

Devi accedere o registrarti per scrivere nel forum
10 risposte