label lampeggiante

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
patrik01
00sabato 17 agosto 2019 14:24
Ciao a tutti,
come rendere lampeggiante il testo della label1 dell'userform allegata?
Grazie
patrik
alfrimpa
00sabato 17 agosto 2019 15:21
Fai una ricerca sul forum perchè l'argomento (cella lampeggiante) è stato trattato molte volte.

Oppure anche con Google "Excel VBA Blinking cells"
patrik01
00sabato 17 agosto 2019 16:04
Non cella lampeggiante ma il testo di una label di una userform.
rollis13
00sabato 17 agosto 2019 16:04
Un saluto a tutti.

Da quello che ho capito io credo che il problema non sia far lampeggiare una cella bensì il testo di una label in una userform.
Dato che per far lampeggiare una cella si usa sempre la funzione vbe Application.OnTime non credo che questa possa applicata al testo di una label, al massimo nella proprietà della label si può impostare un formato testo diverso (grassetto, corsivo, un colore, ecc.).
alfrimpa
00sabato 17 agosto 2019 16:45
Scusa Rollis forse mi sbaglio ma mi sembra di ricordare che la label abbia la proprietà ForeColor che dà il colore al testo (caption) in essa contenuto.

Se con un Application.Ontime si imposta per tot secondi il ForeColor = al BackColor e poi nuovamente ForeColor <> BackColor non si ottiene il "lampeggio" del testo contenuto in una label?

O ricordo male?

Che si tratti di celle o label sempre da Application.OnTime occorre partire.
rollis13
00sabato 17 agosto 2019 17:41
Per 'colore' mi riferivo a quel poco che si può fare con il parametro 'Font'

Per quanto riguarda l'Application.Ontime l'ho sempre utilizzata per lanci di altre macro e non ho mai 'pasticciato' usandola con i parametri di una Label, sarebbe da provare, ma credo che ci sia poco spazio temporale per tra il gestire la temporizzazione ed il tempo reale dell'apertura di quell' UserForm (serve solo per selezionare una voce) che ha vita breve.
rollis13
00sabato 17 agosto 2019 18:34
Ok, ho provato a 'pasticciare' e questo è quello che ho partorito:

Per valutare bisogna accedere al file dato che ci sono diverse piccole integrazioni in vari punti ma in pratica ho aggiunto un timer con macro avvio/stop ed un richiamo a tali macro da vari punto del progetto.
Per ora ho riscontrato una sola criticità, se chiudo l'UserForm con la croce e poi non clicco su una cella, alla successiva apertura dell'UserForm la Label non lampeggia.
Option Explicit
Dim xTime As Variant                              '<= aggiunta

Sub prova()

    UserForm1.Show
    
End Sub

Sub lampeggia()                                   '<= aggiunta

    xTime = Now + TimeSerial(0, 0, 1)
    UserForm1.Label1.Visible = Not UserForm1.Label1.Visible
    Application.OnTime xTime, "lampeggia", , True
    
End Sub

Sub interrompi()                                  '<= aggiunta

    On Error Resume Next
    Application.OnTime xTime, "lampeggia", , False
    
End Sub
Private Sub UserForm_Initialize()

    Me.Label1.Caption = Environ("UserName") & " inserisci il numero di righe da eliminare"
    Call lampeggia                                '<= aggiunta
    
End Sub
Private Sub CommandButton2_Click()

    Call interrompi                               '<= aggiunta
    Unload Me
    End
    
End Sub
Private Sub CommandButton1_Click()

    If Me.ComboBox1.BoundValue = vbNullString Then
    End If
    Call interrompi                               '<= aggiunta
    Unload Me
    
End Sub
patrik01
00sabato 17 agosto 2019 19:05
Grazie rollis,
aspetto una modifica?
patrik
rollis13
00sabato 17 agosto 2019 19:24
Sinceramente no, non ho mai 'pasticciato' così tanto 😁.
Adesso, prima devo capire che 'giri' fa Excel VBE quando viene premuta la X 😮.
dodo47
10sabato 17 agosto 2019 19:41
Re:
rollis13, 17/08/2019 19.24:

Adesso, prima devo capire che 'giri' fa Excel VBE quando viene premuta la X 😮.



mbè, senza che ti impazzisci di più puoi sempre inibirla/intercettarla con la Private Sub UserForm_QueryClose....😉

saluti



rollis13
00sabato 17 agosto 2019 21:27
Grazie dell'imbeccata 👍, così me la cavo con poco 🙄.
In realtà il mio pensiero era: "e se l'utente avesse bisogno della X ?".

Senza X basta aggiungere nel codice dell'UserForm quest'altra macro:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    If CloseMode <> 1 Then Cancel = True
    Me.Caption = "Chiudi con gli appositi pulsanti !"
    
End Sub
dodo47
00domenica 18 agosto 2019 09:51
Re:
rollis13, 17/08/2019 21.27:

.......In realtà il mio pensiero era: "e se l'utente avesse bisogno della X ?".




E che cambia? intanto intercetta la X e termina l'OnTime (che non vedrei...), poi non è detto che la queryClose debba per forza inibire la X, può semplicemente continuare il processo di chiusura della form senza ulteriori pulsanti ignorando il parametro Cancel.

(sempre che stiamo parlando della stessa cosa 🙄)

saluti



rollis13
00domenica 18 agosto 2019 14:47
Hai perfettamente ragione 👍, è che ieri sera c'ho messo diverse ore per realizzare che una volta intercettato la X si può procedere come si vuole; sul momento, dopo l'imbeccata, mi bastava terminare correttamente l'Application.Ontime.
Ora però, dopo il bel giro in bicicletta di questa mattina, lascio il divertimento di fare qualche aggiustamento all'utente 😁.
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 16:55.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com