Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

aiuto funzione vba

Ultimo Aggiornamento: 16/01/2017 09:46
Post: 5
Registrato il: 07/03/2016
Città: BAGNACAVALLO
Età: 53
Utente Junior
Excel 2011
OFFLINE
13/01/2017 23:47

Salve a tutti
ricorro al vostro aiuto visto le mie scarse conoscenze in materia.
scrivendo un valore dalle celle DU6 a DU19 (anche se solo le prime tre sono funzionanti) in automatico nelle celle B6 a B14 compare la data del giorno corrispondente alla compilazione della singola riga ( e questa rimane fissa). Nella colonna V c'è una formula con formattazione che è il risultato della differenza tra es. B6 con X6 e ogni 3 giorni vidima in grigio.
Cancello tutta la riga con tasto macro nella colonna A

Dovendo mettere una password al foglio (questa è solo una parte del foglio di lavoro perché devo bloccare altre celle) non riesco più ad usare il tasto corrispettivo macro.

Mi piacerebbe che
-colonna B fosse bloccata almeno alla comparsa della data
-usando il tasto macro mi cancellasse nella corrispettiva riga cella B cella DU
Spero sia chiaro.
Grazie

Post: 447
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
14/01/2017 15:43

Tanto per smuovere le acque ...
Per fare quello che chiedi credo sia necessario, oltre a proteggere il foglio, "bloccare" alcune celle e lasciarne altre "non bloccate" ed in particolare il range D6:D19. Questo lo puoi fare tramite il "formato celle" modificando l'impostazione nella scheda Protezione; poi quando proteggi il foglio metti la spunta su "Seleziona celle sbloccate" che ti permettere di muoverti solo sulle celle che hai inteso lasciare modificabili.
A questo punto la macro WorkSheet_Change potresti cambiarla così:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Area1 As String     'dichiara le variabili
    Dim RR As Long
    
    Area1 = "D6:D19"
    RR = Target.Row
    If Application.Intersect(Target, Range(Area1)) Is Nothing Then Exit Sub
    ActiveSheet.Unprotect
    Range("B" & RR).Value = Date
    Range("B" & RR).Locked = True                'blocca la cella una volta compilata
    Range("D" & RR & ":U" & RR).Locked = True    'blocca le celle
    ActiveSheet.Protect

End Sub
mentre la macro associata al pulsante per la pulizia della riga (da ripetere/adeguare più volte visto che hai più pulsanti) puoi modificarla così:
Sub Macro1()
    
    Application.EnableEvents = False     'serve per evitare di attivare inutilmente l'evento WorkSheet_Change 
    ActiveSheet.Unprotect
    Range("B6").Locked = False           'rendi nuovamente sbloccata la cella
    Range("B6").ClearContents
    Range("D6:U6").Locked = False        'sbloccate le celle
    Range("D6:U6").ClearContents
    ActiveSheet.Protect
    Application.EnableEvents = True
    
End Sub

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 5
Registrato il: 07/03/2016
Città: BAGNACAVALLO
Età: 53
Utente Junior
Excel 2011
OFFLINE
16/01/2017 09:46

Grazie mille rollis13 dell'aiuto, x fortuna esiste il forum.
Ciao
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:30. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com