Amigos bom dia!
Preciso de uma ajudinha pois já esgotei meu recursos que são poucoa já que estou iniciando agora em macros.
Fiz um macro para importação de um TXT, onde le importa e organiza os dados atribuindo também umas informações, preciso colocar a informação na coluna “K”, que vai depender da coluna “J”, ele vai ver qual a cidade da coluna “J “e dizer a qual grupo pertence.
Para isso fiz a formula usando “se”, que funciona bem quando colo na célula e arrasto manualmente ,mas quando tento incorporar ao macro da erro.
Alguém pode dá uma ajudinha segue os dados.
Fomula que preciso colocar.
=SE(J5="";"";SE(J5="CACHOEIRA";"GRUPO 2";SE(J5="CATU";"GRUPO 2";SE(J5="CONCEICAO DE JACUIPE";"GRUPO 2";SE(J5="CRUZ DAS ALMAS";"GRUPO 2";SE(J5="DIAS DAVILA";"GRUPO 2";SE(J5="DIAS D'AVILA";"GRUPO 2";SE(J5="ESPLANADA";"GRUPO 2";SE(J5="EUNAPOLIS";"GRUPO 2";SE(J5="JEQUIE";"GRUPO 2";SE(J5="LAURO DE FREITAS";"GRUPO 2";SE(J5="MATA DE SAO JOAO";"GRUPO 2";SE(J5="POJUCA";"GRUPO 2";SE(J5="PORTO SEGURO";"GRUPO 2";SE(J5="SALVADOR";"GRUPO 2";SE(J5="SAO FELIX";"GRUPO 2";SE(J5="TEIXEIRA DE FREITAS";"GRUPO 2";SE(J5="VALECA";"GRUPO 2";SE(J5="ACU";"GRUPO RN";SE(J5="MACAU";"GRUPO RN";SE(J5="MOSSORO";"GRUPO RN";SE(J5="NATAL";"GRUPO RN";SE(J5="PARNAMIRIM";"GRUPO RN";SE(J5="SAO GONC AMARANTE";"GRUPO RN";SE(J5="SAO GONCALO AMARANTE";"GRUPO RN";"GRUPO 1")))))))))))))))))))))))))
O que já tenho hoje:
Sub ExibeFormulario()
'impede Mostrar na tela o decorrer do processo
Application.ScreenUpdating = False
'Declaração de variaveis
Dim CurrentSheet As Worksheet
Dim Arquivo As Variant
Dim TempWb As Workbook
Dim DestinoSh As Worksheet: Set DestinoSh = ThisWorkbook.ActiveSheet
Dim lin, col, col2, n As Integer
'fixação de colunas e linhas
n = 1
lin = 6
col = 2
col2 = 3
'Rotirna de busca de arquivo txt do PIPL na pasta Onde foi Salvo
Arquivo = Application.GetOpenFilename("Arquivos Texto(*.*), *.*")
'Importação do arquivo
Workbooks.OpenText Filename:=Arquivo, _
Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(2, _
1), Array(35, 1), Array(54, 1), Array(68, 1), Array(81, 1), Array(90, 1), Array(101, 1), _
Array(112, 1)), TrailingMinusNumbers:=True
'Exclusão de informação não necessarias ou cabeçalhos repetidos
Do While n <= 2000
If Cells(lin, col).Value = "TOTAL LOCALIDADE" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col).Value = "PIJTB - PETROLEO BRASILEIRO SA" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col).Value = "E&P/RNCE-GER E&P RN E CE" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col).Value = "TOTAL NUCLEO AMS" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col).Value = "NOME CREDENCIADO" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col2).Value = "RELACAO CREDENCIA" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col2).Value = "RELACAO CREDENCIAD" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
ElseIf Cells(lin, col).Value = "TOTAL EMPRESA PAGADORA" Then
Cells(lin, col).EntireRow.Select
Selection.Delete Shift:=xlUp
Else
lin = lin + 1
End If
n = n + 1
Loop
'Formatação do Arquivo
Range("A1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[2]="""","""",IF(LEN(RC[2])<=14,""F"",""J""))"
Range("A1").Select
Selection.AutoFill Destination:=Range("A:A"), Type:=xlFillDefault
Range("A:A").Select
Range("E4:H32333").Select
Selection.Style = "Currency"
Range("D:D").HorizontalAlignment = xlRight
Range("J4").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-1]C[-7]="""",IF(R[-1]C[-8]<>"""",R[-1]C[-8],""""),R[-1]C)"
Range("J4").Select
Selection.AutoFill Destination:=Range("J4:J32333"), Type:=xlFillDefault
Range("J:J").Select
'Nome na Planilha Ativa em B2
nomeB2 = CStr(ActiveSheet.Range("B2").Value)
Set CurrentSheet = ActiveSheet
On Error Resume Next
'copia todas as células da planilha ativa
CurrentSheet.Cells.Copy
'Cria a Nova PASTA (ARQUIVO)
Set Wkb = Worksheet.Add
'cola somente os valores na planilha Ativa da nova Pasta,
'sem formulas e mantenndo a formatação
With ActiveSheet.Range("A1")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False
'Define os Novos Nomes - Planilha(ABA) e Pasta(Arquivo)
novoNome = nomeB2
'Renomeia a planilha nova com
'o Nome que estava em B2
With ActiveSheet
.Name = novoNome
.Range("A1").Select
End With
Range("A1").Select
Range("A4").Value = "TIPO"
Range("J4").Value = "CIDADE"
Rows("4:4").Select
Selection.AutoFilter
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
Range("H1").Style = "date"
'Enibe a mensagem se a pasta já existir
'Com essa instrução a Pasta será substiutida sem questionamento
Application.DisplayAlerts = False
MsgBox ("Importação Concluida")
End Sub
Segue também o arquivo com o macro e um txt ele deve importar.
Postado : 23/09/2015 6:05 am