3
respostas

erro quando a planilha importada tem somente uma linha de dados - como corrigir?

Utilizando o exemplo do exercício, caso haja por exemplo um mês para ser importado onde há somente uma linha (supondo que haja somente um segurado no mês de abril), a planilha não pode ser importada. Como corrigir este erro? Obrigada

3 respostas

Olá Roberta tudo certinho por aí?

Gostaria de te pedir para informar a aula e o exercício que você está tendo dificuldade. Se possível envie o script que está utilizando também. Assim conseguirei te ajudar =)

Fico no aguardo.

Olá Victor,

O código se refere à aula 4 - trabalhando com arquivos. Utilizando o próprio código apresentado na aula, se tivessemos um dos arquivos para importa com apenas uma linha de dados (por exemplo, supondo que na planilha do mês de abri haja somente um segurado), a planilha não pode ser importada. O código usado está abaixo. Obrigada!!


Sub Importar03()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Dim nomearq As String
    Dim nomearq2 As String
    nomearq = Application.GetOpenFilename
    Workbooks.Open Filename:=nomearq
    nomearq2 = ActiveWorkbook.Name
    Sheets(1).Select
    Range("a2").Select
    Range(ActiveCell, ActiveCell.End(xlDown).End(xlToRight)).Copy
    Workbooks("importacao-texto.xlsm").Activate
    Range("a1048576").End(xlUp).Offset(1, 0).Select
    ActiveCell.PasteSpecial xlFormats
    ActiveCell.PasteSpecial xlValues
    Workbooks(nomearq2).Activate
    Workbooks(nomearq2).Close
    Range("a1").Select
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    End Sub

Olá Roberta fiz o teste aqui.

Realmente ele quebra quando utilizado em um mês que possua apenas uma linha de informação. Se você for executando passo a passo o script, irá observar que na linha Range(ActiveCell, ActiveCell.End(xlDown).End(xlToRight)).Copy onde ele está na célula ativa e é dado o comando para que ele copie a informação para baixo e para direita até o final, não ocorre. E não ocorre por que ele ao mesmo tempo que é a "linha" ativa, também é a "linha final" e gera conflito. No meu ponto de vista, eu acredito que a função seja justificada justamente quando se precisa adicionar mais do que uma linha de informação =)

Espero ter ajudado! Qualquer dúvida é só retornar aqui, bons estudos!