Tramite questa macro
- Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
If IsError(Range("bm4")) Then Exit Sub
If Range("bm4") <> 0 Then Exit Sub
If Range("bb1").Value <> Range("bm4").Value Then
Application.EnableEvents = False
Range("bb1").Value = Range("bm4").Value
Call RIGAVUOTA
Application.EnableEvents = True
Else: Exit Sub
End If
End Sub
quando nella cella cella BM4 ho il valore 0 mi parte la macro RIGAVUOTA che è questa
- Codice: Seleziona tutto
Sub RIGAVUOTA()
Sheets("nuovo").Range("BK5:CB5").Copy
Sheets("nuovo").Range("BK5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("nuovo").Range("BK5:CB5").Insert
Application.CutCopyMode = False
End Sub
che mi sposta tutto di una riga piu in basso e mi lascia uno spazio.
Comunque io vorrei sapere se è possibile che questa macro venga attivata solo una volta quando nella cella BM4 c'è il valore 0 che viene trovato tramite questa formula,
- Codice: Seleziona tutto
=SE.ERRORE(CONFRONTA(CERCA.VERT(U4;DN4:DN233;1;0);DN4:DN233;0)-1;"0")
In U4 il valore lo metto tramite tastiera.
A me succede che quando il valore è 0 la macro si attiva ma basta che io metta altri valori in altre celle che la macro parte visto che in BM4 ho ancora 0 e lo stesso quando riapro il file la macro parte.
vorrei sapere se è possibile bloccare questa cosa sino a quando in BM4 il valore non sia diverso da 0 ma che si riattivi quando torna a 0 ma solo una volta.
Grazie