Solicitado criação de linhas de comando com IA, segue prompt e resultado
tenho a planilha abaixo: ID_Cliente Clientes Total Investido E-mail Interno Cliente 1001 %%%#$No&*$%me Cliente 1001 R$ 25,500.00 ** 1002 ###Nome Cli$ente 1002 R$ 55,500.00 ** 1003 *****Nome Cliente 1003 R$ 28,250.00 ** 1004 #####No&me Cliente# 1004 R$ 34,900.00 ** 1005 Nome$ Clie#nte 1005 R$ 43,290.00 ** 1006 ##Nome Cliente 1006 R$ 35,000.00 ** 1007 Nome Cliente 1007 R$ 12,900.00 ** 1008 Nome C&liente 1008 R$ 21,150.00 ** 1009 %Nome Cliente 1009 R$ 12,900.00 **
como referencia a planilha cvomeça na coluna A linha 1 eu preciso de um código em VBA para fazer as seguintes ações: Que a planilha original seja copiada para uma nova aba, e que a aba nova seja renomeada com o nome Duplicada_ + informação de hora, minuto e segundo. Na coluna ID_Cliente, que seja adicionada a informação Byte_ na frente dos códigos dos clientes. Na coluna clientes, preciso limpar os caracteres especiais: &, %, #, *, $. Na coluna Total Investido, preciso que os valores sejam transformados para moeda real. No campo E-mail interno cliente, preciso que seja criado um email para cada cliente com base ja junção de duas informações, A coluna ID_Cliente, após a adição da informação pedida anteriormente + a informação: @bytebank.com.br e por fim, que o cabeçalho seja formatado com a cor azul claro, as fontes sejam colocadas em negrito e as celulas sejam centralizadas. mãos a obra
Linhas de comando: Sub ProcessarDadosClientes()
' Desativa a atualização da tela para otimizar a performance
Application.ScreenUpdating = False
' 1. Copia a planilha original para uma nova aba e renomeia
Dim wsOriginal As Worksheet
Set wsOriginal = ThisWorkbook.Sheets(1) ' Assume que a planilha original é a primeira aba
wsOriginal.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Dim wsDuplicada As Worksheet
Set wsDuplicada = ThisWorkbook.ActiveSheet
Dim nomeAba As String
nomeAba = "Duplicada_" & Format(Now, "hhmmss")
wsDuplicada.Name = nomeAba
' 2. Adiciona "Byte_" na frente dos códigos na coluna ID_Cliente (Coluna A)
Dim ultimaLinha As Long
ultimaLinha = wsDuplicada.Cells(wsDuplicada.Rows.Count, "A").End(xlUp).Row
Dim i As Long
For i = 2 To ultimaLinha ' Começa da linha 2 para ignorar o cabeçalho
wsDuplicada.Cells(i, "A").Value = "Byte_" & wsDuplicada.Cells(i, "A").Value
Next i
' 3. Limpa caracteres especiais na coluna Clientes (Coluna B)
For i = 2 To ultimaLinha
Dim textoCliente As String
textoCliente = wsDuplicada.Cells(i, "B").Value
textoCliente = Replace(textoCliente, "&", "")
textoCliente = Replace(textoCliente, "%", "")
textoCliente = Replace(textoCliente, "#", "")
textoCliente = Replace(textoCliente, "*", "")
textoCliente = Replace(textoCliente, "$", "")
wsDuplicada.Cells(i, "B").Value = textoCliente
Next i
' 4. Formata valores da coluna Total Investido para moeda Real (Coluna C)
' A coluna Total Investido já está no formato R$ 25,500.00, então podemos apenas
' aplicar o formato de número para moeda.
With wsDuplicada.Range("C2:C" & ultimaLinha)
.NumberFormat = "R$ #,##0.00"
End With
' 5. Cria e-mail na coluna E-mail Interno Cliente (Coluna D)
For i = 2 To ultimaLinha
Dim idClienteFormatado As String
idClienteFormatado = Replace(wsDuplicada.Cells(i, "A").Value, "Byte_", "") ' Remove "Byte_" para pegar o ID original
wsDuplicada.Cells(i, "D").Value = "Byte_" & idClienteFormatado & "@bytebank.com.br"
Next i
' 6. Formata o cabeçalho
With wsDuplicada.Range("A1:D1") ' Assumindo que o cabeçalho vai até a coluna D
.Interior.Color = RGB(174, 214, 241) ' Cor azul claro
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
' Ajusta a largura das colunas para melhor visualização
wsDuplicada.Columns.AutoFit
' Reativa a atualização da tela
Application.ScreenUpdating = True
MsgBox "Processamento concluído com sucesso! A nova aba '" & nomeAba & "' foi criada.", vbInformation
End Sub