Usuário com melhor resposta
Macro de Excel Avançada

Pergunta
-
Amigos,
Eu preciso criar uma macro para agilizar o trabalho aqui da empresa.
Só que eu achei complicado de fazer, verifiquem se podem me ajudar!
Preciso que a macro adicione na coluna D o conteúdos dos das colunas
B e C, em suas respectivas linhas:
B C D
1 bala boa bala boa
A macro precisa ir varrendo linha a linha até quando não tiver nenhum
dado em B e C.
A pessoa vai abrir o documento, procurar a macro e executar nele. Isso
vai poupar um trabalho enorme, já que o emissor do documento não tem
condições de adaptar para nós.
Alguem consegue me ajudar nisso?
Bernardes
Respostas
-
Boa tarde Bernardes,
referente a Macros eu não achei nada por enquanto, porém via função do Excel,
vc pode utilizar a CONCATENAR que junta o texto das celulas.
Na célula D1 digite a função abaixo como está.
=CONCATENAR(B1;" ";C1)
Com isso vai deixar o texto das duas células em uma única célula com espaço.
Espero ter ajudado,
Danilo Moreira- Sugerido como Resposta Rayfcrols sexta-feira, 20 de agosto de 2010 18:24
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03
-
Para quem quiser uma macro pode usar esta que eu adaptei pra concatenar intervalos
Este primeiro codigo é em uma unica linha:
Function CONCATENARSEQUENCIA(Intervalo As Range)
Application.Volatile
For Each Célula In Intervalo
If Not IsEmpty(Célula) Then CONCATENARSEQUENCIA = CONCATENARSEQUENCIA & " " & Célula
Next Célula
CONCATENARSEQUENCIA = LTrim(CONCATENARSEQUENCIA)
End FunctionJá este faz uma quebra de linha apos cada celula:
Function CONCATENARSEQUENCIATAB(Intervalo As Range)
Application.Volatile
For Each Célula In Intervalo
If Not IsEmpty(Célula) Then CONCATENARSEQUENCIATAB = CONCATENARSEQUENCIATAB & Célula & Chr(10)
Next Célula
CONCATENARSEQUENCIATAB = LTrim(CONCATENARSEQUENCIATAB)
End Function- Sugerido como Resposta Rayfcrols sexta-feira, 20 de agosto de 2010 18:24
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03
-
Sub Concatenar() Const rOffset As Long = 2 'Esse valor representa a linha onde começam os dados Dim rLast As Long With ActiveSheet rLast = .Cells(.Rows.Count, "B").End(xlUp).Row .Range(.Cells(rOffset, "D"), .Cells(rLast, "D")).Formula = "=CONCATENATE(RC[-2],"" "",RC[-1])" End With End Sub
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03
Todas as Respostas
-
Boa tarde Bernardes,
referente a Macros eu não achei nada por enquanto, porém via função do Excel,
vc pode utilizar a CONCATENAR que junta o texto das celulas.
Na célula D1 digite a função abaixo como está.
=CONCATENAR(B1;" ";C1)
Com isso vai deixar o texto das duas células em uma única célula com espaço.
Espero ter ajudado,
Danilo Moreira- Sugerido como Resposta Rayfcrols sexta-feira, 20 de agosto de 2010 18:24
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03
-
Para quem quiser uma macro pode usar esta que eu adaptei pra concatenar intervalos
Este primeiro codigo é em uma unica linha:
Function CONCATENARSEQUENCIA(Intervalo As Range)
Application.Volatile
For Each Célula In Intervalo
If Not IsEmpty(Célula) Then CONCATENARSEQUENCIA = CONCATENARSEQUENCIA & " " & Célula
Next Célula
CONCATENARSEQUENCIA = LTrim(CONCATENARSEQUENCIA)
End FunctionJá este faz uma quebra de linha apos cada celula:
Function CONCATENARSEQUENCIATAB(Intervalo As Range)
Application.Volatile
For Each Célula In Intervalo
If Not IsEmpty(Célula) Then CONCATENARSEQUENCIATAB = CONCATENARSEQUENCIATAB & Célula & Chr(10)
Next Célula
CONCATENARSEQUENCIATAB = LTrim(CONCATENARSEQUENCIATAB)
End Function- Sugerido como Resposta Rayfcrols sexta-feira, 20 de agosto de 2010 18:24
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03
-
Sub Concatenar() Const rOffset As Long = 2 'Esse valor representa a linha onde começam os dados Dim rLast As Long With ActiveSheet rLast = .Cells(.Rows.Count, "B").End(xlUp).Row .Range(.Cells(rOffset, "D"), .Cells(rLast, "D")).Formula = "=CONCATENATE(RC[-2],"" "",RC[-1])" End With End Sub
- Marcado como Resposta Richard Juhasz quinta-feira, 23 de dezembro de 2010 13:03