Macro cancellazione caratteri speciali
Hai un problema con Excel? 
Macro cancellazione caratteri speciali
di Antonio (utente non iscritto) data: 30/12/2017 15:41:09
Salve a tutti,
Ho un piccolo problema, vorrei cancellare tutti i caratteri speciali (* " / # .... ) che si trovano nelle celle della colonna B e sostituirli con lo "spazio". Se è possibile eseguire una macro.
Grazie ancora per l aiuto.
di Marius44 data: 30/12/2017 18:05:30
Ciao Antonio
Innanzi tutto come sei messo a conoscenza di codice VBA?
Se hai un minimo ti posto unaFunction che feci tempo fa per controllare la password d'accesso ad un file. Prende in considerazione numeri e lettere (maiuscole o minuscole) escludendo tutto il resto. Prova ad adattarla alle tue esigenze.
Fai sapere. Ciao,
Mario
Public Function ctrpsw(a) 'controllo tasti password
mes1 = "ATTENZIONE!" & vbLf
mes2 = "L'utilizzo del tasto ' "
mes3 = " ' non è consentito." & vbLf
mes4 = "Correggere."
'controlla cosa è stato inserito
lung = Len(p)
For i = 1 To lung
a = 0: alfanum = Asc((Mid(p, i, 1)))
Select Case alfanum
Case 48 To 57 'è una cifra
Case 65 To 90 'è una lettera maiuscola
Case 97 To 122 'è una lettera minuscola
Case Else 'scarta tutti glia ltri tasti
mes = MsgBox(mes1 + mes2 + Chr(alfanum) + mes3 + mes4, 32 + 0, tit): a = 1
Exit Function
End Select
Next i
End Function |
di Zer0Kelvin data: 30/12/2017 19:54:06
Ciao.
Prova la macro qui sotto.
Nella costante Altri ho inserito i caratteri che non dovrebbero essere cancellati; puoi aggiungerne o eliminarne a piacere.
Sub PulisciCaratteri()
Const Altri = ",.;:-+*/òèéìàù" 'caratteri permessi
Dim C As Long, I As Long, Ch As Integer
Dim Valore As String
For C = 1 To Cells(Rows.Count, 2).End(xlUp).Row
Valore = Cells(C, 2)
For I = Len(Valore) To 1 Step -1
Ch = Asc(Mid(Valore, I, 1))
If Not ((Ch >= 48 And Ch <= 57) Or (Ch >= 65 And Ch <= 90) Or (Ch >= 92 And Ch <= 122) _
Or (InStr(Altri, Chr(Ch)) > 0)) Then
Valore = Left(Valore, I - 1) & Right(Valore, Len(Valore) - I)
End If
Next I
Cells(C, 2) = Valore
Next C
End Sub |
Vuoi Approfondire?