Corso VBA Excel ITA - 86 - Progetto gestionale - Tasto conferma

  Рет қаралды 2,677

NickTheGeek

NickTheGeek

Күн бұрын

Codice per gestire il click al conferma, nel caso di validazione eseguita per singolo campo.
Repository dei file su GitHub: github.com/Nic...

Пікірлер: 13
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Al minuto 17:49 faccio riferimento al campo CAP dicendo che è quello che avrebbe dato problemi, ma in realtà quello sarebbe stato il campo Nome (come visto pochi secondi prima); la sostanza comunque non cambia.
@droitaucoeur1
@droitaucoeur1 3 жыл бұрын
Ciao Nicola. Ecco un esempio di modulo di classe che permette di gestire tutte le textbox di un formulario. Nel Modulo di classe Option Explicit Private WithEvents TBx As MSForms.TextBox Public Sub Init(ByVal TxtBox As MSForms.TextBox) Set TBx = TxtBox End Sub Qui, con l'evento Exit, aggiungi le tue condizioni, senza farlo per tutte le textbox. Private Sub TBx_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If TBx.SelStart = 0 Then KeyAscii = AscW(UCase$(ChrW$(KeyAscii))) End Sub Option Explicit Private Cln As New Collection Private Sub UserForm_Initialize() Dim N As Integer Ajout TextBox4 For N = 20 To 35 Step 5: Ajout Me("TextBox" & N): Next N End Sub Private Sub Ajout(ByVal TBx As MSForms.TextBox) Dim SBx As SupportTBx Set SBx = New SupportTBx SBx.Init TBx Cln.Add SBx End Sub
@gurso819
@gurso819 4 жыл бұрын
Scusi la domanda. In alternativa, dopo l'evento exit su ogni controllo, in caso di errore, si potrebbe riportare il focus su quel controllo?
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Ciao, sì si potrebbe con l'evento SetFocus dopo aver intercettato l'errore, ma mi sembra di averlo provato in passato e aveva qualche problema, tipo che il focus si spostava comunque al controllo successivo. Se vuoi comunque puoi fare un tentativo.
@gurso819
@gurso819 4 жыл бұрын
Grazie della risposta. Farò una prova appena possibile. In ogni caso complimenti per l'ottimo lavoro. Un saluto.
@NickTheGeek
@NickTheGeek 4 жыл бұрын
Grazie per i complimenti, ciao.
@tranceandflight4992
@tranceandflight4992 3 жыл бұрын
@@NickTheGeek usate cancel= true funziona il focus torna su quel campo
@NickTheGeek
@NickTheGeek 3 жыл бұрын
@@tranceandflight4992 Grazie
@nicksan7263
@nicksan7263 Жыл бұрын
Ciao Nick, mi sono incartato sul controllo campi nel mio Gestionale e non capisco come uscirne. Un esempio su tutti: ho creato la Sub (che allego) e vorrei che il controllo sul campo lo facesse nel momento dell'inserimento, cioè se premo Tab e non inserisco nulla allora mi deve dare il messaggio altrimenti scrive in maiuscolo. Private Sub TxtCognome_Change() If TxtCognome.Text "" Then TxtCognome.Text = UCase(TxtCognome.Text) Else TxtCognome.BackColor = rgbRed MsgBox "QUESTO CAMPO E' OBBLIGATORIO", vbCritical, "ATTENZIONE" TxtCognome.BackColor = rgbWhite TxtCognome.SetFocus End If End Sub Il problema è sul controllo vuoto .. non mi compare nulla e prosegue sul campo successivo. Ho provato con l'evento Exit anziché Change e funziona ma l'inserimento avviene in minuscolo nel campo e il SetFocus non si riposiziona nel campo Cognome vuoto. Come potrei fare?
@NickTheGeek
@NickTheGeek Жыл бұрын
Ciao, potresti provare con l'evento Exit scrivendo l'istruzione Cancel = True al posto del SetFocus: Private Sub txtCognome_Exit(ByVal Cancel As MSForms.ReturnBoolean) If txtCognome.Text "" Then txtCognome.Text = UCase(txtCognome.Text) Else txtCognome.BackColor = rgbRed MsgBox "QUESTO CAMPO E' OBBLIGATORIO", vbCritical, "ATTENZIONE" txtCognome.BackColor = rgbWhite Cancel = True End If End Sub
@nicksan7263
@nicksan7263 Жыл бұрын
@@NickTheGeek Dimenticavo di dirti che la Sub è all'interno del Modulo1 (che richiamo alla fine dell'inserimento di tutti i campi), quindi così non funziona perchè mi dice che "la variabile Cancel non è definita". Il controllo funziona solo se è all'interno della Sub (non nel Modulo).
@NickTheGeek
@NickTheGeek Жыл бұрын
Allora non penso che si possa fare, perché da quello che so il Cancel può essere relativo solo a un CommandButton, e non può essere inserito in una normale subroutine.
@nicksan7263
@nicksan7263 Жыл бұрын
@@NickTheGeek Ok va bene, allora ho riportato tutti i controlli all'interno della Sub, anzichè nel Modulo, e funziona tutto. Grazie Nick.
Corso VBA Excel ITA - 65 - Userform e controlli (listbox parte 1)
20:19
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
Berlin in December in Slow German | Super Easy German 268
16:24
Easy German
Рет қаралды 284 М.
All Rust string types explained
22:13
Let's Get Rusty
Рет қаралды 201 М.
Excel Macros & VBA - Tutorial for Beginners
50:20
Kevin Stratvert
Рет қаралды 1,3 МЛН
How Diplomats Learn Languages Fast | Easy German 585
18:07
Easy German
Рет қаралды 416 М.
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН