Página 1 de 1
Cria aba conforme lista
Enviado: 31 Jul 2020 às 15:33
por Stickdaleh
Prezados,
Estou precisando de uma macro, que cria abas conforme a lista da aba "DADOS". Ela pega o nome/data1/data2 e monta em um formato padrão para todas e coloca-os em um local definido e por ultimo coloca o nome da pessoa na aba (pode ser limitado ao máximo permitido de caracteres da aba ou até 20 caracteres). Conforme vai descendo a linha vai fazendo uma nova aba.
O número de linhas e abas vão depender de cada caso, então a quantidade de vezes que vai ocorrer o processo irá variar de acordo com a necessidade.
Desde já, agradeço a atenção de todos!
Re: Cria aba conforme lista
Enviado: 31 Jul 2020 às 17:47
por osvaldomp
Experimente:
Código: Selecionar todosSub InserePlanilhas()
Dim n As Range
Application.ScreenUpdating = False
With Sheets("DADOS")
For Each n In .Range("B2:B" & .Cells(Rows.Count, 2).End(3).Row)
Sheets.Add after:=Sheets(Sheets.Count)
With ActiveSheet
.[C5:I5] = Array("NOME", , , , "DATA 1", , "DATA 2")
.[D5] = n.Value: .Name = n.Value
.[H5] = Format(n.Offset(, 1), "mm/dd/yyyy")
.[J5] = Format(n.Offset(, 2), "mm/dd/yyyy")
.Range("H:H,J:J").EntireColumn.AutoFit
End With
Next n
End With
End Sub
Cria aba conforme lista
Enviado: 01 Ago 2020 às 19:40
por Stickdaleh
Funcionou!! Muito obrigado pelo seu tempo e atenção, me ajudou muito, vou deixar ainda como não resolvido pois vou testar em outras planilhas e talvez precise de ajuda.
Novamente, muito obrigado!
Re: Cria aba conforme lista
Enviado: 03 Ago 2020 às 15:19
por Stickdaleh
osvaldomp escreveu:Experimente:
Código: Selecionar todosSub InserePlanilhas()
Dim n As Range
Application.ScreenUpdating = False
With Sheets("DADOS")
For Each n In .Range("B2:B" & .Cells(Rows.Count, 2).End(3).Row)
Sheets.Add after:=Sheets(Sheets.Count)
With ActiveSheet
.[C5:I5] = Array("NOME", , , , "DATA 1", , "DATA 2")
.[D5] = n.Value: .Name = n.Value
.[H5] = Format(n.Offset(, 1), "mm/dd/yyyy")
.[J5] = Format(n.Offset(, 2), "mm/dd/yyyy")
.Range("H:H,J:J").EntireColumn.AutoFit
End With
Next n
End With
End Sub
A macro da erro quando tem nomes muito grandes, como faz para delimitar até uns 20 caracteres?
Re: Cria aba conforme lista
Enviado: 03 Ago 2020 às 17:04
por osvaldomp
Me parece que o limite é de 31 caracteres. Se você quiser experimentar com 30, então altere no código conforme abaixo.
no lugar de ~~~> .Name = n.Value
coloque ~~~> .Name = Left(n.Value, 30)