Scrivere solo testo in celle



  • Scrivere solo testo in celle
    di alexps81 data: 20/07/2015 09:35:23

    Buongiorno a tutti e un saluto particolare a tutti coloro che mi hanno aiutato.
    Vorrei chiedere se qualcuno sa dirmi come si può impostare un Range di celle da C13 a C34 dove si può inserire solo caratteri alfabetici (dalla A alla Z) senza avere la possibilità di inserire altri tipi di caratteri.
    Grazie mille



  • di Lucas87 data: 20/07/2015 10:08:56

    Ciao
    A me viene in mente questo
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c13:c34")) Is Nothing Then
        For i = 1 To Len(Target)
            If IsNumeric(Right(Left(Target, i), 1)) Then
                MsgBox "Errore!!!"
                Exit Sub
            End If
        Next
    End If
    End Sub
    



  • di alexps81 data: 20/07/2015 11:13:28

    Ciao grazie per la tua risposta. Purtroppo non è proprio quello che cercavo.
    In realtà la sub deve funzionare così:
    Se digito le lettere deve inserirle nelle celle normalmente
    Se digito numeri o altri caratteri non devono proprio inserirsi.
    Simile alle textbox quando si formattano solo con testo



  • di alfrimpa data: 20/07/2015 18:01:54

    Ciao Alex

    Potresti usare la Convalida Dati

    Seleziona l'intervallo interessato poi in Convalida dati in Consenti scegli Personalizzato ed in Formula digita

    =VAL.TESTO(A2:A11)=VERO

    Ovviamente il range è da cambiare con il tuo.

    Alfredo





  • di alexps81 (utente non iscritto) data: 20/07/2015 18:37:33

    Ciao alfrimpa, grazie anche a te per la risposta, ho provato e devo ammettere che l'idea non sembra male, ma mi piacerebbe qualcosa in più (se si può fare ovviamente)

    Mi spiego meglio:

    se in una cella voglio scrivere "CIAO", la cella si riempie normalmente con "CIAO" anche durente l'immissione delle varie lettere (C-I-A-O.), ma se per errore digito il numero 2 o 9 o la ( o $ o " o <, ecc... già mentre li batto questi tasti, la cella non deve proprio accettare questi caratteri.

    Cioè scrivo 5, il 5 non deve neanche uscire nella cella.



  • di Lucas87 data: 20/07/2015 19:05:47

    Non credo si possa fare.
    Excel considera una cella modificata solo quando si preme invio o si cambia cella con il cursore.
    Te ne puoi rendere conto prendendo una cella con un valore, scrivendo qualcosa e premendo ESC prima di confermare: tutto quello che hai fatto andrà perso e verrà ripristinato il valore di partenza.



  • di alexps81 data: 20/07/2015 19:10:28

    Ok. Ok. Capito. Immaginavo. Grazie mille a tutti



  • di Vecchio Frac data: 20/07/2015 19:21:02

    Non si può fare, il foglio non espone un evento KeyPress o KeyUp o tipo BeforeKey.
    Una vocina mi dice in testa qualcosa con Application.OnKey ma è una follia, dovresti riscrivere procedure per ogni singolo tasto sulla tastiera e poi non sono neanche sicuro che funzionerebbe. Una bella userform, una bella textbox con il pattern desiderato e sei a posto.
    Davvero, prosaicamente, l'evento Change funziona anche per questo: effettui il controllo di validità dell'immissione appena inserita e confermata dall'utente (che può ripensarci fino al momento di premere invio); se rispetta i tuoi criteri convalidi il dato altrimenti lo annulli o lo converti in maiuscolo, non è una cosa così strana.