Recebo a mensagem "A variável do objeto ou a variável do bloco with não foi definida".
@Bautto, vc dimensionou a variável "col" como tipo objeto Range ao invés de Long, por isso o erro.
Também tenho dúvida de que a instrução "Sheets(Plan).Cells(lin, col).Value = MesRef" esteja correta.
Está incorreta, além de ter muita redundância em seu código nesse sentido. Aliás, vc nem precisaria ter dimensionado uma variável tipo Worksheet: se no código vc usa o CodeName do objeto pra retornar o Name pra então atribuir a um objeto do mesmo tipo que o próprio CodeName retorna... não há sentido nisso.
Por exemplo, em seu caso, ao invés de:
Set Plan = ThisWorkbook.Worksheets(Planilha1.Name)
vc poderia ter atribuído logo:
Set Plan = Planilha1
Mas nem isso seria necessário, pois vc poderia usar simplesmente
Planilha1
Sem necessidade de dimensionar a variável Plan antes. Aí a atribuição ficaria:
col = Planilha1.Cells(lin, Columns.Count).End(xlToLeft).Column + 1
Ou, ainda, como vc está no módulo da Planilha, poderia simplificar ainda mais e usar a palavra chave Me
col = Me.Cells(lin, Columns.Count).End(xlToLeft).Column + 1
Então o trecho
Sheets(Plan).Cells(lin,......
Para funcionar, deve ser alterado para
Sheets(Plan.Name).Cells(lin,......
Ou
Plan.Cells(lin,......
Ou
Planilha1.Cells(lin,......
Ou ainda
Me.Cells(lin,......
Postado : 15/02/2023 10:04 pm