Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    112

    [VBA EXCEL] codice per verifica protezione foglio

    ho delle macro che se attivate quando il foglio è protetto mi danno errore.
    vorrei inserire all'inizio di queste macro una stringa di codice che mi verifichi se il foglio è protetto e, in caso affermativo, segnali ciò tramite msgBox ed esca dalla macro, ma non riesco a capire cose devo scrivere nella condizione if.

    qualcuno può darmi un'indicazione?

    poichè queste righe di codice dovrei copiarle su più macro, ho anche pensato di creare una funzione che mi effettui questo controllo e chiamarla quando mi serve. come dovrei procedere in questo caso? le funzioni vanno reistrate sempre nei moduli come le routine?

    grazie !!!
    pani

  2. #2
    sicuramente è un metodo sbagliato ma è l'unico che mi è venuto in mente non conoscendo benissimo excel.
    allora vediamo se riesco a spiegarmi.

    se il foglio è protetto avrai delle celle in cui è impossibile scrivere mentre quando non è protetto puoi tranquillamente scriverci dentro... giusto?

    allora ho pensato che se creo una macro che scrive in una cella se questa riesce il foglio non è protetto, se fallisce è protetto:

    codice:
    On Error GoTo Err1'inizializza gestione errori
          
           Range("A1").Select
          ActiveCell.FormulaLocal = "a" 'se fallisce da errore quindi il foglio è protetto e va alla gestione errori altrimenti scrive nella cella e ti avverte che il foglio è non protetto
          MsgBox "foglio non protetto
    Exit Function
        
    Err1:
    MsgBox "foglio protetto"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    112
    Grazie borgodiavalon.

    alla fine, quasi per sbaglio, visto che cercavo un'altra cosa, ho trovato la proprietà ProtectContents per cui mi è bastato scrivere questo codice che si adatta alla mie esigenze.

    codice:
    if activesheet.protectContents = true then
        MsgBox "Rimuovere protezione prima di proseguire"
        exit sub
    end if
    l'ho messo all'inizio delle macro interessate in modo che termini la routine se questa tenta di modificare un foglio protetto, dando perciò errore

    saluti

    p

  4. #4
    no, grazie a te, io ho imparato una cosa nuova

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.