
Estou tentando levar informações de uma planilha para outra na mesma pasta de trabalho.
Porém, gostaria que as células positivas fossem importadas para as planilhas subsequenciais com o nome de sua coluna.
Por exemplo:
| Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One | x | | x
List Two | x | x |
List Three | x | |
Então eu gostaria
na Planilha2 -Lista Um
- Exemplo 1
- Exemplo3
Na Folha3 -Lista dois
- Exemplo 1
- Exemplo2
Na Folha4 -Lista três
- Exemplo 1
Espero que isso faça algum sentido para alguém! Desculpe pela codificação terrível, enferrujado enferrujado!
Responder1
Presumo que seus títulos estejam na linha 1 e os dados comecem na linha 2
Na 1ª coluna(linha não importa aqui)de suas outras planilhas, insira esta fórmula =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)
como uma fórmula de matriz com Ctrl+ Shift+Enter
copie isso na linha e ele listará os nomes das colunas. O final é alcançado quando a fórmula começa a apresentar #NUM!
erros.
Para a planilha3, altere 2:2 para 3:3 e assim por diante para as planilhas subsequentes
Responder2
Isso permite que você tenha um número maior de linhas e colunas e assume qualquer coisa em vez de apenas "x". Você pode ter certeza de que é sempre "x" e alterar isso facilmente. Também fiz essas folhas de nomes de acordo com o nome da lista. Se a adição de folhas não ocorrer, você poderá remover essa parte.
Sub columnsToListSheets()
LastCol = Sheets("Sheet1").UsedRange.Columns.Count
For rowNumber = 2 To 4
i = 1
ListName = Sheets("Sheet1").Cells(rowNumber, 1)
Sheets.Add
NewSheet = ActiveSheet.Name
Worksheets(NewSheet).Cells(1, 1) = ListName
'You may want to name the worksheet after the list
Worksheets(NewSheet).Name = ListName
For colNumber = 2 To LastCol
'"x" may be good enough to test for
If Worksheets("Sheet1").Cells(rowNumber, colNumber) <> "" Then
i = i + 1
'Worksheets(NewSheet).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
Worksheets(ListName).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
End If
Next colNumber
Next rowNumber
End Sub