messaggio di errore con due celle piene

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Pagine: 1, 2, 3, [4]
rollis13
00mercoledì 14 febbraio 2018 18:02
Il progetto globale è tuo per cui puoi essere solo tu quello che può analizzare l'intero ciclo delle macro.
Per esempio, se la Macro1 deve fare solo la pulizia dei fogli, che c'azzecca l'avvio della macro Workbook_SheetChange, ovvero quella che contiene la riga "If Not Intersect(Target, [I14:I57]) Is Nothing Then", che va in errore ? evidentemente ti manca nella Macro1 la gestione degli eventi con "Application.EnableEvents = False" che andrai a mettere subito dopo "If avviso = vbNo Then Exit Sub" per poi riattivarli in fondo prima della riga "Set wb = Nothing", in pratica dopo la pulizia e prima della fine della macro in modo che non venga mai attivata la gestione degli eventi in quando di nessuna utilità in questo frangente.
trittico69
00giovedì 15 febbraio 2018 14:55
ho fatto cosi

Sub Macro1() 'cancella i dati e commenti in tutti i mesi
 
Dim wb As Workbook
Dim R As Integer
Dim avviso As String
avviso = MsgBox("Stai per ripulire il foglio," & vbLf _
    & "è proprio quello che ti proponevi di fare ?", _
    vbYesNo + vbExclamation, "Pulitura Foglio")
If avviso = vbNo Then Exit Sub
Application.EnableEvents = False
Set wb = ThisWorkbook
 
wb.Sheets("RIEP").Range("C2,C3,C4,C5,C7").FormulaR1C1 = "0"
For R = 2 To 13
    With Sheets(R)
        .Unprotect
        With .Range("B14:J56,J12,I12")
            .ClearContents
            .ClearComments
        End With
        .Range("J12,I12,M12,O12,F10,G10,H10,O9,BG13,BH13").ClearContents
        
         .Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
    End With
Next R
 Application.EnableEvents = False
Set wb = Nothing
Sheets("RIEP").Select
End Sub



se clicco "no" sul messaggio box va bene se clicco "si" mi incarbuglia un po il foglio "riep"
dove sbaglio?
stesso errore me lo fa sostituendo la riga
Application.EnableEvents = False
con
Application.EnableEvents = True
prima di
Set wb = Nothing

ti allego il file
rollis13
00giovedì 15 febbraio 2018 23:31
In caso di non necessità della gestione degli eventi s'è sempre detto che prima vanno disabilitati e poi riabilitati, pertanto, prima si mette un "False" e poi si mette "True". Per quale motivo hai avuto un dubbio nel gestire la macro ?

Per quanto riguarda il foglio Riep se analizzi la macro noterai che l'unica operazione che viene effettuata durante la pulizia in questo foglio è inserire uno "0" nelle celle Range("C2,C3,C4,C5,C7"); per quale motivo affermi "se clicco "si" mi incarbuglia un po il foglio "riep"" !! Al massimo può solo essere un problema grafico e questo succede quando durante l'esecuzione di una macro viene aggiornato spesso il display (inutilmente), pertanto, mettici all'inizio della Macro1 un Application.ScreenUpdating = False e poi alla fine un Application.ScreenUpdating = True .
trittico69
00domenica 18 febbraio 2018 14:53
ok sembra andare bene.
grazie
trittico69
00sabato 20 giugno 2020 09:23
riprendo questa discussione per vedere se qualcuno mi aiuta a fare un codice.
Mi dovrebbe comparire un messaggio box se nella colonna J14:J52 viene scritto un numero diverso da 2,4,7,29 e 30 quando in corrispondenza della colonna A14:A52 la cella non è colorata.
grazie
by sal
00domenica 21 giugno 2020 09:46
Ciao trittico meglio aprire una nuova discussione e fare riferimento a questa.

spiegando cosa si deve fare con qualche esempio anche manuale.

vedono una discussione vecchia e viene tralasciata

Ciao By Sal [SM=x423051]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 00:02.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com