Notifications
Clear all

Erro: Concatenando Nome Arquivo na Fórmula VBA

3 Posts
2 Usuários
0 Reactions
828 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Pessoal,

Estou com um erro no VBA dizendo "Erro de compilação | Era esperado: fim da instrução" na seguinte situação:

Sub busca_arquivos()
'

Dim caminho_razao, razao_do_mes, nome_deste_arquivo As String

caminho_razao = Sheets("Painel").Range("f6")
razao_do_mes = Sheets("Painel").Range("f4")
nome_deste_arquivo = Sheets("Painel").Range("f7")
'
    Workbooks.Open Filename:=caminho_razao
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "FILTRO"
    Range("A2").Select
  ActiveCell.FormulaR1C1 = "=IF(COUNTIF('["&nome_deste_arquivo&"]Painel'!R4C2:R13C2,VALUE(RC[27]))>=1,""Sim"",""Não"")"

Não consigo concatenar o nome do arquivo com a fórmula SE:

"=IF(COUNTIF('["&nome_deste_arquivo&"]Painel'!R4C2:R13C2,VALUE(RC[27]))>=1,""Sim"",""Não"")"

Este nome do arquivo pode ser eventualmente alterado e por isso não quero fixa-lo e por isto também esta previsto na planilha "Sheets("Painel").Range("f7")". Mas o VBA não reconhece o texto como sendo parte da fórmula.

Alguém consegue me ajudar?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/09/2018 8:14 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bom dia, lcamargo

Faltou o espaço em branco antes e depois do & comercial.

Faltou também finalizar a macro com End Sub

 
Postado : 18/09/2018 9:36 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

EdsonBR

Nossa, pior que eu tinha colocado espaço antes de enviar e não tinha dado certo, mas agora deu.

Sub buscar_razao()
'
' buscar_razao Macro
'
Dim nome_razao, nome_planilha, caminho_arquivo As String

nome_planilha = Sheets("Painel").Range("f11")
nome_razao = Sheets("Painel").Range("f4")
caminho_arquivo = Sheets("Painel").Range("f6")

'
    Sheets("Tratamento Mensal").Select
    Cells.Select
    Range("Z1").Activate
    Selection.Delete Shift:=xlUp
    Sheets("Painel").Select
    Workbooks.Open Filename:=caminho_arquivo
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "FILTRO"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIF('[" & nome_planilha & "]Painel'!R4C2:R13C2,VALUE(RC[27]))>=1,""Sim"",""Não"")"
        '"=IF(COUNTIF('[Controle de Conciliação Financeiro.xlsm]Painel'!R4C2:R13C2,VALUE(RC[27]))>=1,""Sim"",""Não"")"
    

    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A100000")
    Range("A2:A100000").Select
    Columns("A:A").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Cells.Select
    


    Application.CutCopyMode = False
    Selection.AutoFilter
    Selection.AutoFilter
    ActiveWindow.ScrollColumn = 42
    ActiveWindow.ScrollColumn = 39
    ActiveWindow.ScrollColumn = 1
    Range("A1").Select
    ActiveSheet.Range("$A:$AY").AutoFilter Field:=1, Criteria1:="Sim"
    Columns("B:AE").Select
    ActiveWindow.LargeScroll ToRight:=1
    ActiveWindow.ScrollColumn = 34
    ActiveWindow.ScrollColumn = 36
    ActiveWindow.ScrollColumn = 39
    ActiveWindow.ScrollColumn = 40
    ActiveWindow.ScrollColumn = 41
    ActiveWindow.ScrollColumn = 43
    Columns("B:AZ").Select
    Selection.Copy
    Windows(nome_planilha).Activate
    Sheets("Tratamento Mensal").Select
    Range("AC2").Select
    Columns("A:A").Select
    ActiveSheet.Paste
    Sheets("Painel").Select
    Range("B14").Select
    
    Excel.Application.DisplayAlerts = False
    Windows(nome_razao).Activate
    ActiveWindow.Close
    ThisWorkbook.Saved = False
    Sheets("Painel").Select
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/09/2018 9:59 am