Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por MRS1977
#49899
Boa tarde, Pessoal!

Alguém pode me ajudar com o código abaixo?

Está apresentando erro nesta parte do código (Set SheetsNameList = CreateObject("System.Collections.ArrayList")

Observação: No Microsoft Excel 2016 funciona perfeitamente, mas na versão 2019 está apresentando erro.

Desde já grato pela atenção.

Marcos

Private Sub Worksheet_Activate()
Dim i As Long
Dim Names As Variant
Dim NumSheets As Long
Dim SheetsNameList As Object
Range("A2:A50").ClearContents

Set SheetsNameList = CreateObject("System.Collections.ArrayList")
For i = 2 To Sheets.Count
SheetsNameList.Add ActiveWorkbook.Sheets(i).Name
Next i
SheetsNameList.Sort

Names = WorksheetFunction.Transpose(SheetsNameList.ToArray)
Range("A2:A50").Resize(SheetsNameList.Count).Value2 = Names
End Sub
Por osvaldomp
#49901
Experimente:
Código: Selecionar todos
Dim i As Long
  Range("A2:A50").ClearContents
  For i = 2 To Sheets.Count
   Cells(i, 1) = Sheets(i).Name
  Next i
Por osvaldomp
#49903
Olá, Marcos.
O código que eu sugeri substitui o seu por completo. Ficaria conforme abaixo.
Código: Selecionar todos
Private Sub Worksheet_Activate()
 Dim i As Long
  Range("A2:A50").ClearContents
  For i = 2 To Sheets.Count
   Cells(i, 1) = Sheets(i).Name
  Next i
End Sub
Por MRS1977
#49904
Osvaldo,
Funcionou perfeitamente.
Só mais uma pergunta. Sou iniciante em VBA, qual função eu uso para que quando o código executar já classificasse a lista de planilhas em ordem alfanumérico?
Muito obrigado pela ajuda!!!
Fique com Deus!!!
Por osvaldomp
#49905
Experimente.
Código: Selecionar todos
Private Sub Worksheet_Activate()
 Dim i As Long
  Range("A2:A50").ClearContents
  For i = 2 To Sheets.Count
   Cells(i, 1) = Sheets(i).Name
  Next i
  Range("A2:A50").Sort Key1:=[A2], Order1:=xlAscending
End Sub
Dependendo da formação alfanumérica dos nomes das planilhas a ordenação padrão do Excel poderá não resultar conforme você deseja. Se for esse o caso então disponibilize alguns nomes das planilhas que representem todos os nomes e coloque a ordem desejada.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord