Pesquisar na Comunidade
Mostrando resultados para as tags ''macro''.
Encontrado 42 registros
-
Olá, Para quem puder me auxiliar, estou tentando montar uma macro e acionar por um botão para que faça o seguinte: • Pegar as informações de uma tabela simples e transpor os dados como nos exemplos. • Como essa tabela é dinâmica o número de colunas pode variar assim como as linhas. • A intenção é que cada cabeçalho da coluna entre novamente como título das linhas que estão na sequência. Tabela Original Tabela com dados transpostos Alguém pode me sugerir como fazer isso? Desde já, grato.
-
Opa, estou me deparando com um problema nas planilhas de controle comercial da empresa que trabalho, basicamente eles possuem um arquivo desde 2012, sendo alimentada de forma nada prática, da seguinte maneira visível nas imagens em anexo, onde alterei o nome da empresa, e criei varias linhas de teste para esconder o nome dos outros clientes, pois estou usando uma copia do arquivo que está no comercial para realizar as alterações. O arquivo tem a seguinte estrutura, na primeira aba estão listados todos os clientes, e todas as outras abas são ficheiros, que contem um cabeçalho padrão, cada aba de ficheiro possui uma linha que representa a empresa na listagem da primeira aba de clientes, e há um hiperlink na primeira coluna da linha do cliente, que direciona até o ficheiro do cliente, e no ficheiro há um hiperlink que direciona de volta para a aba de clientes. Até agora para facilitar o processo do comercial, que já está acostumado com esse arquivo, e devido a grande quantidade de ficheiros para importar caso fosse iniciar um novo arquivo criei um macro de criação de novos clientes; Mas basicamente automatizei a criação de novas linhas de registro do cliente na aba CLIENTES, a criação de uma nova aba, que é um novo ficheiro do cliente com o cabeçalho e os dados, até ai tudo bem, entretanto necessito automatizar 3 coisas ainda, são elas: A renomeação da aba do ficheiro do cliente, colocando o nome que está na célula B2 do mesmo ficheiro. A criação de um hiperlink na primeira coluna, da linha do cliente, na aba CLIENTES que irá direcionar diretamente para a aba que é o ficheiro relativo a aquele cliente, já com aba tendo um novo nome. A atualização automática do último contato que se teve com o cliente, com base na última linha da primeira editada da aba de ficheiro
-
Pessoal,Estou com uma macro que achei online para envio de whatsapp. Ela funciona bem. O problema é que todo o texto tem que ser escrito em um única célula e dessa forma, o texto não fica dividido em parágrafos, como eu gostaria. Apesar disso, a macro não deixa eu ampliar as células para a mensagem. Testei uma forma de escrever a mensagem que eu quero enviar diretamente no código, sem ser na planilha. Da certo, mas eu também não consigo fazer com que vá com os parágrafos separados certinhos. Sabem como resolver esse problema? Obrigada.
-
vba VBA Importar dados de um txt criando abas para cada grupo de transações
uma questão postou FabioWizrd VBA
Olá a todos, Eu possuo um arquivo em txt, cujo o início de cada linha representa um tipo de transação. Meu objetivo é importar os dados de um arquivo TXT, agrupando os dados correspondentes de cada transação em uma aba nova e exclusiva para cada caso. Ex. Arquivo txt: Transação1;un;1;1,59;1,59;01/01/2018 Transação1;un;2;2;4;01/01/2018 Transação1;un;3;6;18;01/01/2018 Transação2;un;1;1,59;1,59;02/01/2018 Transação2;un;2;2;4;02/01/2018 Transação2;un;3;6;18;02/01/2018 Transação3;un;1;1,59;1,59;03/01/2018 Transação3;un;2;2;4;03/01/2018 Transação3;un;3;6;18;03/01/2018 Resultado Nova Aba Adjacente 1 = Transação1 Transação1 un 1 1,59 1,59 01/01/2018 Transação1 un 2 2 4 01/01/2018 Transação1 un 3 6 18 01/01/2018 Nova Aba Adjacente 2 = Transação2 Transação2 un 1 1,59 1,59 02/01/2018 Transação2 un 2 2 4 02/01/2018 Transação2 un 3 6 18 02/01/2018 Nova Aba Adjacente 3 = Transação3 Transação3 un 1 1,59 1,59 03/01/2018 Transação3 un 2 2 4 03/01/2018 Transação3 un 3 6 18 03/01/2018 Eu uso Excel 2016. Desde já agradeço a ajuda!! -
Olá galera, gostaria da ajuda de vocês. Preciso preencher duas tabelas iguais a que está no print a seguir, o problema é que gostaria de fazer isso com a ajuda do VBA, no caso eu tenho na planilha "Teste" uma lista de 70000 palavras e preciso que a partir de uma tabela que está preenchida o código verifique quais palavras ocorrem na lista independente de serem maiusculas ou minusculas, converta tudo para minuscula e cole a palavra na outra tabela vazia de modo que vá preenchendo a tabela vazia e eliminando as palavras lá da lista. Poderiam me ajudar? (A tabela a seguir começa na coluna A e vai até a coluna F) Essa é a tabela de testes
-
Olá, bom dia Gente! Eu tenho um código VBA que verifica os anexos dos e-mail e dependendo dos títulos do arquivo ele salva em uma pasta específica, essa macro era ativada através de uma regra de filtro do Próprio Outlook. ele funcionava perfeitamente até formatar meu computador, depois de reinstalar o Outlook ele não permite mais eu adicionar uma macro na regra de chegada do E-mail. Todas as vezes que tento adicionar a regra ele da o aviso "Esta regra não está disponível no modo atual". Já alterei os níveis de permissão de macros do Outlook e nada. Vendo em outros Foruns vi pessoas tendo o mesmo problema e não conseguindo resolver. Queria saber se alguém sabe como mudar essa configuração do outLook ou ao menos sabe uma forma de adicionar uma acionamento automática para cada e-mail que chega sem precisar usar as regras nativas no outlook.
-
Boa tarde a todos, Gostaria muito da ajuda, pois não encontrei nas minhas pesquisas para resolver meu problema. Tenho uma planilha que ela tem mais de mil linhas, basicamente a macro que gravei é simples: ela pega a primeira linha, cola em outra planilha, copia os valores, depois volta pra planilha inicial compia a segunda linha e cola na outra planilha e copia valores. No entanto, é inviável eu gravar a macro para todas as linhas, por isso quero criar um loop que reproduza a mesma gravação para todas as linhas da planilha até encontrar uma linha vazia, que acaba o loop. Alguém consegue me ajudar inserindo o loop nos códigos?? Sub teste() ' ' teste Macro ' ' Range("A4:O4").Select Selection.Copy Range("A1").Select ActiveSheet.Paste Sheets("Planilha3").Select Range("A2").Select ActiveSheet.Paste Range("P2:T2").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Planilha2").Select Range("A5:O5").Select Application.CutCopyMode = False Selection.Copy Range("A1").Select ActiveSheet.Paste Sheets("Planilha3").Select Range("A3").Select ActiveSheet.Paste Range("P3:T3").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
-
Alguém manja como fazer uma macro que fique rodando o aleatório e ela parar automaticamente quando um determinado objetivo for atingido?
-
Olá pessoal, boa tarde! Tenho uma macro que atualiza um relatório de hora em hora e envia um e-mail no fim do Script para alguns usuários com o status naquele momento. Porém, toda vez que a macro está rodando, sempre quando chega no momento de criar uma imagem e colar, ele da um erro em tempo de execução 1004. Mas, quando abre o depurador, se eu dou um play pra seguir a macro, ele segue normalmente até o fim. E como roda de 1 em 1 hora, tenho que sempre estar olhando pra quando der o erro, clicar em depurar e dar play para seguir com a macro. Deixei uma parte em negrito no Script, que foi uma tentativa de resolver o problema, aguardando 30 segundos para colar a imagem. Mas não adiantou, o erro sempre ocorre. Segue abaixo o Script da macro e onde está sublinhado é quando ocorre o erro: Private Sub createJpg(Namesheet As String, nameRange As String, nameFile As String) ThisWorkbook.Activate Worksheets(Namesheet).Activate newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 30 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime Set Plage = ThisWorkbook.Worksheets(Namesheet).Range(nameRange) ThisWorkbook.Worksheets(Namesheet).Range(nameRange).CopyPicture ----- Nessa parte é aonde da o erro. With ThisWorkbook.Worksheets(Namesheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height) .Activate .Visible = True .Chart.Paste With .Chart.Shapes(1) .Width = Plage.Width .Height = Plage.Height End With .Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG" .Visible = False End With ActiveSheet.Shapes(Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Name).Line.Visible = msoFalse Worksheets(Namesheet).ChartObjects(Worksheets(Namesheet).ChartObjects.Count).Delete Set Plage = Nothing End Sub Caso precisem de mais alguma informação para poder me ajudar, estou à disposição. Valeu!
- 4 respostas
-
- copypicture
- vba
-
(e %d mais)
Tags:
-
Bom dia, estou precisando salvar a planilha como pdf, dentro de uma pasta Mensal. No caso, se estiver em março quando utilizar o botao, quero que o excel salve em uma pasta C:\planilhas\impressao\marco\nome do arquivo , se estiver em abril C:\planilhas\impressao\abril\nome do arquivo . A minha idéia foi a seguinte: usar uma célula para fornecer o mês com =Hoje(), depois pegaro mês com =mês(), e depois jogar no macro VBA criando uma variável com o valor desta célula, e adicionando esta célula no caminho para salvar o pdf. O código está da seguinte forma: Sub IMPRIME_FOLHA_VERDE() ' Imprime resumo Dim imprime As String imprime = Range("AD1").Value & "\" 'AD1 É A CELULA QUE CONTEM O MÊS ChDir "C:\planilhas\Confidencial" 'Abaixo é o caminho da pasta, aonde deveria usar a célula para setar o mês Caminho = ThisWorkbook.Path & "\impressoes\pedidos\" & imprime 'Abaixo é a configuração para salvar em PDF e o restante do nome do arquivo, que está correto, pois tudo funciona normalmente quando não coloco a variavel imprime em Caminho. ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ Caminho & [AA1].Value & "-" & [AB1].Value & "-" & [AC1].Value & "_" & "PEDIDO " & [Z1].Value & " - (" & [L11].Value & ")" & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True _ End Sub A questão é: Se eu setar a variável desta forma e colocar ela no caminho, o Excel está me retornando erro de depuração, se eu não usar a variável, tudo roda perfeitamente, porém eu só tenho o arquivo salvo em uma única pasta, sem separação mensal.
-
Boa noite. Estou com uma dificuldade extrema. Tenho uma macro que funcionou por vários anos. De uma hora para outra, ela não consegue colar os dados e dá a famigerada mensagem: Erro 1004 - o método pastespecial da classe range falhou O problema é que se eu fizer manual (ctrl+c - crtl+v), também não funciona, só não dá mensagem nenhuma. Porém, se eu escrever manualmente na planilha ela aceita. Eis a parte do código que dá problema. Plan8.Select ActiveSheet.Unprotect Range("b505:H505").Select Selection.Copy Range("a18").Select Plan1.Select ActiveSheet.Unprotect Range("b100000").End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Protect quando chega no selection.pastespecial trava e não vai de jeito nenhum. Já tentei em dois computadores, já fiz manual, não funciona. Não sei mais o que fazer. O problema é que é um arquivo importante para mim. Se alguém puder me ajudar eu agradeço.
-
Pessoal, preciso de freela que possa nos ajudar a transformar planilhas dinamicas Excel em mini aplicativos C objetivo: criar banco de dados de referencias pesquisar movimentações de dados e incrementar rotinas preditivas desejavel conhecimmento vba e linguagem c pode ser c++ conhecimentos em banco de dados interessados pode me contatar aqui ou no w app 11 95916 7597 sucesso a todos
-
Bom dia, Preciso criar uma macro na qual há duas Combobox Encadeadas, e, dependendo do qual for a seleção do item na primeira Combobox, o destinatário do envio da mensagem é alterado; ou seja: cada item da primeira Combobox determinada qual será do destinatário da mensagem. Mais informações: preciso criar um formulário no Outlook para rodar internamente na empresa onde trabalho. Nele constará (a Combobox 1) os equipamentos que necessitam de manutenção; nisto, o especialista do equipamento será tagged como destinatário do tal email, assim receberá diretamente o pedido de manutenção. OBRIGADO.
-
Ola pessoal, gostaria de saber como faço para criar um botão de próximo em uma macro para que eu possa pular do ex: codigo do produto 01 para 02 para 03 e também um botão de voltar os códigos dos produtos 03 para 02 para 01
-
DESEJO AUTOMATIZAR UMA PLANILHA PARA PREENCHER RECIBOS DE PAGAMENTO. JÁ CONSTRUI PARTE DA MACRO E EUTILIZEI A FUNÇÃO =PROCV(, E ELA já FAZ O PREENCHIMENTO. QUERO ADICIONAR UM CODIGO QUE COPIE E COLE A CELULA QUE EU SELECIONAR, não QUE DEIXAR A MACRO FIXA A UMA CELULA TIPO Range ("B2").Select Selection.Copy Range("C2").Select ActiveSheet.Paste DESDE já AGRADEÇO
-
- nao fixa
- celulas aleatórias
- (e %d mais)
-
Olá, após procurar muito e não encontrar resolvi me cadastrar no site e tentar solicitar ajuda... Estou tentando criar uma macro que envia WhatsApp para clientes, porem encontro um problema onde não consigo enviar a msg. 1° Localizo o cliente 2° Abro a janela de conversa 3° Edito o innerText da div (local onde escreve a msg) *4° Clicar no botao enviar btn = Doc.getElementById("main").getElementsByClassName("icon btn-icon icon-send send-container") *4° O botao está desabilitado, o mesmo só hanilita após mudar o conteúdo da div (3° passo, porem ao rodar pela macro ele não habilita automaticamente). Forço habilitar pelo comando btn.disabled = false (visualmente falando ele habilita, mas em seguida executo o comando btn.click e não acontece nada). Obs: Se rodar a macro no F8 e no momento em que ele atribui a msg para o cliente eu fizer qualquer ação na div o botao é habilitado e o comando "btn.click" funciona Obrigado!!
- 1 resposta
-
- macro
- internetexplorer
-
(e %d mais)
Tags:
-
Bom dia, tenho o seguinte problema a resolver: " A ideia é sabermos o capital inicial disponível, informações sobre possíveis fundos de investimento e o capital final desejado. O programa deve verificar para cada fundo, qual o prazo necessário para alcançar o capital desejado. Com base nos prazos calculados e no perfil do investidor, o programa deve aconselhar qual o melhor fundo para investimento.O programa deve receber do usuário um perfil de risco (Muito Alto, Alto, Médio, Baixo), um capital inicial e um capital final desejado. Estes dados estarão em uma segunda planilha, conforme explicado abaixo.Com estes dados, o programa deve selecionar o fundo mais adequado para aquele investidor, levando em conta:O capital inicial deve ser pelo menos igual ao mínimo inicial do fundo.O risco do fundo deve ser menor ou igual ao do perfil do investidor.O número de meses necessários deve ser o menor entre os fundos que satisfazem as duas condições acima.O programa deverá preencher uma segunda planilha, chamada Resultados.Na primeira linha da planilha Resultados, o usuário deve colocar os dados de entrada: na célula A1 deverá aparecer o perfil (ex. "Baixo"), na B1 o capital inicial (ex. "100") e na C1 o capital final (ex. "1000").Na célula A2 deve aparecer "Fundo" e na B2 deve aparecer "Meses"A partir da terceira linha, o programa deverá colocar na primeira coluna o nome do fundo e na segunda coluna o número de meses necessários para atingir o capital final.Seu programa deve ter no mínimo as funções e macros auxiliares descritas abaixo:Function Prazo(CapInicial As Double, CapFinal As Double, TaxaAdmin As Double, Rentabilidade As Double) As IntegerFunção que recebe os quatro parâmetros reais - dois fornecidos pelo usuário na planilha de Resultados e dois lidos da tabela de fundos - e devolve um inteiro correspondendo ao número de meses necessários para atingir o capital final. Como a taxa de administração geralmente é dada por ano, o valor a ser subtraido da rentabilidade é TaxaAdmin/12.Sub PreencheTabela(CapInicial As Double, CapFinal As Double) Macro auxiliar que recebe os valores do capital inicial e do capital final e preenche as linhas da planilha Resultados com o nome de cada fundo e o prazo necessário. Esta macro deve utilizar a função Prazo.Function AvaliaRisco(Perfil As String, Linha As Integer) As Boolean Função que verifica se um certo fundo (especificado pelo parâmetro Linha, que indica a linha na tabela de fundos) está de acordo com o perfil do usuário.Vocês podem criar quantas funções e macros quiserem, desde que tenham no mínimo as três acima. Além disso, a coluna D da planilha Resultados pode ser usada de rascunho durante a execução do programa - lembre-se de apagá-la no final. A resposta deve ser dada nas células D1 e E1, informando o nome do fundo mais adequado ao investidor em D1 e o número de meses necessário em E1.IMPORTANTE:a macro principal, que vai chamar as demais e preencher a tabela deve ter o mesmo cabeçalho para todos: Sub Main()a planilha com a tabela de rentabilidade deve se chamar "Rentabilidade"a ordem entre as planilhas "Rentabilidade" e "Resultado" não importa, vocês devem sempre se referir às células pelo "nome completo", i.e., identificando a planilha."
-
Olá galera! Preciso de um enorme favor. Tenho esta planilha, com várias colunas representando rubricas de pagamentos diferentes. Queria uma função que somasse essas colunas, quando os seus valores fossem, respectivamente: 19, 22, 24, 63, 67, 69, 70, 76, 77, 80, 82, 91, 94, 95, 99, 119, 120, 138, 143, 145, 146, 151, 166, 169, 170, 179, 181, 184, 194, 198, 238. A função deve ler o range das colunas e identificar os números, somando os valores da linha. Tentei a função SOMASES, como poderão ver no anexo, mas sem sucesso. Eu preciso de uma função em VBA, pois será uma demanda mensal, cujas rubricas que comporão os títulos das colunas poderão variar. Será que alguém consegue me ajudar? Agradeço de antemão. Abçs! Eduardo
-
Bom Dia. Estou precisando de um script para o Outlook que salve os anexos de um determinado remetente em uma pasta no drive C: e que substitua o mesmo anexo já existente na pasta. sempre recebo de um remetente informações atualizadas em um anexo e preciso que esse anexo seja salvo automaticamente em uma pasta, mas que sempre seja o anexo mais recente, o Outlook deve ao salvar substituir o anexo velho, preciso muito disso, por favor ajudem. ressalto que não conheço muito de VBA, só o basico. obrigado!
-
Bom dia Pessoal! Gostaria de ajuda de vocês se possível. Estou com uma planilha de um edital que tem um total de 100.000,000. Nesta planilha tem 3 colunas com nome, nota e valor da proposta, no qual a classificação primeiro é pelas maiores notas, com base nisso gostaria criar um filtro, uma macro ou formulá. terai algum jeito de fazer isso automaticamente?
-
Olá! Estou a tentar programar uma macro em VBA que corra a linha A, encontre o campo "Pagador" e devolva o número de valores diferentes presentes na respetiva coluna. No entanto, quando corro a macro o excel bloqueia e penso que entra em loop infinito e não consigo perceber porquê. Alguém me consegue ajudar? O código que estou a usar é: Private Sub CommandButton2_Click() Dim scol As New Collection Dim MyAr As Variant Dim x As Long Dim z As Integer Sheets("Aux").Activate Sheets("Aux").Range("A1").Select Do While ActiveCell.Value <> "" If ActiveCell.Value = "Pagador" Then With Sheets("AUX") C = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row A = ActiveCell.Offset(1, 0) B = ActiveCell.Offset(C, 0) MyAr = .Range("A:B").Value For i = 1 To UBound(MyAr) On Error Resume Next scol.Add MyAr(i, 1), Chr(34) & _ MyAr(i, 1) & Chr(34) On Error GoTo 0 Next i End With x = scol.Count Else ActiveCell.Offset(0, 1).Select End If Loop Sheets("Customer").Range("C32") = x End Sub
-
Pessoal, estou tentando fazer com que minha macro seja executada assim que a planilha é aberta, porém, quando executo a "Sub Auto_Open()" ela não abre a planilha o que faz com que a macro não funcione. E quando uso a "Sub Workbook_Open()" ou "Worksheet_Open" ela abre, mas não executa a macro. Estou tentando utilizar da seguinte forma, que funciona, mas não abre a planilha. Private Sub Auto_Open() If MsgBox("Deseja inserir um novo processo?", vbYesNo + vbQuestion, "Olá!") = vbYes Then InserirDados.Show Else End If End Sub Se alguém puder me ajudar ficarei muito grato!! :)
- 1 resposta
-
- vba
- workbook_open
-
(e %d mais)
Tags:
-
"Este e meu codigo ate o primeiro momento, esse primeiro sub e do botão enviar, minha macro deveria, enviar um email para o destinatario q estaria presente na coluna 1 , toda vez q o status da coluna 6 mudasse para para Realizar compra, com apenas as as suas linhas respectivas (couluna(2) a (6)); seria isso galera. Sub Enviar() Dim EnviarPara As String Dim Mensagem As String EnviarPara = ThisWorkbook.Sheets(1).Cells(i, 1) Mensagem = ThisWorkbook.Sheets(1).Cells(i, 3) Envia_Emails EnviarPara, Mensagem End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim OutApp As Object Dim OutMail As Object Dim texto As String Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) linha = ActiveCell.Row - 1 If Target.Address = "$F$" & linha Then If Plan1.Cells(linha, 6) = "Realizar Compra" Then texto = "Prezado(a) " & Plan1.Cells(linha, 1) & "." & vbCrLf & vbCrLf & _ "O estoque atual e semanal consta: " & Plan1.Cells(linha, 2) & Plan1.Cells(linha, 3) & Plan1.Cells(linha, 4) & Plan1.Cells(linha, 5) & Plan1.Cells(linha, 6) & _ "Rafael. INF" & vbCrLf End If
-
Como atualizar formula na celula sem ser F2 + ENTER ?
uma questão postou minerinhod Microsoft Office
Boa noite amigos! Sou novo no forum, dei uma pesquisada e não consegui achar uma solução para o meu caso especifico. Se algum puder me ajudar ficarei muito agradecido. Bom tenho uma planilha que ira enviar status via email automaticamente sempre que uma determinada célula na coluna F tiver o texto alterado para CONCLUÍDO. Se eu escrever a palavra CONCLUÍDO e der enter a macro funciona perfeitamente, porem essa palavra CONCLUÍDO vai ser alterado automaticamente através de formula (=Plan2!E1) ou seja, em outra aba/planilha após um período a célula vai alterar de EM ANDAMENTO para CONCLUÍDO e nessa hora a macro deveria entender e enviar o email automaticamente. Após alterar para CONCLUÍDO se eu clicar em cima da celula e apertar F2 + ENTER a macro funciona e envia o email. já procurei em diversos locais porem não achei nada que resolvesse esse problema. Link da planilha resumida para facilitar: http://www.4shared.com/file/HH6U3kw9ce/Macro_para_enviar_contedo_de_C.html Me desculpem se fiz alguma coisa errada, sou novo no forum. Obrigado- 1 resposta
-
- macro
- enviar por email
- (e %d mais)
-
olá, com muitas pesquisas consegui criar uma planilha que tem um formulário que gera um arquivo pdf com o nome de acordo com o valor de uma celula e outras coisinhas, um dos problemas é que na hora de gerar o arquivo, se o arquivo já existe com esse nome ele é substituido, gostaria que fosse possivel adicionar uma numeração tipo (2).pdf se o arquivo existir. Sub salvar() ' ' salvar Macro ' Dim nome As String nome = "C:\Users\Jean\Desktop\exames pdf\" & Range("E5") & " - " & Range("k7") & ".pdf" ' Sheets("Exame").Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome, Quality:=xlQualityStandard _ , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True Sheets("PREENCHER").Select Range("E5:G5").Select End Sub o outro problema é que eu consegui fazer a maioria das coisas gravando macros, e como o formulário está em uma aba, e o modelo a ser preenchido está em outra, quando roda o macro a tela fica piscando porque para o codigo funcionar precisa ficar alternando entre as abas, gostaria de saber se é possível rodar a macro na aba 2 sem precisar de sair da aba onde está o formulário. Sub ocultar() ' ' ocultar Macro ' ' Sheets("Exame").Select Range("A34:O42").Select Selection.EntireRow.Hidden = True Sheets("PREENCHER").Select Range("C25:C31").Select With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = -4.99893185216834E-02 End With Range("F25,F27,F29,F31").Select Range("F31").Activate With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -4.99893185216834E-02 .PatternTintAndShade = 0 End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select Selection.ShapeRange.ZOrder msoBringToFront Range("E5:G5").Select End Sub fiquem À vontade para sugerir qualquer mudança, com muito esforço a planilha está ficando com um resultado bem legal. vou deixala em anexo. obrigado. https://drive.google.com/file/d/0BynkAckdgWiOTXI1V0VkQndobk0/view?usp=sharing Preencher Hemograma.xlsm