| | Post: 25 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
08/10/2018 16:54 | |
Buon pomeriggio!
Avrei bisogno di convertire dei dati (riportati in un'unica colonna) in più righe.
Come potete vedere sul file, da quell'unica colonna ho ottenuto più righe:
scorrendo i dati della colonna, ogni orario rappresenta il dato con cui inizierà una nuova riga.
Siccome la colonna di dati sarà molto lunga, non credo mi sia conveniente usare il copia e incolla speciale.
Grazie a tutti |
|
| | Post: 1.943 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
08/10/2018 17:12 | |
ciao
gli orari mostrati nel tuo file sono in realtà stringhe.
Pertanto, se sei certa che solo tali celle contengano i ":" (due punti) si potrebbe ricercare cella per cella la presenza dei ":" ed agire di conseguenza.
Se sei sicura di quanto esposto ci si può provare, altrimenti è un lavoro a vuoto.
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 25 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
08/10/2018 19:35 | |
Ciao Dodo47, innanzitutto grazie per il tuo aiuto!
Nella colonna dei dati quelle stringhe contenenti i : per me saranno gli orari (magari cambierò il formato successivamente dopo la conversione in righe). Ci saranno quindi altre stringhe con - oppure con , o . ( o ) o numeri o lettere ma solo quelle con i : rappresenteranno il primo termine di ogni riga.
|
| | Post: 1.944 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
09/10/2018 09:18 | |
Ciao
puoi provare:
Sub trasponi()
r = 10 'riga inizio trasposizione
c = 5 'colonna inizio trasposizione
r1 = 10 'riga inizio dati col. B DEVE CONTENERE ORA
ur = Range("B" & Rows.Count).End(xlUp).Row 'ultima riga col. B
CelStart = r1
CelEnd = 0
For j = r1 + 1 To ur
If InStr(Cells(j, 2), ":") > 0 Then
CelEnd = j - 1
Range(Cells(CelStart, 2), Cells(CelEnd, 2)).Copy
Cells(r, c).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
r = r + 1
CelStart = CelEnd + 1
End If
Next
Stop
Range(Cells(CelStart, 2), Cells(ur, 2)).Copy
Cells(r, c).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub
Saluti
[Modificato da dodo47 09/10/2018 09:18] Domenico
Win 10 - Excel 2016 |
| | Post: 26 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
09/10/2018 14:36 | |
Grazie dodo47! La macro va benissimo, dovevo solo cancellare quello stop al rigo 18 che ne bloccava l'esecuzione (ho fatto qualche prova per capirlo).
Poichè su di una colonna di 10000 dati la macro incomincia a rallentare molto ovvierò lavorando a blocchi più piccoli.
😊 [Modificato da Melissa2018 09/10/2018 14:40] |
| | Post: 5.511 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/10/2018 08:25 | |
Ciao Melissa, un saluto a Domenico, per i tempi d'esecuzione su 10000 dati, prova questa, e formatta le colonne da E-U in Generale, ho previsto di cancellare 1000 righe, nel caso aumentale.
Sub Disponi()
Dim r, c, x, rng
Range("E10:U1000").ClearContents
r = Cells(Rows.Count, 2).End(xlUp).Row
rng = Range("B10:B" & r)
r = 9
For x = 1 To UBound(rng)
If InStr(rng(x, 1), ":") > 0 Then r = r + 1: c = 5: Cells(r, c) = rng(x, 1)
If InStr(rng(x, 1), ":") = 0 Then
c = c + 1
If IsNumeric(rng(x, 1)) Then Cells(r, c) = Val(rng(x, 1)) Else Cells(r, c) = rng(x, 1)
End If
Next
End Sub
Ciao By Sal
[Modificato da by sal 10/10/2018 08:33] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 27 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
10/10/2018 16:22 | |
Buon pomeriggio By Sal! Ho appena eseguito la macro che mi hai gentilmente realizzato, ed è istantanea!
Un grazie+++++++++! 😊
Siete fortissimi! 💪 [Modificato da Melissa2018 10/10/2018 16:23] |
| | Post: 0 | Registrato il: 11/10/2018
| Età: 32 | Utente Junior | Excel 15.0 | | OFFLINE | |
|
11/10/2018 09:21 | |
From last few days, I am trying to convert the data into multiple lines and I am not being able to do that. To know the solution I came here and got the process of doing it. It really helped me. I was doing a work for the Apple iPad Support and I am very new to Excel. |
| | Post: 28 | Registrato il: 03/09/2018
| Città: GROTTAGLIE | Età: 25 | Utente Junior | Microsoft Office Professional Plus 2019 64 bit | | OFFLINE | |
|
11/10/2018 21:00 | |
Hi johnwright, you are welcome! 😊
|
| | Post: 5 | Registrato il: 16/09/2018
| Età: 39 | Utente Junior | 2007 | | OFFLINE | |
|
12/10/2018 18:27 | |
Macro che traspone valori Ciao,
ho voluto dare il mio contributo.. :-)
Un saluto a tutti
Roberto
Excel 2007 Roby=85
Excel 2007 |
|
|