View Full Version : DIVIDERE UNA STRINGA IN PIù CELLE DI EXCEL
abcdiego
19-06-2009, 09:02
chiedo già perdono perché so che probabilmente sarà una domanda da perfetto incapace informatico, ma la faccio lo stesso:
vorrei dividere il contenuto di una frase inserita in una cella in più celle di Excel.
mi spiego meglio con un esempio:
attualmente ho una cella con questo indirizzo
CELLA A1: via cambiasi 20125 milano
vorrei ottenere la seguente situazione:
CELLA A2: via
CELLA A3: cambiasi
CELLA A4: 20125
CELLA A5: milano
come si fa?
vi ringrazio anticipatamente
Diego
john_revelator
19-06-2009, 12:10
Ti ho scritto questa macro che mi sembra funzioni a dovere
Sub splitta()
Dim cella As Range
Dim k, i As Byte
Dim parole As Variant
For Each cella In Selection.Cells
parole = Split(cella, " ")
k = 1
For i = 0 To UBound(parole)
Cells(cella.Row, cella.Column + k) = parole(i)
k = k + 1
Next i
Next cella
End Sub
Una volta selezionate tutte le celle che vuoi "splittare" lancia la mia macro. Per prudenza prova su una copia del tuo file. :)
CELLA A1: via cambiasi 20125 milano
vorrei ottenere la seguente situazione:
CELLA A2: via
CELLA A3: cambiasi
CELLA A4: 20125
CELLA A5: milano
O anche con sole 4 righe di codice, e senza selezionare manualmente alcunchè :
Dim arrayIndirizzo() As String
arrayIndirizzo = Split(Range("A1").Text, " ")
Range("A2:A" & (UBound(arrayIndirizzo) + 2)) = WorksheetFunction.Transpose(arrayIndirizzo)
Range("A2:A" & (UBound(arrayIndirizzo) + 2)).HorizontalAlignment = xlLeft
L'ultima linea assicura che il testo nelle celle venga allineato nello stesso modo ( in questo caso : a sinistra ). ;)
john_revelator
19-06-2009, 14:10
O anche con sole 4 righe di codice, e senza selezionare manualmente alcunchè :
Dim arrayIndirizzo() As String
arrayIndirizzo = Split(Range("A1").Text, " ")
Range("A2:A" & (UBound(arrayIndirizzo) + 2)) = WorksheetFunction.Transpose(arrayIndirizzo)
Range("A2:A" & (UBound(arrayIndirizzo) + 2)).HorizontalAlignment = xlLeft
L'ultima linea assicura che il testo nelle celle venga allineato nello stesso modo ( in questo caso : a sinistra ). ;)
Spettacolare come al solito. :)
@abcdiego: chiedo scusa, avevo pure letto male e la mia macro splittava le parole in orizzontale su più colonne e non in verticale. :fagiano:
@john_revelator
grande! la tua procedura funziona benissimo.. ora però avrei bisogno di reimpilare tutte le celle adiacenti in un'unica colonna. sai ocme fare?
Mi spiego meglio.. la tua procedura li mette uno di fianco all'altro.. io avrei bisogno che me li mettesse in colonna e la procedura di MarcoGG mi pare che funzioni solo sulla prima cella o sbaglio? e così non serve a niente..
Cerco di spiegare chiaramente cosa mi servirebbe e soprattutto se è possibile farlo..
ho una colonna di celle che contengono diversi codici separati da uno spazio.. io ho bisogno di ottenere un'altra colonna in cui ogni codice abbia la sua cella.
Per fare un esempio: adesso ho 100 dati in 5 celle, dopo voglio 100 dati in 100 celle.
è possibile? già con la tua macro sono riuscito ad ottenere 100 celle, ma ora non so come fare per rimetterle tutte nella stessa colonna...
Qualche consiglio?
grazie ragazzi! in questo momento non sapete quanto invidio le vostre competenze... :muro:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.