Ir ao conteúdo
  • Cadastre-se

Midori

Membro Pleno
  • Posts

    3.553
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. A resposta é referente ao recurso da programação, não entendi o que quis dizer com "filosofia".
  2. Chegou a testar o código sem esse "pequeno ajuste"? E funcionou?
  3. Assim é para o VBA do Outlook. Para o Excel a atribuição é como está lá no link que comentei. *** Uma forma mais simples que fiz aqui foi atribuindo Item de MailEnvelope ao MailItem do Outlook (por isso a referência ao objeto deve estar selecionada), Sub MacroEmail() Dim Email As MailItem Dim Dialogo As FileDialog Dim Anexo As Variant Set Email = ThisWorkbook.Sheets("Teste").MailEnvelope.Item Set Dialogo = Application.FileDialog(msoFileDialogFilePicker) Dialogo.AllowMultiSelect = True If Dialogo.Show <> 0 Then For Each Anexo In Dialogo.SelectedItems Call Email.Attachments.Add(Anexo) Next Anexo End If Email.To = "" Email.Subject = "Teste" Email.Send End Sub Assim vai a planilha no corpo do email com o anexo selecionado no diálogo. Pode acontecer uma falha em MailEnvelope, para resolver isso é só salvar a planilha.
  4. O código continua praticamente o mesmo, é como se não tivesse lido o que escrevi... Ainda está com MailEnvelope e CurrentItem. Veja se tem alguma dúvida sobre o que já foi dito.
  5. Não entendi o que quer dizer com "abrir uma aba". Se possível anexe um arquivo de exemplo com a fórmula. E explique os passos que segue para a cópia da aba e a necessidade da edição da fórmula.
  6. Tópico antigo. A minha resposta não foi das melhores. É como foi dito ali, basta efetuar a soma do módulo do número por 10 e depois dividir. while(n){ soma += n % 10; n /= 10; }
  7. Por que não deixa como está? Já que criou uma cópia você pode alterar o nome da original.
  8. Ao duplicar você cria outra aba e a fórmula continua referenciado a original. Para as cópias o excel coloca um índice no nome, p.ex: Teste Investidor 2 (2).
  9. Assim a fórmula deve mudar se a edição do nome for da aba Teste Investidor 2 e não da cópia dela.
  10. Sem ver como está o seu código fica difícil ajudar.
  11. @PSan É como foi comentado acima, faltou a função print para mostrar o resultado, print(executar_selection_sort(lista))
  12. Está funcionando o envio com MailEnvelope e não com os objetos do MS Outlook. É o que acontece com ActiveSheet.MailEnvelope.Item.Send. Na documentação do MailEnvelope não vi um membro para adicionar anexos. Para isso, a partir do Excel, você pode usar os objetos do MS Outlook mesmo em vez de MailEnvelope e acredito que já tenha acrescentado a referência já que o código não tem CreateObject para o Outlook. Aqui no fórum tem exemplos de como enviar email assim, veja se este ajuda,
  13. Seu código a partir de "Set xApp"... é a macro para o MS Outlook. Se quer enviar o email a partir do Excel você pode fazer CreateObject do Outlook para chamar suas propriedades e métodos.
  14. Esse erro acontece quando não há nenhum item/objeto para referenciar no seu ambiente. O item é a janela do MS Outlook da opção Novo Email. Você pode abrir essa janela manualmente antes de rodar a macro ou criar assim, Set xMail = Application.CreateItem(olMailItem) xMail.Display A nova atribuição para xMail.
  15. Qual é a mensagem de erro? Mostre o código completo.
  16. Remova a instrução On Error Resume Next para ver se/onde acontece erro de execução.
  17. Assim o procedimento está errado, para esse evento o VBA espera o parâmentro Range. Esta é a forma correta: Worksheet_Change(ByVal Target As Range) Change será ativado em resposta a edição de alguma célula. E se o texto de A1 for "vermelho" a macro colore A1:Z1.
  18. Para facilitar o desenvolvimento, antes de partir para a leitura do arquivo, você pode iniciar as structs com as coordenadas como a do exemplo para testar o returno da função. Se visualizar a matriz para o cálculo da determinante desta forma, acho que fica mais simples, Ax Ay 1 | Ax Ay Bx By 1 | Bx By Cx Cy 1 | Cx Cy Aí é só fazer as operações, p.ex: float det = A.x * B.y + A.y * C.x...
  19. A função PROCV não é a mais adequada para esse caso porque no array da busca também vai o range das colunas com o retorno. Porém com PROCX é possível aplicar uma formatação simples no array da busca, já que a função oferece os parâmetros dos arrays de busca e retorno, p.ex, =PROCX(ARRUMAR(G$4)&$F5;TEXTO($A$2:$A$14;"mmmaaaa");$D$2:$D$14;0;0) Veja que a função TEXTO faz a formatação que possibilita a busca passada para o primeiro argumento que concatena o mês com o ano. O uso de ARRUMAR foi para remover o espaço, vi que há esse tipo de ocorrência.
  20. A macro não faz varredura nas abas, só faz no range passado como argumento para a função. E o tempo de processamento varia com a quantidade de linhas. Com base no exemplo, o que pode ser feito para otimizar isso é processar as duas colunas no mesmo loop para reduzir o tempo pela metade.
  21. É possível substituir. Para isso os Buttons serão adicionados dinâmicamente já que para cada aba vai ter um botão. Dependendo da quantidade de abas não vejo vantagem nisso já que o Form vai ficar com muitos controles. Com o Combo basta um com a lista para seleção.
  22. Você pode adicionar o nome delas no Combo para ativar a planilha no evento Change, Private Sub UserForm_Initialize() Dim Aba As Worksheet For Each Aba In ThisWorkbook.Sheets Call ComboBox1.AddItem(Aba.Name) Next Aba End Sub Private Sub ComboBox1_Change() ThisWorkbook.Sheets(ComboBox1.Text).Activate End Sub
  23. Na caixa de ferramentas do VBA não tem menus, você pode inserir um dos controles disponíveis como o Combo ou List.
  24. Qual problema? Para postar o código você pode colar no próprio post com a tag Code <> Se possível anexe a planilha, o arquivo terá que ser compactado por causa da macro, pode ser com dados fictícios. E dê mais detalhes sobre o que ocorre.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!