Página 1 de 1
Macro para adicionar conteúdo a células já preenchidas
Enviado: 13 Ago 2018 às 08:30
por MSFT
Entendidos de plantão,
Após pesquisar e não encontrar solução para a situação que lhes apresento, decidi inscrever-me neste fórum para tentar obter aqui uma dica que resolva o seguinte problema:
Tenho uma planilha do Excel com quase 3 mil linhas e, numa certa coluna, preciso inserir em todas as células um determinado conteúdo sem apagar o já existente. O novo conteúdo só precisa "empurrar" o já existente para a direita e inserir-se no início.
Tentei gravar uma macro para isso, mas não consegui fazer com que ela *NÃO* substituísse todo o conteúdo da célula seguinte pelo da anterior.
Agradeço qualquer luz.

Macro para inserir conteúdo em células já preenchidas
Enviado: 13 Ago 2018 às 08:33
por gfranco
Bom dia.
Sugiro postar um modelo de sua planilha (com dados fictícios mas mesma estrutura)
Poste um modelo em excel (não uma imagem) de preferencia com uma demonstração manual do resultado pretendido.
Para anexar o arquivo, clique em +Resposta e localize a opção abaixo da janela de digitação de mensagens.
Re: Macro para adicionar conteúdo a células já preenchidas
Enviado: 13 Ago 2018 às 08:41
por MSFT
Obrigado pela resposta, gfranco. Segue em anexo o modelo solicitado.
Aguardo seus comentários.
Um abraço!
Re: Macro para adicionar conteúdo a células já preenchidas
Enviado: 13 Ago 2018 às 08:52
por gfranco
Amigo.
Veja se o que fiz te ajuda.
*Resposta útil ? Clique em "Obrigado"
**Sua dúvida foi sanada? Marque o tópico como "Resolvido"
Re: Macro para adicionar conteúdo a células já preenchidas
Enviado: 13 Ago 2018 às 09:10
por MSFT
gfranco, ajuda sim, muito obrigado.
O detalhe é que, na planilha onde a adição de conteúdo deve ser efetuada, a macro está agindo na coluna errada (uma antes).
Dei uma olhada no código VBScript e encontrei a seguinte linha:
ul = w.Cells(w.Rows.Count, "B").End(3).Row
Imaginei que o "B" fosse a coluna onde o código está agindo (porque no modelo que lhe mandei era a B) e troquei por "C", que seria a coluna correta. Mesmo assim, ele continua efetuando a adição na coluna errada.
Imaginei que, se eu eliminasse todas as outras colunas da planilha e deixasse só aquela em que preciso da adição de conteúdo (depois seria fácil copiar/colar o resultado na planilha definitiva), a macro seria forçada a atuar só nela. Mas ao rodá-la nessas circunstâncias ela não faz nada.
Como não entendo de VBScript, não descobri onde estaria o parâmetro que determina a coluna onde a adição deve ser realizada. Pode me dar um toque?
Muito obrigado!
Re: Macro para inserir conteúdo em células já preenchidas
Enviado: 13 Ago 2018 às 09:15
por gfranco
gfranco escreveu:Bom dia.
Sugiro postar um modelo de sua planilha (com dados fictícios mas mesma estrutura)
Poste um modelo em excel (não uma imagem) de preferencia com uma demonstração manual do resultado pretendido.
Para anexar o arquivo, clique em +Resposta e localize a opção abaixo da janela de digitação de mensagens.
Observe a menção que eu fiz sobre
mesma estrutura
Substitua o código anterior por este:
Código: Selecionar todosSub main()
Dim ul As Long
Dim palavraParaAcrescentar As String
Dim w As Worksheet
Dim i As Long
Dim anterior As String
Set w = Planilha1
ul = w.Cells(w.Rows.Count, "c").End(3).Row
If ul < 3 Then Exit Sub
If w.ProtectContents = True Then
MsgBox "Impossível executar em planilha protegida"
Exit Sub
End If
If w.AutoFilterMode Then w.AutoFilterMode = False
palavraParaAcrescentar = "[ABC]"
For i = 3 To ul
anterior = VBA.CStr(w.Cells(i, 3))
w.Cells(i, 3) = palavraParaAcrescentar & " " & anterior
Next i
Set w = Nothing
End Sub
Re: Macro para adicionar conteúdo a células já preenchidas
Enviado: 13 Ago 2018 às 09:24
por osvaldomp
Experimente:
Código: Selecionar todosSub InsereString()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("C3:C" & Cells(Rows.Count, 3).End(3).Row)
c.Value = "[ABC] " & c.Value
Next c
Application.ScreenUpdating = True
End Sub