|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
[excel] dividere dati da una cella
Ciao a tutti,
vi posto il mio problema con la speranza che qualcuno riesca a risolverlo! Ho una cella con il seguente contenuto: 16/11/2009 3.41.41 In cui sono appunto indicati data ed ora. Vorrei però fare in modo che tali dati vengano suddivisi su due celle! Ovvero la DATA in una cella e l' ORA nella cella subito a fianco. Come posso fare? Grazie a tutti anticipatamente.
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Semplice. Il valore della data inserita nelle due celle è il medesimo ( non fai altro che duplicarlo nella cella a fianco, con una semplice formula, o con VBA... ).
La cella "Data" va formattata con gg/mm/aaaa , mentre la cella "Ora" con h.mm.ss. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
mm...ovvero??! Non sono assolutamente pratico e per quanto la soluzione sopra mi sembra ragionevole non saprei proprio come farlo... Potreste indicarmi questa formula o cmq un modo per farlo?
grazie.
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Semplice. Poni di avere 2 colonne A, B.
In A1 scrivi 16/11/2009 3.41.41. In B1 scrivi la formula "=A1". Adesso vai su A1, Click destro / Formato Celle / Personalizzato >> nella textbox "Tipo:" inserisci : gg/mm/aaaa . Stessa cosa con B1 >> h.mm.ss . |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
Ok! capito benissimo ho solo un ultimo problemino!
Io ricevo questo file excel che contiene circa 300 righe formattate così: A1 B1 C1 data ora (da formattare) dato1 dato2 A2 B2 C2 data ora (da formattare) dato3 dato4 e devo ricavare in un altro foglio: A1 B1 C1 DATA DATO1 DATO2 A2 B2 C2 ORA DATO1 DATO2 A3 B3 C3 DATA DATO3 DATO4 A4 B4 C4 ORA DATO3 DATO4 come posso fare per ottenere questo risultato ?
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Una cosa del genere... :
Codice:
Dim cnt1 As Long
cnt1 = 0
Dim cnt2 As Long
cnt2 = 1
Do
cnt1 = cnt1 + 1
If Sheets("Foglio1").Range("A" & cnt1).Text = "" Then Exit Do
If cnt1 = 1 Then
cnt2 = 1
Else
cnt2 = cnt2 + 2
End If
Sheets("Foglio2").Range("A" & cnt2).NumberFormat = "dd/mm/yyyy"
Sheets("Foglio2").Range("A" & cnt2).FormulaR1C1 = Sheets("Foglio1").Range("A" & cnt1).Formula
Sheets("Foglio2").Range("B" & cnt2).FormulaR1C1 = Sheets("Foglio1").Range("B" & cnt1).Text
Sheets("Foglio2").Range("C" & cnt2).FormulaR1C1 = Sheets("Foglio1").Range("C" & cnt1).Text
Sheets("Foglio2").Range("A" & (cnt2 + 1)).NumberFormat = "hh.mm.ss"
Sheets("Foglio2").Range("A" & (cnt2 + 1)).FormulaR1C1 = Sheets("Foglio1").Range("A" & cnt1).Formula
Sheets("Foglio2").Range("B" & (cnt2 + 1)).FormulaR1C1 = Sheets("Foglio1").Range("B" & cnt1).Text
Sheets("Foglio2").Range("C" & (cnt2 + 1)).FormulaR1C1 = Sheets("Foglio1").Range("C" & cnt1).Text
Loop
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
Ciao MarcoGG e grazie ancora perchè lo script funziona alla grande!
Però...c'è un però! E' vero che le celle ora sono separate e che in una visualizzo la data e nell'altra l'ora, però se ci clicco sopra vedo che nella barra in realtà il formato è ancora "data ora" , ovvero a livello visivo è tutto perfetto ma il valore della cella è rimasto invariato! Cerco di essere più preciso: valore originale A1 = 16/11/2009 23.16 valore corretto dallo script A1= 16/11/2009 A2= 23.16 cliccando però su A1 o su A2 il valore della foruma è rimasto invariato, ed è sempre 16/11/2009 23.16 Questo pregiudica tutto il lavoro che devo fare dopo perchè mi sballa tutti i grafici andando ad interpretare il valore originale e non quello corretto. Lo stesso problema si viene a creare modificando a mano il valore di Formato Celle. Spero di essermi spiegato, e spero che tu abbia una soluzione anche a questo problema thx
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Se vuoi che la formula e il testo della cella concidano :
Codice:
Dim cnt1 As Long
cnt1 = 0
Dim cnt2 As Long
cnt2 = 1
Do
cnt1 = cnt1 + 1
If Sheets("Foglio1").Range("A" & cnt1).Text = "" Then Exit Do
If cnt1 = 1 Then
cnt2 = 1
Else
cnt2 = cnt2 + 2
End If
Sheets("Foglio2").Range("A" & cnt2).NumberFormat = "dd/mm/yyyy"
Sheets("Foglio2").Range("A" & cnt2).FormulaR1C1 = Split(Sheets("Foglio1").Range("A" & cnt1).Text, " ")(0)
Sheets("Foglio2").Range("B" & cnt2).FormulaR1C1 = Sheets("Foglio1").Range("B" & cnt1).Text
Sheets("Foglio2").Range("C" & cnt2).FormulaR1C1 = Sheets("Foglio1").Range("C" & cnt1).Text
Sheets("Foglio2").Range("A" & (cnt2 + 1)).NumberFormat = "hh.mm.ss"
Sheets("Foglio2").Range("A" & (cnt2 + 1)).FormulaR1C1 = Split(Sheets("Foglio1").Range("A" & cnt1).Text, " ")(1)
Sheets("Foglio2").Range("B" & (cnt2 + 1)).FormulaR1C1 = Sheets("Foglio1").Range("B" & cnt1).Text
Sheets("Foglio2").Range("C" & (cnt2 + 1)).FormulaR1C1 = Sheets("Foglio1").Range("C" & cnt1).Text
Loop
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
ciao! Non so se sbaglio io qualcosa ma in realtà funziona solo per quanto riguarda la data, mentre l'ora continua a formattarla in modo errato!
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Fammi un esempio di data di partenza ( data + ora ) che non viene formattata nel modo giusto. |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 298
|
Guarda ho provato e riprovato provando anche a cambiare qualcosa ma niente... il risultato è sempre uguale e con qualsiasi data/ora!
L'unica cosa che cambia è che io uso excel 2007, in ogni caso è paradossale perkè con la data funziona alla perfezione!!
__________________
Mobile: iPhone 5 Tablet: Mediacom 102 s2 E-reader: Amazon Kindle 3 Netbook: Acer Aspire One D570 Notebook: Dell Studio 1558, Sony Vaio VGN-FZ21M Console: Xbox 360, Nintendo Wii, Nintendo DS, Sony PSP Desktop: AMD Opteron180 2x 2.4Ghz, ASUS A8N SLI-DELUXE, GEFORCE 6600GT, 2GB RAM |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Evidentemente al VBA di Excel 2007 non piace quella formattazione sulle ore ( che ho testato su 2003 ). Quello che puoi fare è provare con il registratore macro a formattare le celle orarie. Quando becchi la formattazione giusta, vai a leggerti il codice VBA generato...
Al momento non ho 2007 e non posso fare prove... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:30.




















