Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por SamGen
Avatar
#23184
Preciso gerar mais de 300 relatórios individualizados em batelada. Gravei uma macro no Excel e tentei edita-la no VBA, mas estou enfrentando problemas, deu o erro de execução 1004.

As linhas que estão dando erro estão em negrito. Preciso que o x e o y variem, e que pra cada variação seja salvo um arquivo PDF diferente.

Aproveito para indagar aos colegas, como faço para que os nomes dos arquivos PDF sejam diferentes para cada arquivo salvo? (Também preciso alterar isso na minha fórmula..)

Eis o meu código:

Sub tci()
'
' tci Macro
' TCI
'
' Atalho do teclado: Ctrl+ç
'
Dim i As Integer, x As Integer, y As Integer

For i = 1 To 346
x = i - 8
y = i - 12

Range("E9:I9").Select
ActiveCell.FormulaR1C1 = "='Dados Puros'!R[x]C[-4]"
Range("E13:I13").Select
ActiveCell.FormulaR1C1 = "='Dados Puros'!R[y]C[-3]"
Range("E14:I14").Select
ActiveWindow.SmallScroll Down:=9
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Samia\Desktop\TCI\relatorio_batelada.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

Next i

End Sub
Avatar do usuário
Por PietroFarias
Posts Avatar
#23205
O erro está ocorrendo pois o X e o Y estão dentro da aspa, o que transforma elas em texto e não mais em variáveis.
Com isso substitua as linhas que estão com erro por:
Código: Selecionar todos
ActiveCell.FormulaR1C1 = "='Dados Puros'!R[" & x & "]C[-4]"
Código: Selecionar todos
ActiveCell.FormulaR1C1 = "='Dados Puros'!R[" & y & "]C[-3]"
Outro detalhe, cada geração do PDF será aberto, você quer isso mesmo? Já que são tantos PDF. Caso não queira na opção OpenAfterPublish:=True, altere o valor TRUE para FALSE.

Para alterar o nome do PDF voc~e tem que criar uma variável e incluir no nome do arquivo. Por exemplo:
Código: Selecionar todos
Dim Nome as String

Nome = "Ai tem que saber onde está essa variavel"

'E então na publicação inserir o nome da variavel no arquivo
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Samia\Desktop\TCI\relatorio_batelada_" & Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

Deu para entender?
Avatar do usuário
Por PietroFarias
Posts Avatar
#23245
Que bom! Depois só mandar um joinha! ;)
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord