Pagina precedente | 1 2 3 4 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

messaggio di errore con due celle piene

Ultimo Aggiornamento: 21/06/2020 09:46
Post: 205
Registrato il: 02/04/2010
Città: MILANO
Età: 54
Utente Junior
2002
OFFLINE
08/02/2018 09:02

ok capito... si potrebbe fare invece che se il valore in M8 varia si attiva la macro in questione? viso che quel valore cambia anche incollanto piu celle!
tipo questa che però non va

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "m8" Then
Call minuti
End If
End Sub
lo messa in un foglio ma non va...probabilmente perchè nella cella c'è una formula
allora ho provato questa ma nulla di fatto
Dim oldm8
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("m8").Precedents) Is Nothing And _
Range("m8").Value <> oldm8 Then
Call minuti
oldm8 = Range("m8").Value
End If
End Sub



poi ho provato cosi ma nulla

Option Explicit


Dim oldm8
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("m8").Precedents) Is Nothing And _
Range("m8").Value <> oldm8 Then
Call minuti
oldm8 = Range("m8").Value



Sub minuti() ' questo codice si avvia con il rigo fine call minuti che si trova nel this workbook

Dim AG As Range
Dim AH As Range
Dim AI As Range
Dim F As Range
Dim G As Range
Dim H As Range

Set AG = ThisWorkbook.ActiveSheet.Range("AG31")
Set AH = ThisWorkbook.ActiveSheet.Range("AH31")
Set AI = ThisWorkbook.ActiveSheet.Range("AI31")
Set F = ThisWorkbook.ActiveSheet.Range("F10")
Set G = ThisWorkbook.ActiveSheet.Range("G10")
Set H = ThisWorkbook.ActiveSheet.Range("H10")
If ActiveSheet.Name <> "RIEP" And ActiveSheet.Name <> "codici servizi" Then
ActiveSheet.Unprotect
Application.EnableEvents = False
Select Case True
'SE LA SOMMA DEI MINUTI DELLE 3 CELLE SONO MINORI O UGUALI A 30 NON FARE NULLA
Case VBA.Minute(AG) + VBA.Minute(AH) + VBA.Minute(AI) <= 30
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
Case VBA.Minute(AG) = 0 _
And VBA.Minute(AH) > 30 _
And VBA.Minute(AI) > 30 _
And VBA.Minute(AH) + VBA.Minute(AI) < 90
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
Case VBA.Minute(AG) = 0 _
And VBA.Minute(AH) > 30 _
And VBA.Minute(AI) > 30 _
And VBA.Minute(AH) + VBA.Minute(AI) > 90
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
'SE LA SOMMA DEI MINUTI DELLA 1ª E 2ª CELLA SONO MAGGIORI DI 30,
'MA MINORE O UGUALE A 90 E I MINUTI DELLA 1ª CELLA SONO
'MAGGIORI O UGUALI ALLA 2ª CELLA INCREMENTA LA 1ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) > 0 _
.....................
......................
[Modificato da trittico69 08/02/2018 15:02]
excel 2003
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 3 4 | 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 22:47. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com