Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VBA/EXCEL] Convertire al volo in maiuscolo

    Per convertire il stringhe di testo dal minuscolo al maiuscolo esiste questa funzione MAIUSC().
    Se io ho la necessità di farlo al volo, cioè mentre digito nella cella le lettere mi devono diventare maiuscole, come posso fare?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    al volo non è sicuramente possibile...
    ma è possibile farlo appena in uscita dalla cella, subito dopo la modifica.

    basta sfruttare l'evento Change del WorkSheet che ti interessa che viene rilasciato ogni qualvolta si modifica una cella:

    codice:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Target.Value = UCase(Target.Value)
    End Sub
    queste righe basta inserirle nel codice del foglio di lavoro nel quale vuoi che agiscano.

    Boolean

  3. #3
    Grazie. Ho risolto aggiungendo anche un controllo sul range e sul fatto che la cella non contenga formule

    codice:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not (Application.Intersect(Target, Range("D6:E400")) Is Nothing) Then
        With Target
            If Not .HasFormula Then
                .Value = UCase(.Value)
            End If
        End With
    End If
    End Sub
    www.sergiogandrus.it
    Il mio blog sull'informatica

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Originariamente inviato da Boolean
    al volo non è sicuramente possibile...
    Perchè non dovrebbe essere sicuramente possibile?

    Questo codice, benchè riferito a VB6, dovrebbe funzionare.

    Peraltro, la resa "in maiuscolo" dei caratteri è una funzionalità incorporata dell'Edit Control di Windows (quindi supportata dal sistema operativo), quindi dovrebbe essere ottenibile in via alternativa attraverso il "subclassing" del controllo TextBox.

    Ad esempio, Delphi fornisce un controllo TEdit che sfrutta il flag ES_UPPERCASE quando la proprietà CharCase è abilitata per attivare questo effetto, di cui si occupa direttamente il sistema operativo (Windows).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    si alka, sono d'accordo con te, se si parla di un TextBox...

    ma ci si stava riferendo al testo digitato dentro una cella di un foglio di lavoro di Excel... e li credo che ci sia poco da fare

    Boolean

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Originariamente inviato da Boolean
    si alka, sono d'accordo con te, se si parla di un TextBox...
    Ho letto dopo aver postato la precisazione dell'autore.

    Originariamente inviato da Boolean
    ma ci si stava riferendo al testo digitato dentro una cella di un foglio di lavoro di Excel... e li credo che ci sia poco da fare
    Direi che le alternative sono tutt'altro che semplici (costruire un addin, oppure usare una colonna che contenga i valori maiuscoli dei testi inseriti in una colonna eventualmente adiacente, ecc. ecc.).

    Bye a entrambi!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.