PDA

Visualizza la versione completa : formato date


sal21
11-02-2004, 19:30
sto importando da un file di tesot delle date. Quindi prendo per tutte le date 10 caratteri dato che le stesse sono in questo formato gg/mm/aaaa ma alcune di queste hanno come primo carattere un blank in quanto sono riefrite a giorni a una cifra per esempio 2/12/2004
dato che il mio range dove inserisco le date va da A3:A25000 vorrei fare in modo che una macro verifichi che la data che inizia con un blank lo stesso venga sostituito con uno zero in modo da ottenre date uniformi nel formato gg/mm/aaaa per tutte.

grullo
12-02-2004, 08:01
La funzione format() dovrebbe risolvere i tuoi problemi.

Sub formattaData()
Dim dataFormattata
For i = 3 To 25000
dataFormattata = Format(Foglio1.Cells(i, 1), "dd/mm/yyyy")
Foglio1.Cells(i, 1) = dataFormattata
Next i
End Sub

:D

PS: x le macro che mi hai mandato per mail non ho avuto ancora modo di lavorarci....appena posso....

sal21
12-02-2004, 11:59
Originariamente postato da grullo
La funzione format() dovrebbe risolvere i tuoi problemi.

Sub formattaData()
Dim dataFormattata
For i = 3 To 25000
dataFormattata = Format(Foglio1.Cells(i, 1), "dd/mm/yyyy")
Foglio1.Cells(i, 1) = dataFormattata
Next i
End Sub

:D

PS: x le macro che mi hai mandato per mail non ho avuto ancora modo di lavorarci....appena posso....

FUNZUIONA! ma invece di fare tutto per l'intero range non si puo fare che la macro funzioni solo se trova celle con le date , ovvero piene... sarebbe meglio o no?
Per quella cosa non ti preoccupare aspetterò buono, buono...

grullo
12-02-2004, 12:15
Così controlli se la cella è o meno una data:

Sub formattaData()
Dim dataFormattata
For i = 3 To 25000
If IsDate(Foglio1.Cells(i, 1).Value) Then
dataFormattata = Format(Foglio1.Cells(i, 1), "dd/mm/yyyy")
Foglio1.Cells(i, 1) = dataFormattata
End If
Next i
End Sub

Nel caso sia una cella vuota deve saltare la formattazione o deve interrompersi senza procedere oltre???
Nel primo caso basta il codice appena postato altrimenti occorre inserire un exit for se la cella è vuota:

if foglio1.Cells(i,1)=vbNullString then exit for

(Appena dopo la riga For i=....)
:D

sal21
12-02-2004, 12:24
Originariamente postato da grullo
Così controlli se la cella è o meno una data:

Sub formattaData()
Dim dataFormattata
For i = 3 To 25000
If IsDate(Foglio1.Cells(i, 1).Value) Then
dataFormattata = Format(Foglio1.Cells(i, 1), "dd/mm/yyyy")
Foglio1.Cells(i, 1) = dataFormattata
End If
Next i
End Sub

Nel caso sia una cella vuota deve saltare la formattazione o deve interrompersi senza procedere oltre???
Nel primo caso basta il codice appena postato altrimenti occorre inserire un exit for se la cella è vuota:

if foglio1.Cells(i,1)=vbNullString then exit for

(Appena dopo la riga For i=....)
:D ... attualmente ho solo 7 date e far scorre per 25000 celle mi sembra un po troppo, quindi evo utilizare la riga che mi hai appena postato? Credo di capire che così la macro funziona solo se trova celle piene, o no? se è così mi sta bene la tua ultima istruzione... Ah. mi fa molto piacere trovarti on line... per quel progetto sono andato avanti da solo, non è professionale ma credimi che ci ho messo un sacco di tempo vuoi che te l'ho inviii? così "cose alla mano" potremo discutere sul da frsi....