Macro VBA para dividir linhas inteiras em várias linhas
Comessamacro,vocêdividelinhasinteirasemváriaslinhas.Vocêpodeescolherquantascolunasdesejaapósadivisão.bastaalterarovalordeiSplit
naprimeiralinha.Eunãousoumdelimitadorespecífico,apenascontagensdecolunas.
Comenteitodosospassos.Éfácilajustaramacroàssuasnecessidadespessoais.
- AbraoeditorExceleVBAcomAlteF11
- Nopainelesquerdo,coleocódigonafolhaondeseusdadossãocolocados
- Modifiqueasduasprimeiraslinhasdeacordocomsuasnecessidades
- ExecuteamacrocomF5
ConstiSplit=4'##howmanycolumnsdoyouwantaftersplittingSubtransposeColumn()'##searchthelastrowtoknowhowmanyrowswehavetoiteratethroughiLastRow=Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
'## begin to loop through every row. Begin at last row and go upwards
For r = iLastRow To 1 Step -1
'## search the last column in the current row
iLastCol = Rows(r).Find("*", Cells(r, 1), , , xlByColumns, xlPrevious).Column
'## calculate how many new rows we need to insert for this row
iNewRows = WorksheetFunction.RoundUp(iLastCol / iSplit, 0) - 1
'## begin to copy and insert new rows, one by one
For c = 1 To iNewRows
'## insert a new blank line where we can copy values to
Rows(r + c).Insert Shift:=xlDown
'## set the source range for easier access later
Set rngSrc = Range(Cells(r, iSplit * c + 1), Cells(r, iSplit * c + iSplit))
'## copy and paste the range
rngSrc.Copy Destination:=Cells(r + c, 1)
'## clear all cells which we have just copied
rngSrc.Clear
Next c
Next r
End Sub