|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Software o macro per riordinare un testo...
Ciao a tutti!
Uso un programma per il mio nokia6600 che mi trasforma in formato .txt tutti gli sms che ho.Il problema è che me li ordina (a1-Mittente,a2-Data,a3-Testo sms;b1-Mittente,b2-Data...e così via) dall'ultimo ricevuto al primo. Ora io vorrei invertirli.In maniera da avere all'inizio del testo il primo messaggio avuto,il secondo ecc... Volevo sapere ora sa se c'è un software per pc o un metodo con l'excel che mi ordini il testo in questa maniera: Prima z1 z2 z3 w1 w2 w3 . . . b1 b2 b3 a1 a2 a3 Dopo a1 a2 a3 b1 b2 b3 . . . w1 w2 w3 z1 z2 z3 es.: a1(Mittente)"Federico" a2(Data) "12-Marzo-2005" a3(Testo) "Ciao che fai...." Spero che capiate il mio schema! Grazie in anticipo per l'aiuto! Vascoblu Ultima modifica di vascoblu : 07-04-2005 alle 14:54. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Savona
Messaggi: 636
|
prova ad importare il file di testo in excel ed a ordinare i dati.... c'è proprio il pulsantino che ti permette di farlo
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Quote:
dal foglio 1 (composto da 562 righe): A1 z1 A2 z2 A3 z3 .. A560 a1 A561 a2 A562 a3 devo ordinaresul foglio 2 le righe in modo da avere questo: A1 =Foglio1!A560 A2 =Foglio1!A561 A3 =Foglio1!A562 ... A560 =Foglio1!A1 A561 =Foglio1!A2 A562 =Foglio1!A3 Ultima modifica di vascoblu : 07-04-2005 alle 17:55. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Savona
Messaggi: 636
|
ehmm.... senti, se ti dico che prima mi sembrava di aver capito ma in realtà non ci ho capito nulla????
Potresti spiagarti in un altro modo? magari un paio di esempi.... |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Allora...Ho questo programma per il mio nokia6600 che mi crea un file .txt con tutti i miei messaggi in questa maniera:
z1)Marco z2)7-4-2005 17.55 z3)Sto bene grazie... w1)Giuseppe w2)7-4-2005 17.50 w3)Ciao Marco come stai... . . . b1)Marco b2)10-1-2005 14.30 b3)Ho pranzato... a1)Alessia a2)10-1-2005 14.20 a3)Ciao Marco hai pranzato... (Le lettere rappresentano un sms composto da 1=Mittente,2=Data,3=Testo sms) Se noti le date il programma mi mette prima i messaggi ultimi ricevuti ed infine i primi ricevuti. Ora vorrei ordinare in maniera da invertire l'ordine in questa: a1)Alessia a2)10-1-2005 14.20 a3)Ciao Marco hai pranzato... b1)Marco b2)10-1-2005 14.30 b3)Ho pranzato... . . . w1)Giuseppe w2)14-2-2005 17.50 w3)Ciao Marco come stai... z1)Marco z2)14-2-2005 17.55 z3)Sto bene grazie... Ho esportato il tutto in excel ed ora dovrei cercare il modo di ordinare il tutto in automatico...Spero si possa fare! Spero di essere stato chiaro! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Savona
Messaggi: 636
|
Ho capito ma penso che l'unico modo per farlo sia scrivere una macro.....
Prova magari a chiedere in programmi e utility, di sicuro ne sanno di più... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Savona
Messaggi: 636
|
Comunque credo che se sai un pò di VB sia abbastanza facile....
Direi che ti bastano un paio di for concatenati, i comandi saranno una cosa del genere: Sheets("Foglio2").Select ActiveSheet.Cells(1, 3) = Sheets("Foglio1").Cells(3, 1) |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Io avevo pensato ad un comando che faccia questo:
Se ho, ad esempio, 2337 righe in un primo foglio, deve tagliare ed incollare nella prima riga vuota del secondo folglio la terz'ultima riga (2335) del primo foglio,poi la penultima (2336) nella prima riga vuota (a logica dovrebbe posizionarsi in A2 visto che A1 è stata occupata in precedenza) ed infine l'ultima (2337) nella prima riga vuota del secondo foglio.Il primo ciclo si chiude così per iniziare di nuovo,ma con il primo foglio con 2334 righe e considerando poi la riga 2332 la terz'ultima,la 2333 la penultima e la 2334 l'ultima.Deve ripetersi così fino a tagliare ed incollare tutte le righe del primo foglio nel secondo! Spero di essere stato chiaro! C'è qualcuno che può darmi una mano a farlo? Premetto che non so nulla di VisualBasic in excel! |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 32712
|
Spostato da discussioni generiche.
__________________
| Front & Rear: Arbour 5.02 | Center: Arbour C.4 | Sub: Arbour S.10 | Ampli: Onkyo TX-SR607 | Video: Panasonic TX-L47DT50 | Recorder: TS-6600HD |
Sorgente Video: Raspberry PI & Openelec + QNAP TS-869L WD Red 4x4TB | Musica Liquida: Squeezebox Touch | Remote Control: Harmony One | |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2595
|
Codice:
Sub riordina()
'IMPOSTAZIONI
Set primoFoglio = Sheets("Foglio1")
Set cellaIniziale = primoFoglio.Range("A1")
Set secondoFoglio = Sheets("Foglio2")
elemNum = 3 'gruppi di 3 elementi l'uno
'CALCOLI
primoFoglioConta = _
cellaIniziale.End(xlDown).Row + 1 - cellaIniziale.Row
secondoFoglioConta = _
secondoFoglio.Cells(1, 1).End(xlDown).Row + 1 - secondoFoglio.Cells(1, 1).Row
cellValue = secondoFoglio.Cells(1, 1)
If secondoFoglioConta = 65536 Then
If IsEmpty(cellValue) Then
Set myCella = secondoFoglio.Cells(1, 1)
Else
Set myCella = secondoFoglio.Cells(2, 1)
End If
Else
Set myCella = secondoFoglio.Cells(1, 1).End(xlDown).Offset(1, 0)
End If
For i = primoFoglioConta To elemNum Step -elemNum
For j = (elemNum - 1) To 0 Step -1
myCella.Offset(primoFoglioConta + elemNum - i - j - 1, 0) = _
primoFoglio.Cells(i - j, 1)
Next j
Next i
End Sub
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Quote:
Tante grazie!!!! Ora come faccio a fargli fare questo lavoro?Come lo inserisco? Tante grazie ancora Guldo76!!! |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Sono riuscito a farlo partire!
Solo c'è un problema con le date!Ci mette numeri al loro posto. |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2595
|
Hai controllato il formato della colonna dove vanno a finire le date?
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#15 | |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Quote:
|
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Non so se ti puo' servire ma il formato di una data è del tipo"21/09/2004 1.47"
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2595
|
Queste date stanno da sole in un'apposita colonna, giusto?
Devi impostare il formato della cella su "data", invece che "generico". Il numero "strano" che vedi è il numero seriale che indica la data. XL non capisce nativamente le date; conta quanti giorni (ore, minuti, secondi) sono passati da un punto di partenza predefinito (1/1/1900).
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#18 |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Grazie tantissimo!!!
Risolto! Cmq io per prova avevo cambiato le date in questo formato "01/12/2004-23.54"aggiungendo il trattino ed andava!!!Poi con trova e sostituisci ho sistemato la data. Grazie ancora! |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2595
|
![]() Che brutta soluzione... Molto meglio cambiare l'ultimo blocco For del listato di prima con questo: Codice:
For i = primoFoglioConta To elem_num Step -elem_num
For j = (elem_num - 1) To 0 Step -1
myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0) = _
primoFoglio.Cells(i - j, 1)
If IsDate(primoFoglio.Cells(i - j, 1).Value) Then
myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0).NumberFormat = "dddd dd/mm/yyyy hh:mm"
'myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0).HorizontalAlignment = xlLeft
End If
Next j
Next i
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#20 | |
|
Member
Iscritto dal: May 2002
Città: Foggia
Messaggi: 208
|
Quote:
Putroppo la nuova soluzione che mi hai dato non va!Non fa nulla Sub riordina() 'IMPOSTAZIONI Set primoFoglio = Sheets("Foglio1") Set cellaIniziale = primoFoglio.Range("A1") Set secondoFoglio = Sheets("Foglio2") elemNum = 3 'gruppi di 3 elementi l'uno 'CALCOLI primoFoglioConta = _ cellaIniziale.End(xlDown).Row + 1 - cellaIniziale.Row secondoFoglioConta = _ secondoFoglio.Cells(1, 1).End(xlDown).Row + 1 - secondoFoglio.Cells(1, 1).Row cellValue = secondoFoglio.Cells(1, 1) If secondoFoglioConta = 65536 Then If IsEmpty(cellValue) Then Set myCella = secondoFoglio.Cells(1, 1) Else Set myCella = secondoFoglio.Cells(2, 1) End If Else Set myCella = secondoFoglio.Cells(1, 1).End(xlDown).Offset(1, 0) End If For i = primoFoglioConta To elem_num Step -elem_num For j = (elem_num - 1) To 0 Step -1 myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0) = _ primoFoglio.Cells(i - j, 1) If IsDate(primoFoglio.Cells(i - j, 1).Value) Then myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0).NumberFormat = "dddd dd/mm/yyyy hh:mm" 'myCella.Offset(primoFoglioConta + elem_num - i - j - 1, 0).HorizontalAlignment = xlLeft End If Next j Next i End Sub Ultima modifica di vascoblu : 08-04-2005 alle 14:24. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:46.





















