Тёмный

Corso VBA Excel ITA - 62 - Userform e controlli (casella di testo ed etichetta) 

NickTheGeek
Подписаться 6 тыс.
Просмотров 8 тыс.
50% 1

Опубликовано:

 

30 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 32   
@giovanniciriello8585
@giovanniciriello8585 Год назад
Ciao Nick, ho una questione riguardante le userform. Ho creato una userform che apre alcuni file excel ed un powerpoint. In questa condizione, se provo a chiudere il ppt non ho problemi, invece se provo a chiudere i file excel che ho aperto mediante la userform, ad es mediante la x in alto a dx, non me lo fa fare. Per poterlo fare, devo tornare nell'excel che contiene la userform e devo chiudere la userform che risulta ancora in modalità "run". La domanda è questa: lanciata la userform, come posso fare per chiuderla automaticamente, in modo che posso fare le operazioni con i file aperti e chiuderli senza problemi?
@NickTheGeek
@NickTheGeek Год назад
Ciao Giovanni, potresti provare ad aggiungere l'istruzione: Unload Me come ultima istruzione dopo aver aperto i file excel e ppt
@giovanniciriello8585
@giovanniciriello8585 Год назад
@@NickTheGeek perfetto, funziona benissimo. Grazie!
@micheledefato8714
@micheledefato8714 3 года назад
Ciao Nick, se nella textbox ho un valore che sia numerico o di valuta o altro..all'interno del foglio excel lo riporta sempre come testo (anche se sul foglio inizialmente tutte le celle sono impostate con il formato desiderato). Come posso assegnare il formato alla cella senza ritornare all'interno del foglio excel ogni volta che ho lanciato la userform e modificare? Grazie.
@NickTheGeek
@NickTheGeek 3 года назад
Ciao Michele, anziché scrivere (ad esempio): Cells(1, 1) = Textbox1.Value prova con Cells(1, 1) = Format(Textbox1.Value, "#,##0.00 €") Questo esempio vale per il formato contabilità con due cifre decimali e il simbolo dell'Euro. In pratica devi usare la funzione Format, mettendo come secondo argomento il formato che ti interessa, che ricalca quelli personalizzati che trovi nel "Formato Celle" di Excel. Fammi sapere se funziona.
@micheledefato8714
@micheledefato8714 3 года назад
@@NickTheGeek funziona! Utilizzo la stessa struttura per tutti gli altri formati. Per il secondo argomento mi sto aiutando con delle registrazioni di macro in cui cambio i formati nel foglio. Grazie mille!
@NickTheGeek
@NickTheGeek 3 года назад
Sì perfetto, con le macro puoi capire quali sono i formati da utilizzare.
@micheledefato8714
@micheledefato8714 3 года назад
@@NickTheGeek scusami se ti disturbo ancora, ho ancora un problema che non riesco a risolvere. Quando il valore della textbox è '0' e ho impostato il formato in valuta sul foglio excel riporta precisamente ,00€ e io vorrei 0,00€.
@NickTheGeek
@NickTheGeek 3 года назад
Nessun disturbo, prova a vedere se nel formato hai scritto "#,###.00 €" anziché "#,##0.00 €" In pratica prima del punto dei decimali ci deve essere uno zero, non un cancelletto.
@mirkoluongo8590
@mirkoluongo8590 4 года назад
Ciao Nick, innanzitutto complimenti!! Poi ti vorrei domandare.... premesso che la variabile impostata all'interno della label è double è possibile impostare il formato valuta all'etichetta?
@NickTheGeek
@NickTheGeek 4 года назад
Grazie per i complimenti Mirko. Puoi formattare il contenuto della label utilizzando i formati personalizzati che ci sono in Excel, ad esempio se la label si chiama Label1 e vuoi impostare la valuta in Euro con la separazione di migliaia e decimali, puoi usare: Label1.Caption = Format(Label1.Caption, "€ #,###.00") Se non funziona, prova a invertire il punto e la virgola. Fammi sapere.
@mirkoluongo8590
@mirkoluongo8590 4 года назад
@@NickTheGeek testato funziona perfettamente ancora Grazie
@NickTheGeek
@NickTheGeek 4 года назад
Ottimo :)
@Giuliorados
@Giuliorados 4 года назад
Ciao Nick, innanzitutto complimenti e grazie per le spiegazioni!! Ti vorrei anche domandare.... è possibile associare ad una casella di testo, che vorrei usare per ricerca "codice fiscale" con PISTOLA LETTORE BARCODE inserita direttamente sul foglio, una macro che già ho, ma funziona con inputbox che richiamo con bottone sul foglio
@NickTheGeek
@NickTheGeek 4 года назад
Ciao, grazie a te per il commento. Riguardo la tua domanda, non so se ho capito bene: sul foglio hai un bottone che fa partire una inputbox fatta con vba, all'interno della quale metti un codice fiscale letto con la pistola? E vorresti sapere se puoi fare la stessa cosa con una casella di testo inserita nel foglio, quindi associando la macro a questa casella anziché alla inputbox?
@Giuliorados
@Giuliorados 4 года назад
si esattamente
@Francesco.D.Passaro
@Francesco.D.Passaro 5 лет назад
ciao, bel video, molto utile. Avrei una domanda da farti, se volessi aggiungere diversi valori da varie textbox in una tabella di celle come potrei fare?
@NickTheGeek
@NickTheGeek 5 лет назад
Ciao, grazie. Non so se ho ben capito la domanda, ma se vuoi aggiungere valori di più textbox in celle diverse, dovresti indicare ogni cella in cui vuoi aggiungere i valori di ogni singola textbox, ad esempio: Range("a1") = TextBox1.Value Range("a2") = TextBox2.Value Range("a3") = TextBox3.Value
@Francesco.D.Passaro
@Francesco.D.Passaro 5 лет назад
@@NickTheGeek si è così ma tipo vorrei creare un elenco in cui di volta in volta posso aggiungere altre voci, tipo una rubrica telefonica.
@NickTheGeek
@NickTheGeek 5 лет назад
supponendo di avere 3 caselle di testo in cui inserire, per esempio, nome (textbox1), cognome (textbox2) e numero di telefono (textbox3), e supponendo di voler inserire questi dati rispettivamente nelle colonne A, B e C, dovresti intanto capire qual è la prima riga vuota nel foglio; immaginando che la riga 1 sia sempre occupata dalle intestazioni di colonna (anche all'inizio con il foglio vuoto), il codice per calcolare l'ultima riga scritta è: ultima_riga = Cells(Rows.Count, "A").End(xlUp).Row quindi: prima_riga_vuota = ultima_riga + 1 a questo punto, quando premi il command button nella userform, il codice da eseguire è: Cells(prima_riga_vuota, 1) = TextBox1.Value Cells(prima_riga_vuota, 2) = TextBox2.Value Cells(prima_riga_vuota, 3) = TextBox3.Value In questo modo i tre valori ti vengono sempre scritti nelle colonne A, B e C, sempre nella prima riga disponibile
@Francesco.D.Passaro
@Francesco.D.Passaro 5 лет назад
@@NickTheGeek wow grazie... Proverò e ti farò sapere
@giovanniciriello8585
@giovanniciriello8585 Год назад
Nick ho un'altra questione riguardante le userform (caselle di testo e pulsanti di comando). Il mio obiettivo è fare in modo che quando il cursore del mouse va sul pulsante di comando (pulsante che è disabilitato con l'initialize), mi appaia un tip che suggerisce all'utente di compilare i campi richiesti per poter abilitare il pulsante. Spulciando sul web ho trovato la soluzione che riporto sotto. Il problema è che non ho la minima idea in merito al punto n.8, "Run the "ConnectObject" procedure". Peccato perché è l'ultimo passaggio che mi separa dall'obiettivo XD Ti sarei grato se mi aiutassi a capire cosa devo fare..grazie come sempre per il supporto che potrai darmi. Follow these steps: 1 Insert an ActiveX command button on Sheet1. Name it CommandButton1. 2 Insert a text box shape on Sheet1. Name it TextBox1. 3 In TextBox1, type some text (e.g. "Click me"). 4 In the VB Editor, insert a class module. Name it clsButton. 5 Type the following code into the clsButton module: Code: Public WithEvents Btn As MSForms.CommandButton Private Sub Btn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) With ThisWorkbook.Worksheets("Sheet1").Shapes("Textbox1") .Visible = msoTrue .Top = Y + Me.Btn.Top .Left = X + Me.Btn.Left End With Application.OnTime Now + TimeValue("00:00:01"), "HideIt" End Sub 6 Insert an ordinary code module. Name it Module1. 7 Type the following code into Module1: Code: Dim Cmd As New clsButton Private Sub ConnectObject() Set Cmd.Btn = ThisWorkbook.Worksheets("Sheet1").OLEObjects("CommandButton1").Object End Sub Private Sub HideIt() ThisWorkbook.Worksheets("Sheet1").Shapes("Textbox1").Visible = msoFalse End Sub 8 Run the "ConnectObject" procedure. 9 In Excel, move the mouse cursor over the command button and watch what happens...
@NickTheGeek
@NickTheGeek Год назад
Ciao Giovanni, immagino che si intenda che devi lanciare questa subroutine: Private Sub ConnectObject() Set Cmd.Btn = ThisWorkbook.Worksheets("Sheet1").OLEObjects("CommandButton1").Object End Sub
@zefiro678
@zefiro678 3 года назад
Ciao Nick come posso fare per limitare la lunghezza dei caratteru inseriti in una textbox in base alla lunghezza della stessa textbox non usando quindi la multiline con la quale oltretutto si andrebbe a capo. Grazie come sempre per i video che fai.
@NickTheGeek
@NickTheGeek 3 года назад
Ciao, se intendi limitare il numero di caratteri in base alla lunghezza della textbox la vedo un po' difficile, perché nei font più comuni i caratteri hanno larghezza diversa, ad esempio una "o" può essere larga 3 volte una "i", quindi fare un calcolo a priori diventa impossibile. Se usassi un font "monospace", cioè un font i cui caratteri occupano sempre lo stesso spazio orizzontale, potresti verificare quant'è la larghezza del carattere (in pixel) e poi fare un calcolo tipo: TextBox1.MaxLength = Textbox1.Width / larghezza_carattere ma anche in questo caso il risultato non credo che sarebbe granché preciso.
@zefiro678
@zefiro678 3 года назад
@@NickTheGeek grazie mille per la risposta.
@ariasimanol
@ariasimanol 5 лет назад
ciao Nick, grazie del video. sai se e possibile far lampeggiare il testo ?
@NickTheGeek
@NickTheGeek 5 лет назад
Ciao, non credo esista una funzione specifica per farlo lampeggiare, bisognerebbe creare un accrocchio con del codice per far sparire e comparire il testo a intervalli regolari. Dove pensavi di farlo lampeggiare? Una cella, una label, una textbox ...?
@ariasimanol
@ariasimanol 5 лет назад
@@NickTheGeek in una cella. Mi stavo informando ed ho scoperto che bisogna usare VBA ( Microsoft visual basic application ) codici qua e là . Grazie per la prontezza di risposta Nick
@NickTheGeek
@NickTheGeek 5 лет назад
Allora devi inserire due macro: da qualche parte devi mettere la prima, che ti fa partire la macro la prima volta, cioè questa: Sheets("Foglio1").activate intervallo = Now + TimeValue("00:00:01") Application.OnTime intervallo, "lampeggia" Con "da qualche parte" intendo che dipende da qual è la situazione che dovrebbe far partire il lampeggiamento. Ad esempio, se lo vuoi fin da quando apri il file, allora devi metterle la macro nel modulo che si chiama "Questa_cartella_di_lavoro", e inserire quelle tre righe nell'evento Workbook_open, quindi il tutto diventerebbe: Private Sub Workbook_open() Sheets("Foglio1").activate intervallo = Now + TimeValue("00:00:01") Application.OnTime intervallo, "lampeggia" End Sub Ho supposto che il foglio in cui si trova la cella si chiami "Foglio1" e che tu voglia un intervallo di 1 secondo. Poi in un modulo normale (quelli che si chiamano Modulo1, Modulo2, etc.) inserisci la macro vera e propria cioè questa: Sub lampeggia() If Range("A1").Font.Color = vbWhite Then Range("A1").Font.Color = vbBlack ElseIf Range("A1").Font.Color = vbBlack Then Range("A1").Font.Color = vbWhite End If intervallo = Now + TimeValue("00:00:01") Application.OnTime intervallo, "lampeggia" End Sub Qui ho supposto che il font sia nero e lo sfondo della cella bianco; in pratica, ogni secondo la macro verifica di che colore è il font e quindi lo cambia di conseguenza, alternando il bianco e il nero. L'argomento di TimeValue è 1 secondo (non puoi scendere al di sotto) ma puoi modificarlo come vuoi (il formato è "hh:mm:ss"). Stessa cosa per il nome della seconda macro ("lampeggia"), che puoi cambiare ma devi ricordarti di modificarlo in entrambe le macro. Fammi sapere. Ciao
@frasier76
@frasier76 4 года назад
Se posso permettermi, questi primi video dedicati alle UserForm, mi sembrano molto dispersivi. Forse sarebbe stato meglio adottare un approccio più diretto alle funzioni di elaborazione tramite il codice. In ogni caso ho lasciato il like+1
@NickTheGeek
@NickTheGeek 4 года назад
Certo che puoi permetterti. Dato che nelle userform una parte importante è anche grafica, ho preferito dare qualche nozione anche in quel senso.
Далее
СОБАКА И  ТРИ ТАБАЛАПКИ Ч.2 #shorts
00:33
How to Run UserForm without Showing Excel Window
12:44
Просмотров 116 тыс.
User Form parte 01 - VBA Excel Tutorial Italiano 43
14:11
Corso VBA Excel ITA - 21 - Cicli annidati
21:33
Просмотров 10 тыс.
VBA User Form: Add, Update, Delete and Save
22:47
Просмотров 55 тыс.
Userform - Video 2  - Textbox
18:33
Просмотров 1,7 тыс.
СОБАКА И  ТРИ ТАБАЛАПКИ Ч.2 #shorts
00:33