1
resposta

Prompt ChatGPT para copiar bloco sem precisar corrigir

Escrevi o seguinte prompt pro chatGPT:

Faça um código VBA que selecione o conteúdo a partir da celula selecionada e percorra linhas e colunas até encontrar uma célula vazia, copie este conteúdo e cole em uma planilha chamada "Destino"

Ele me trouxe o código abaixo que funcionou perfeitamente:

Sub CopiarBlocoParaDestino()
    Dim wsOrigem As Worksheet
    Dim wsDestino As Worksheet
    Dim rngInicio As Range
    Dim rngFim As Range
    Dim rngBloco As Range
    Dim ultimaLinha As Long
    Dim ultimaColuna As Long
    Dim linhaDestino As Long

    ' Definir a planilha de origem (planilha ativa)
    Set wsOrigem = ActiveSheet
    
    ' Definir a célula inicial (célula atualmente selecionada)
    Set rngInicio = ActiveCell
    
    ' Encontrar a última linha do bloco de dados
    ultimaLinha = rngInicio.Row
    Do While wsOrigem.Cells(ultimaLinha + 1, rngInicio.Column).Value <> ""
        ultimaLinha = ultimaLinha + 1
    Loop
    
    ' Encontrar a última coluna do bloco de dados
    ultimaColuna = rngInicio.Column
    Do While wsOrigem.Cells(rngInicio.Row, ultimaColuna + 1).Value <> ""
        ultimaColuna = ultimaColuna + 1
    Loop
    
    ' Definir o intervalo de células a serem copiadas
    Set rngBloco = wsOrigem.Range(rngInicio, wsOrigem.Cells(ultimaLinha, ultimaColuna))
    
    ' Verificar se a planilha "Destino" existe, caso contrário, criá-la
    On Error Resume Next
    Set wsDestino = ThisWorkbook.Sheets("Destino")
    If wsDestino Is Nothing Then
        Set wsDestino = ThisWorkbook.Sheets.Add
        wsDestino.Name = "Destino"
    End If
    On Error GoTo 0

    ' Encontrar a próxima linha vazia na planilha "Destino"
    linhaDestino = wsDestino.Cells(wsDestino.Rows.Count, 1).End(xlUp).Row + 1
    
    ' Copiar e colar os dados
    rngBloco.Copy
    wsDestino.Cells(linhaDestino, 1).PasteSpecial Paste:=xlPasteValues
    
    ' Limpar a área de transferência
    Application.CutCopyMode = False
    
    ' Mensagem de confirmação
    MsgBox "Bloco de células copiado com sucesso para a planilha 'Destino'!", vbInformation, "Concluído"

End Sub
1 resposta

Olá Evandro!

Que ótimo saber que o código gerado funcionou perfeitamente para o seu caso! Do que observei ele ta fazendo exatamente o que você precisa: copiando um bloco de células a partir da célula selecionada até encontrar células vazias e colando na planilha "Destino". Bom demais!

Bons estudos!

Sucesso