Excel e gli applicativi Microsoft Office MACRO PER SBLOCCARE CELLE SPECIFICHE

LoginRegistrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #22607 Risposta

    Buongiorno a tutti

    Seguendo il consiglio di Marius44 mi sono registrato e vi allego il file

    Sono nuovo nel settore VBA ed ho un problema che, a mio avviso può essere risolto solamente con l'utilizzo di una macro.

    Spiego meglio quale è il mio problema:

    Ho un foglio excel nel quale ho tutte le celle con una formula "if" inserita che restituisce 3 valori diversi in base al variare di una condizione. Questo foglio deve restare sempre sotto protezione delle celle in modo che, chi lo modifica (non essendo sempre io) non elimini le formule presenti e scombini il lavoro di "stesura" del foglio.

    La formula in questione è la seguente  =SE($B11=0;"Festivo";SE($B11="x";"Chiusi";"")) che varia in base ad una condizione legata ai giorni di un calendario (vorrei che, ai miei fini statistici, risultino i giorni festivi e di chiusura aziendale) che nel foglio vengono inseriti automaticamente ad un inserimento manuale dell'anno nella cella A2 (Questa cosa, per semplificare il foglio da allegare l'ho tolta e l'ho inserita manualmente).

    Le celle che risulteranno con la scritta "Festivo" (sabati e domeniche) dovranno essere bloccate, lo stesso per le celle che risulteranno con la scritta "Chiusi" (giorni di chiusura aziendale); tutte le altre nel range della griglia che risulteranno (visivamente) vuote (ma che in realtà avranno, al loro interno, quella formula) dovranno diventare modificabili.

    Devo quindi far si che questa macro si richiami quando cambio l'anno e che il foglio (qualora ne avessi bisogno) abbia una password per permettermi di apportare modifiche varie (come il classico CONSENTI MODIFICA INTERVALLI)

    Spero di essermi spiegato al meglio possibile per ottenere un aiuto

    Allegati:
    You must be logged in to view attached files.
    #22611 Risposta
    Marius44
    Marius44
    Moderatore
      21 pts

      Ciao

      Non discuto sul fatto che ci possa essere un foglio con tante formule, ma tant'è.

      Fai questa prova. Seleziona B4:BP34, poi vai su Dati ==> Convalida dati e clicca su Convalida dati. Nelle finestra che si apre sotto Consenti clicca su Personalizzato e dove c'è Formula inserisce  SE(O($B4=0;$B4="x"))

      Poi seleziona Messaggio di errore e nella relativa cella inserisci Cella bloccata.

      Se inserisci qualcosa in una cella di una riga il cui valore nella col.B è 0 oppure "x" quanto scritto viene cancellato e la formula sottostante ripristinata.

       

      Fai sapere. Ciao,

      Mario 

      PhobosNight
      #22626 Risposta

      Ciao Marius44, grazie per la risposta

      Credo di non essermi spiegato bene

      Mi scuso, ma al momento non saprei come semplificare le formule inserite... detto questo spiego meglio le mie necessità.

      Ho bisogno che le celle legate alla formula in questione (  =SE($B11=0;"Festivo";SE($B11="x";"Chiusi";""))  ) si comportino come segue: qualora le celle riportino la dicitura Festivo o Chiusi devono bloccarsi al richiamare della macro (o di qualsiasi cosa sortisca l'effetto desiderato) le altre celle, quelle che rimarrebbero apparentemente vuote (ma con al loro interno quella formula) devono invece rimanere modificabili.

      Il tutto comprendendo anche il fatto che tutte le altre celle già compilate restino bloccate.

      Insomma, prendendo ad esempio il file allegato, questa condizione deve essere valida per l'intervallo C4:BQ34 e tutte le altre invece devono restare sempre bloccate (il tutto, sarebbe meglio, sotto password). 

      L'unica altra cosa che mi viene in mente adesso è che la condizione di bloccate e sbloccate deve rimanere così ogni volta che apro il foglio, quindi la macro (o altre cose) si deve richiamare in automatico all'avvio della cartella di lavoro.

      Grazie mille

      #23039 Risposta
      Marius44
      Marius44
      Moderatore
        21 pts

        Ciao

        Scusa ma mi era sfuggita la richiesta.

        Ho inserito nel tuo file questa macro che dovrebbe fare quello che chiedi.

        Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("$C$4:$BQ$34")) Is Nothing Then
        If Cells(Target.Row, 2) = 0 Then
        MsgBox "Azione NON consentita."
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        End If
        End If
        End Sub

        Come vedi, va inserita nel Modulo del Foglio del mese.

        Fai sapere. Ciao,

        Mario

        Allegati:
        You must be logged in to view attached files.
        #23067 Risposta

        Ciao Marius 

        E' perfetta.

        Sostanzialmente, da quel che vedo... te la lascia modificare, ma appena dai invio torna identica a prima e appare il MSG BOX

        Ottimo, Grazie mille

        #23072 Risposta

        fratof
        Partecipante

          Buongiorno a Tutti,

          non sono molto pratico di VBA, ma ho bisogno che nel file in allegato mi si blocchino le righe di celle dalla colonna A alla colonna N in base al valore della colonna O.

          SE O3="IN ELABORAZIONE" o "PROCESSATO" mi si devono bloccare tutte le celle da A3 a N3

          Questo deve continuare su tutto il foglio.

          Allego foglio di calcolo.

          Allegati:
          You must be logged in to view attached files.
          #23086 Risposta
          Marius44
          Marius44
          Moderatore
            21 pts

            Ciao

            Non accodarti ad altra discussione, ne va della tua visibilità.

            Riproponi la richiesta in una nuova discussione.

             

            Ciao,

            Mario

          LoginRegistrati
          Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
          Rispondi a: MACRO PER SBLOCCARE CELLE SPECIFICHE
          Gli allegati sono permessi solo ad utenti REGISTRATI
          Le tue informazioni:



          vecchio frac - 2750 risposte

          albatros54
          albatros54 - 1009 risposte

          patel
          patel - 908 risposte

          Marius44
          Marius44 - 786 risposte

          Luca73
          Luca73 - 675 risposte