› Sviluppare funzionalita su Microsoft Office con VBA › Messaggi con macro
-
AutoreArticoli
-
Buonasera, nel file che allego non riesco a capire dove c'è l'errore , cioè quando clicco in qualsiasi celle tra B15:C20 dovrebbe uscire un messaggio e lampeggiare F15, poi un messaggio e lampeggiare F17,poi dovrebbe uscire un messaggio e lampeggiare F17 , Attualmente se clicco esempio su B15 mi esce il messaggio riferito blink3 e mi va in errore.se chiudo mi si blocca il codice per riavviarlo devo chiudere e riaprire il file. Ho notato che Dim r,r2,r3 rilevano testo come anche Dim cell,cell2 ma non in cell3 .
Grazie
Uso MSOPP2021
Allegati:
You must be logged in to view attached files.Ciao,
secondo me ti stai ingarbugliando in un codice privo di logica.
Puoi spiegare chiaramente non cosa fa quel codice ma cosa vorresti succedesse alla selezione di una delle celle B15:C15, B17:C17, B20:C20?
Buongiorno vorrei che quando clicco sulle celle B15 o C15, e nella cella F15 esce il messaggio che c'è scritto nelle stesse e lampeggiasse così anche x la cella B17 o C17, lampeggia F17, B20 o C20 lampeggia F20.
Grazie
Scoravo deve uscire anche il relativo messaggio sia x F15, che F17 e F20Buongiorno vorrei che quando clicco sulle celle B15 o C15, e nella cella F15 esce il messaggio che c'è scritto nelle stesse e lampeggiasse così anche x la cella B17 o C17, lampeggia F17, B20 o C20 lampeggia F20.
Non me ne volere ma bisogna essere chiari e precisi: cosa significa "esce il messaggio"?
a) se seleziono cella B15: F15 lampeggia; msgbox con in contenuto di F15; fine! se seleziono cella B17: F17 lampeggia; msgbox con in contenuto di F17; fine! se seleziono cella B20: F20 lampeggia; msgbox con in contenuto di F20; fine! b) se seleziono cella B15: F15 lampeggia; msgbox con in contenuto di F15; F17 lampeggia; msgbox con in contenuto di F17; F20 lampeggia; msgbox con in contenuto di F20; fine! se seleziono cella B17: F15 lampeggia; msgbox con in contenuto di F15; F17 lampeggia; msgbox con in contenuto di F17; F20 lampeggia; msgbox con in contenuto di F20; fine! se seleziono cella B20: F15 lampeggia; msgbox con in contenuto di F15; F17 lampeggia; msgbox con in contenuto di F17; F20 lampeggia; msgbox con in contenuto di F20; fine!
Quale comportamento tra a) e b) rispecchia il tuo scopo? Se nessuno dei 2 schematizza come sopra il comportamento desiderato.
P.S.: riuscire a schematizzare, anche solo banalmente come sopra, è la base per capire quello che si ha in mente.
Buongiorno, è la soluzione ( b) nota che le celle hanno la formattazione condizionale.
Il messaggio di avviso può contenere
la dicitura che ho fatto con la formattazione condizionaleQuesta è la soluzione che fa al caso mio:
Se il testo nella cella B15 o C15 cambia; msgbox con in contenuto di B15 o C15 e lampeggia F15
Se il testo nella cella B17 o C17 cambia; msgbox con in contenuto di B15 o C15 e lampeggia F17
Se il testo nella cella B20 o C20 cambia; msgbox con in contenuto di B20 o C20 e lampeggia F20
Spero aver esposto in maniera corretta cosa mi serve.
Grazie mille
Butta via tutto quel codice e prova questo:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("B15:C15,B17:C17,B20:C20")) Is Nothing Then blink Target.Cells(1, 1) End If End Sub Private Sub blink(r As Range) 'Originale Funziona Dim y As Integer 'Originale Funziona Dim PauseTime As Single 'Originale Funziona Dim Finish As Single 'Originale Funziona 'MsgBox r.Text PauseTime = 0.3 'Originale Funziona For y = 1 To 5 'Originale Funziona Finish = Timer + PauseTime 'Originale Funziona Do While Timer < Finish 'Originale Funziona DoEvents 'Originale Funziona With Range("F" & r.Row) 'Originale Funziona .Interior.ColorIndex = 6 '6= GIALLO'Originale Funziona .Font.ColorIndex = 1 '1 = NERO'Originale Funziona End With 'Originale Funziona Loop 'Originale Funziona Finish = Timer + PauseTime 'Originale Funziona Do While Timer < Finish 'Originale Funziona DoEvents 'Originale Funziona With Range("F" & r.Row) .Interior.ColorIndex = 3 ' 3=ROSSO 'Originale Funziona .Font.ColorIndex = 2 '2=BIANCO 'Originale Funziona End With 'Originale Funziona Loop 'Originale Funziona Next y 'Originale Funziona MsgBox r.Text End Sub 'Originale Funziona
N.B.: ho messo il msgbox alla fine perché non può esserci contemporaneamente il msgbox ed il "lampeggio".
-
AutoreArticoli