Página 1 de 1

Macro VBA.

Enviado: 12 Jan 2016 às 16:43
por Ronibarros
Tenho uma macro VBA-Excel que junta dados de outras planilhas de pastas de trabalho que estão no mesmo endereço. Essas pastas eu recebo, junto em um só arquivo e faço as análises (tabela dinâmica, etc.).
Só que em alguns momentos eu tenho que receber as planilhas, juntar, e fazer algumas alterações. Quando faço essas alterações tenho que separar o meu "planilhão" por unidade e enviar as mesmas divididas para cada unidade, daí eu tenho que separá-las manualmente.
O que eu gostaria é um código que identifique os conteúdos por linhas (já no meu arquivo unificado), levando em consideração a célula que identifica a unidade e grave na planilha de cada pasta (arquivo do excel) correspondente a unidade. Tipo fazendo uma extração da minha própria planilha para outra planilha, obedecendo uma condição, no caso já existe na primeira célula da linha o nome da unidade. Já pesquisei, já tentei algumas situações, porém estou sem tempo, preciso entregar o trabalho para outra pessoa fazer urgente. Muuuiiito grato.

Re: Macro VBA.

Enviado: 13 Jan 2016 às 07:25
por alexandrevba
Bom dia!!!

Ao menos poste seu arquivo modelo para que o pessoal possa lhe ajudar.

Att

Re: Macro VBA.

Enviado: 13 Jan 2016 às 15:57
por Ronibarros
Caríssimos,
Dá pra ver esse rapidinho?

Estou tentando colocar um valor em todas as células da coluna F condicionado ao valor que contém cada célula da coluna Q, a partir da linha 2. o valor que aparece nas células da coluna F (não em todas) é só "Matriz", mesmo assim não obedece o critério.

Código:
___
Sub Col_unidade()

'colocar valores na coluna Unidade
Dim lin_orig As Integer
Dim col_orig As Integer
Dim lin_dest As Integer
Dim col_dest As Integer
lin_orig = 2
col_orig = 17
lin_dest = 2
col_dest = 6

'estou tentando colocar um valor em todas as células da coluna F
'condicionado ao valor que contém cada celula da coluna Q, a partir da linha 2

Do Until Cells(lin_orig, col_orig).Value = ""
If Cells(lin_orig, col_orig).Value < "100000,00" Then
Cells(lin_dest, col_dest).Value = "Agência"
End If
If Cells(lin_orig, col_orig).Value > "99999,99" Then
If Cells(lin_orig, col_orig).Value < "500000,00" Then
Cells(lin_dest, col_dest).Value = "Super"
End If
End If
If Cells(lin_orig, col_orig).Value > "499999,99" Then
Cells(lin_dest, col_dest).Value = "Matriz"
End If

lin_orig = lin_orig + 1
lin_dest = lin_dest + 1

Loop


End Sub
____

Obs: o conteúdo das células da coluna Q é valor R$.

Macro VBA.

Enviado: 14 Jan 2016 às 11:43
por Ronibarros
consegui!!

Sub Col_unidade()

'colocar valores na coluna Unidade
Dim lin_orig As Integer
Dim col_orig As Integer
Dim lin_dest As Integer
Dim col_dest As Integer
Dim limite1 As Long
Dim limite2 As Long
Dim limite3 As Long
Dim limite4 As Long

limite1 = 100000
limite2 = 99999.99
limite3 = 500000
limite4 = 499999.99

lin_orig = 2
col_orig = 17
lin_dest = 2
col_dest = 6

'estou tentando colocar um valor em todas as células da coluna F
'condicionado ao valor que contém cada celula da coluna Q, a partir da linha 2

Do Until Cells(lin_orig, col_orig).Value = ""
If Cells(lin_orig, col_orig).Value < limite1 Then
Cells(lin_dest, col_dest).Value = "Agência"
End If
If Cells(lin_orig, col_orig).Value > limite2 Then
If Cells(lin_orig, col_orig).Value < limite3 Then
Cells(lin_dest, col_dest).Value = "Super"
End If
End If
If Cells(lin_orig, col_orig).Value > limite4 Then
Cells(lin_dest, col_dest).Value = "Matriz"
End If

lin_orig = lin_orig + 1
lin_dest = lin_dest + 1

Loop


End Sub