Crie uma subrotina que faça as informações das colunas passarem para linhas, mas em uma nova planilha.
Exercício Resolvido
Resolvendo o Problema
-
Iniciamos declarando as variáveis
Dim i As Integer
Dim j As Integer
Dim UltLinha As Long
Dim UltColuna As Long
Dim Ws As Worksheet
Dim Verif As Boolean
-
Criamos um loop For Each para verificar em cada planilha do arquivo se alguma delas está nomeada como "Invertido". Caso exista, a variável booleana (Verif) se torna positiva
For Each Ws In Worksheets
If Ws.Name = "Invertido" Then
Verif = True
End If
Next
-
Caso Verif seja falsa, a condicional If Then irá adicionar a planilha "Invertido" ao arquivo.
If Verif <> True Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Invertido"
End If
-
Agora que definimos o local que nossos dados serão inseridos, encontramos a última linha e coluna com dados da planilha Sheets ("SVBA_Gabarito") e atribuimos as variáveis abaixo.
UltLinha = Sheets("SVBA_Gabarito").Cells(Rows.Count, 2).End(xlUp).Row
UltColuna = Sheets("SVBA_Gabarito").Cells(2, Columns.Count).End(xlToLeft).Column
-
Criamos dois loops For Next um dentro do outro. Deste modo, iremos percorrer as linhas pelo contador i e as colunas pelo contador j.
For i = 2 To UltLinha
For j = 1 To UltColuna
-
Por fim, invertemos a posição das células: as linhas na planilha Sheets ("SVBA_Gabarito") passam a ser as colunas na planilha Sheets ("Invertido"), e da mesma forma passamos as colunas para linhas
Sheets("Invertido").Cells(j, i) = Sheets("SVBA_Gabarito").Cells(i, j)
Next j
Next i
Código Consolidado
Sub Resolucao()
Dim i As Integer
Dim j As Integer
Dim UltLinha As Long
Dim UltColuna As Long
Dim Ws As Worksheet
Dim Verif As Boolean
For Each Ws In Worksheets
If Ws.Name Like "Invertido" Then
Verif = True
End If
Next
If Verif = True Then
Else
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Invertido"
End If
UltLinha = Sheets("SVBA_Gabarito").Cells(Rows.Count, 2).End(xlUp).Row
UltColuna = Sheets("SVBA_Gabarito").Cells(2, Columns.Count).End(xlToLeft).Column
For i = 2 To UltLinha
For j = 1 To UltColuna
Sheets("Invertido").Cells(j, i) = Sheets("SVBA_Gabarito").Cells(i, j)
Next j
Next i
End Sub
SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.
Excel ® é uma marca registrada da Microsoft Corporation.
© 2024 SuperExcelVBA | SOBRE