Condividi:        

Codice VBA per excel testo, data e numeri

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Codice VBA per excel testo, data e numeri

Postdi ProbePotter » 13/01/08 15:15

Ciao a tutti,
ho realizzato con excel un data base con nelle colonne: B3, C3, D3, E3, contenenti Testo. Mentre
la colonna F3 contiene date e G3 numeri con due decimali dopo la virgola. Ovviamente le colonne
arrivana fino alla riga 150. Esse sono piene di dati. Avendo inserito una macro per scrivere sempre
in Maiuscolo, essa mi converte tutto in testo rendendo impossibile fare i totali. Potreste aiutarmi?
Il codice da me inserito è questo:

Private Sub Worksheet_Change(ByVal Target As Range)


Dim rCell As Range


Set rng = Range("B3:F400") ' (riga aggiunta)
Set inters = Intersect(Target, rng) '(riga aggiunta)
If inters Is Nothing Then Exit Sub '(riga aggiunta)


On Error GoTo XIT
Application.EnableEvents = False
For Each rCell In Target.Cells
With rCell
.Value = UCase(.Value)
.Font.Name = "Arial" '(Book Antiqua disattivato)
.Font.Size = 10
End With
Next rCell
XIT:
Application.EnableEvents = True
End Sub
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Sponsor
 

Re: Codice VBA per excel testo, data e numeri

Postdi Anthony47 » 13/01/08 22:17

Prova a modificare in questo modo

Codice: Seleziona tutto
For Each rCell In Target.Cells
If Not (IsDate(rCell.Value) Or IsNumeric(rCell.Value)) Then  '<<<
With rCell
.Value = UCase(.Value)
.Font.Name = "Arial" '(Book Antiqua disattivato)
.Font.Size = 10
End With
End If                  '<<<
Next rCell


Ho aggiunto le istruzioni marcate con <<<, il loro obiettivo e’ abbastanza intuitivo.
Attenzione: ho dato per scontato che non hai FORMULE nel range; se invece ce ne sono allora posta ancora, perche' questo codice (come il tuo) altera anche le formule.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Codice VBA per excel testo, data e numeri

Postdi ProbePotter » 14/01/08 18:30

Grazie per l' aiuto Anthony, ma non mi scrive più in maiuscolo.
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37

Re: Codice VBA per excel testo, data e numeri

Postdi Anthony47 » 14/01/08 23:51

Premetto che sul mio pc il funzionamento e’ regolare (digito un numero che rimane numero elaborabile con formule successive; digito un testo e viene trasformato in maiuscolo); suggerisco di togliere l’ istruzione On Error e poi procedere al debug.
Mi viene anche la domanda: se sono le colonne F e G che contengono informazioni che non vuoi alterare (cioe’ sono B, C e D quelle che vuoi modificare), perche’ non elimini la colonna F (G e’ gia’ assente) nella definizione di “rng”, usando ad esempio
Codice: Seleziona tutto
Set rng = Range("B3:E400")
?

Infine, nota che il codice puo’ essere semplificato come segue:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B3:F400")) Is Nothing Then Exit Sub
'On Error GoTo XIT            '<<<Disabilitata
Application.EnableEvents = False
With Target
If Not (IsDate(.Value) Or IsNumeric(.Value) And 1 = 2) Then '<<<
.Value = UCase(.Value)
.Font.Name = "Arial" '(Book Antiqua disattivato)
.Font.Size = 10
End If
End With
XIT:
Application.EnableEvents = True
End Sub


Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Codice VBA per excel testo, data e numeri

Postdi ProbePotter » 15/01/08 11:17

Ciao Anthony, quest' ultima è OK ! L' ho testata e funziona perfettamente. Grazie ancora Anthony.
Avatar utente
ProbePotter
Utente Senior
 
Post: 159
Iscritto il: 20/09/06 18:37


Torna a Applicazioni Office Windows


Topic correlati a "Codice VBA per excel testo, data e numeri":


Chi c’è in linea

Visitano il forum: Anthony47 e 79 ospiti