› Sviluppare funzionalita su Microsoft Office con VBA › Maiuscolo automatico
-
AutoreArticoli
-
Buonasera a tutti,
cortesemente avrei bisogno di aiuto, ovvero sapere come posso fare per trasferire automaticamente da useform al range di celle A2:A400, la scrittura in maiuscolo anche se nella userform stessa scrivo in minuscolo
Grazie
ciao
un esempio
Private Sub TextBox1_Change() Sheets("Foglio1").Cells(1, 1) = UCase(TextBox1.Text) End SubPuoi utilizzare Ucase (UCase$) oppure StrConv nel momento in cui assegni al range.
Range("...") = UCase(TextBox) 'piu sempliceRange("...") = StrConv(TextBox, vbUpperCase) 'piu completoProva Così
Sub Maiuscolo() For Each x In Range("A2:A400") x.Value = UCase(x.Value) Next End SubBuonasera a tutti,
cortesemente avrei bisogno di aiuto, ovvero sapere come posso fare per trasferire automaticamente da useform al range di celle A2:A400, la scrittura in maiuscolo anche se nella userform stessa scrivo in minuscolo
StrConv nel momento in cui assegni al range.
Range("...") = UCase(TextBox) 'piu sempliceRange("...") = StrConv(TextBox, vbUpperCase) 'piu completoMi accodo, personalmente lo trovo più comodo ed ha diverse combinazioni
StrConv nel momento in cui assegni al range.
Range("...") = UCase(TextBox) 'piu sempliceRange("...") = StrConv(TextBox, vbUpperCase) 'piu completoMi accodo, personalmente lo trovo più comodo ed ha diverse combinazioni
Si ma non è l'userform o la TexBox che deve mettere in maiuscolo , ma il range ("A2:A400")
Si ma non è l'userform o la TexBox che deve mettere in maiuscolo , ma il range ("A2:A400")
No, io non ho capito così. Lui ha un userform e una textbox, ci scrive qualcosa, maiuscolo o minuscolo, e poi riversa questo contenuto nel foglio.
come posso fare per trasferire automaticamente da useform al range di celle A2:A400, la scrittura in maiuscolo anche se nella userform stessa scrivo in minuscolo
No, io non ho capito così. Lui ha un userform e una textbox, ci scrive qualcosa, maiuscolo o minuscolo, e poi riversa questo contenuto nel foglio.
Secondo mè lui si è spiegato male , perchè nella sua richiesta non parla di nessuna TextBox
Questa è la sua richiesta
Buonasera a tutti,
cortesemente avrei bisogno di aiuto, ovvero sapere come posso fare per trasferire automaticamente da useform al range di celle A2:A400, la scrittura in maiuscolo anche se nella userform stessa scrivo in minuscolo
Grazie
nella sua richiesta non parla di nessuna TextBox
E' vero ma in che altro modo puoi implementare un input diretto dell'utente? Lui dice che nella userform potrebbe scrivere in minuscolo:
anche se nella userform stessa scrivo in minuscolo
Naturalmente possiamo andare avanti a lungo... aspettiamo che Frasubb ci risolva il dilemma
se scrivo così ....
Private Sub TxtCliente_change()
ActiveSheet.Cells(2, 2) = UCase(TxtCliente.Text)End Sub
mi scrive in maiuscolo solo la cella B2 ovviamente
Io invece vorrei che ogni qualvolta una cella della colonna B contenga testo, esso sia scritto in maiuscolo anche se nella textbox della mia userform scrivo in minuscolo
Fermati perché stai sbagliando alla partenza, stai sbagliando concettualmente!!!
Private Sub TxtCliente_change() ActiveSheet.Cells(2, 2) = UCase(TxtCliente.Text)
End Sub
Questa sub è un obominio concettualmente anche se funzionasse.
Praticamente stai, ad ogni pressione dei tasti sul Form, cambiando ciò che viene scritto sul foglio e questo è un approccio sbagliato.
Il foglio devi pensarlo come un database, prelevi ed inserisci dati UNA VOLTA, mica ad ogni pressione del tasto!!!
Quindi
Private Sub TxtCliente_change() TxtCliente.Text = UCase(TxtCliente.Text) End SubCosì hai la textbox sempre in maiuscolo, poi quando sei pronto a salvare tutti i dati sul foglio, lo fai tramite pulsante o altro come hai scritto prima
ActiveSheet.Cells(2, 2) = TxtCliente.TextCiao facci sapere
ciao
Io invece vorrei che ogni qualvolta una cella della colonna B contenga testo, esso sia scritto in maiuscolo anche se nella textbox della mia userform scrivo in minuscolo
ragioniamoci sopra
se uso una textbox per avvalorare una cella della colonna B
e nello scrivere obbligo l'inserimento in MAIUSCOLO
`Private Sub TextBox1_Change() Sheets("Foglio1").Cells(1, 2) = UCase(TextBox1.Text) End Sub oppure Activesheets.Cells(1, 2) = UCase(TextBox1.Text)`quante celle in Colonna B troverò scritte in minuscolo?
Ciao scossa
secondo me andrebbe bene anche l'evento LostFocus, se mi ricordo bene 🤔
secondo me andrebbe bene anche l'evento LostFocus,
Secondo me no: quell'evento viene scatenato anche se il valore della textbox non è cambiato, quindi non mi sembra l'evento più indicato.
Probabilmente hai ragione, il fatto è che non ho mai usato quell'evento e non sò come si comporti
il fatto è che non ho mai usato quell'evento
Per esempio, io lo utilizzo in Access per forzare il programma a non accettare piu' eventi di modifica dei campi (AllowEdits), dopo aver inserito un valore in un certo campo. La maschera quindi torna a sola lettura evitando digitazioni errate.
Per esempio, io lo utilizzo in Access per forzare il programma a non accettare piu' eventi di modifica
E se volessi modificare? Hai un tasto o altro per entrare in Modalità Modifica?
Be' si', e' una soluzione. Ma posso utilizzare anche l'evento GotFocus quando entro in un certo campo... riabilito AllowEdits
Non capisco, dopo AfterUpdate disabili le modifiche con AllowEdits, per poi riabilitarle quando il campo riceve lo stato attivo con GotFocus. Onestamente secondo me è una situazione ridondante perché per modificare il campo devi in ogni caso entrarci dentro, non vedo come ottenere modifiche errate?
Nel mio progetto voglio che solo Admin possa modificare i dati contenuti nella maschera. Gli altri quindi hanno una maschera in sola lettura. Pertanto in qualsiasi campo io entri (evento GotFocus) verifico il ruolo dell'utente, permettendo o no la modifica (AllowEdits) se un altro campo (un ID) aveva ricevuto un valore valido. In uscita da qualsiasi campo, io disabilito comunque la modifica perche' anche ad Admin deve essere assicurato di non poter fare danni involontari sui dati esistenti.
Riconosco che si possono studiare soluzioni alternative e i modi ci sono (uso di variabili pubbliche, di tag del form, di variabili TempVars eccetera). Ho messo in piedi questa tempo fa e non ci ho piu' pensato
-
AutoreArticoli
