Ir ao conteúdo
  • Cadastre-se

Hugo Mello

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

  1. chamei arquivo VBA apenas para não confundir com arquivo. chamei de arquivo VBA o próprio excel, enquanto chamei de arquivo o que desejo anexar (PDF ou imagem por exemplo) veja que teríamos uma ambiguidade ou maior dificuldade de compreensão "Contudo, em alguns casos, gostaria de anexar arquivos, como imagem de um mapeamento ou algum pdf, de modo que eu possa ter todas as informações e todos os arquivos nesse mesmo arquivo VBA." compreendo que não foi a melhor das opções, mas espero que tenha conseguido passar minha dúvida. obrigado pela atenção, DJunquiera!
  2. Bom dia! Estou fazendo um VBA onde registro descrições de indicadores de processos da empresa. Para diversos indicadores respondo o que será feito, como será feito e observações. Contudo, em alguns casos, gostaria de anexar arquivos, como imagem de um mapeamento ou algum pdf, de modo que eu possa ter todas as informações e todos os arquivos nesse mesmo arquivo VBA. Não consegui um modo de anexar esses arquivos e ter acesso a eles. Alguém consegue me ajudar? procurei na internet e achei a sugestão que segue abaixo, porém ela não guarda os anexos no arquivo VBA, eu teria que acessar sempre do mesmo computador ou rede para ter acesso aos anexos. Alguém tem alguma ideia que atenda? ou um ponto de partida? Como guardar anexos em um arquivo VBA e conseguir acesso a eles de maneira fácil (como através de um botão de comando)? Muito obrigado! Private Sub Create_New_Folder() Dim Endereco_Pasta As String ' a celula (1,2) contem o codigo sequencial do registro, que serve para criar a pasta: Endereco_Pasta = "F:\Anexos da Planilha\" + Sheet1.Cells(1, 2) ' verifica se a pasta ja e existente If Dir(Endereco_Pasta, vbDirectory) = "" Then MkDir Endereco_Pasta MsgBox "ja existe esta pasta" Exit Sub Else ' abre o arquivo que deseja anexar e o armazena sob a forma de uma variant Dim ThePage As Variant Dim N As String ThePage = Application.GetOpenFilename(, , "Selecione um arquivo a anexar:") If ThePage = False Then MsgBox "You cancelled" Else ' link http://www.tomasvasquez.com.br/forum/viewtopic.php?f=6&t=92 FileCopy "C:\temp\Arquivo.txt", "C:\temp\Arquivo_Copy.txt" End If End If End Sub End Sub
  3. vocês são feras! muito obrigado! a partir do trabalho de vocês consigo saber quantos funcionários trabalharam em um ano . grande abraço! obrigado novamente (=
  4. bom dia! basole e djunqueira, muito obrigado pela atenção! basole, segue a planilha! retirei alguns dados e modifiquei os que aí constam só pelo fato de estar aberto para qualquer pessoa da internet, afinal os verdadeiros dados não ficam expostos nem para pessoas que trabalham para a própria empresa! djunqueira, tentei sim, mas creio que pelo fato de não se tratar de números, não deu certo. abraços! FCH.xlsx
  5. Boa tarde, tenho uma plan que extraio sempre que solicitado por algo no trabalho. essa plan é dada por dia e por funcionario, me dizendo as horas que ele trabalhou nos determinados dias. logo, minha plan tem cerca de 4 a 5 mil linhas. desejo saber quantos funcionários tenho ali por intervalo de tempo. os dados vem misturados (de 2012 até hoje) e tenho que saber quantos funcionarios tinham em 2012, em 2013 e em 2014 (se possivel por mes ajudaria muito). sempre que precisava desse dado aplicava a seguinte formula: =SOMA(SE(FREQÜÊNCIA(CORRESP(B4:B50000;B4:B50000;0);CORRESP(B4:B50000;B4:B50000;0));1;0)) como fica cada vez mais frequente, quero automatizar dados como esse, e essa fórmula não lê espaços vazios. minha pergunta é: como saber quantos funcionários por intervalo de tempo trabalharam na empresa? pode ser alguma solução em fórmula ou código vba. obrigado!
  6. por nada, cara (= se você deseja isso, pode substituir a fórmula usada por =SE(A2="";0;B2-A2-"00:30") e em dias nao trabalhados deixar A2 vazio. Caso não queira fazer isso, coloque dentro das aspas o que deseja colocar em A2 os dias que não trabalhar. pode fazer também =SE(OU(A2="";B2="");0;B2-A2-"00:30") de modo que se um dos 2 valores (entrada ou saída) estiverem vazios, ele coloca 0 horas trabalhadas. aqui você também pode mudar essa condição do valor vazio. usei A2 e B2, mas pode ser A2 e A1 também. vou sair agora, qualquer erro amanhã eu dou mais uma olhada!
  7. na célula A3 você pode colocar: A3 = A2 - A1 - "00:30" aqui deu certo, veja se terá o que deseja. abraços!
  8. Bom dia, estou com o seguinte problema: estou fazendo um VBA para controle orçamentário. Tenho diferentes locais onde há crédito e débito. No dia-a-dia, desejo lanças despesas(plan1), receitas(plan2) e transferências(plan3), e desejo o saldo(plan4) da empresa, por dia. Exemplo: Despesa Origem Valor Destino 1 Bradesco R$ 500,00 Compra de material 2 ... 3 ... Receita funciona na mesma lógica e transferência é quando o dinheiro não sai da nossa posse, mas passa de um grupo para o outro (quando eu saco dinheiro, tenho menos no banco e mais em mãos, por exemplo). São 8 grupos. por dia tenho opção de 5 gastos e 3 receitas. No banco de dados, gostaria obter o saldo por dia e por grupo em uma célula, para fazer uma pesquisa no vba por intervalo de tempo. O problema é que gastos e receitas podem ser de mesma origem ou não. em Saldo (plan4) tenho colunas com diferentes locais onde há dinheiro e para cada data devo ter o saldo daquele local, depois somar tudo. Nas colunas tenho os grupos e nas linhas tenho as datas. Abaixo segue uma parte da plan4. Tentei fazer um se (gigante) para cada grupo, mas hou "número excessivo de argumentos para a função". Alguém tem alguma ideia? Obrigado! DATA TOTAL BRADESCO BB CONTA CORRENTE BB POUPANÇA 01/01/2014 1.500,00 500,00 1.000,00 02/01/2014 03/01/2014 o problema é como definir os valores em vermelho e seus semelhantes, como chegar a esse resultado, dado uma planilha de desepsas, outra de receita e outra de transferências
  9. se você fizer um VBA vai dar um pouco de trabalho a mais, mas creio que vai responder bem aos seus objetivos.
  10. resolvi! haha se alguém tiver o mesmo problema é porque defini as variáveis As Integer e o ideal seria As Double. Seguem as diferenças: Integer As variáveis do tipo Integer são armazenadas como números de 16 bits (2 bytes) com valor no intervalo de -32.768 a 32.767. O caractere de declaração de tipo para Integer é o sinal de porcenta- gem (%). As variáveis Integer também podem ser usadas para representar valores enumerados. Um valor enumerado pode guardar um conjun- to fi nito de números inteiros exclusivos, cada um com um signifi ca- do especial no contexto em que é usado. Valores enumerados ofere- cem uma forma conveniente de seleção entre um número conhecido de opções em um formulário. Por exemplo, preto = 0, branco = 1 e assim por diante. Pode-se defi nir constantes mediante a instrução CONST para cada valor enumerado. Double Variável aplicada em números com ou sem casas decimais. Double é uma variável genérica, capaz de comportar muitas outras variáveis especializadas, que serão vistas adiante. aproveitando a oportunidade: String Para conjuntos com até 65.000 caracteres (texto). Utiliza-se esse tipo de variável para conjuntos de caracteres, incluindo a defi nição de repositórios locais (C:. D:) ou de rede (\192.168.1.20, \josejoa- quim), nomes de arquivos (gastos.xls), endereços de células ($A$1$) e todos os elementos de texto ou sobre os quais não efetuaremos cálculo. É o equivalente VBA das strings que defi nem as proprieda- des das células de uma planilha do Excel: não é possível fazer cál- culos com células de texto, ao mesmo tempo em que não se pode utilizar funções de texto em células numéricas. Double Variável aplicada em números com ou sem casas decimais. Double é uma variável genérica, capaz de comportar muitas outras variáveis especializadas, que serão vistas adiante. Bytes As variáveis Byte são armazenadas como números de 8 bits (1 byte), sem sinal, únicos, e que variam, em valor, de 0 a 255. O tipo de variável Byte é útil para conter dados binários (0 e 1). Integer As variáveis do tipo Integer são armazenadas como números de 16 bits (2 bytes) com valor no intervalo de -32.768 a 32.767. O caractere de declaração de tipo para Integer é o sinal de porcenta- gem (%). As variáveis Integer também podem ser usadas para representar valores enumerados. Um valor enumerado pode guardar um conjun- to fi nito de números inteiros exclusivos, cada um com um signifi ca- do especial no contexto em que é usado. Valores enumerados ofere- cem uma forma conveniente de seleção entre um número conhecido de opções em um formulário. Por exemplo, preto = 0, branco = 1 e assim por diante. Pode-se defi nir constantes mediante a instrução CONST para cada valor enumerado. Long As variáveis do tipo Long (inteiro longo) são armazenadas como nú- meros de 32 bits (4 bytes) sinalizados, no intervalo de -2.147.483.648 a 2.147.483.647. O caractere de declaração de tipo para Long é o “e comercial” (&). Single As variáveis do tipo Single (vírgula fl utuante de precisão simples) são armazenadas como números de vírgula fl utuante com 32 bits (4 bytes) e têm um valor no intervalo de -3,402823E38 a -1,401298E- 45 para valores negativos e de 1,401298E-45 a 3,402823E38 para valores positivos. O caractere de declaração de tipo para Single é o ponto de exclamação (!). Single é a última das strings usadas para representar valores numéricos armazenados dentro da variá- vel Double. Date Variável utilizada para a declaração de datas. As variáveis Date são armazenadas como números de ponto fl utuante de 64 bits (8 bytes) responsáveis por representar as datas que variam de 1 de janeiro do ano 100 a 31 de dezembro de 9999, abrangendo, também, as horas de 0:00:00 a 23:59:59, segundo o modelo internacional de 24 horas. Qualquer valor reconhecível e literal de data (não representado de maneira exclusivamente numérica) pode ser atribuído a variáveis Date. Os literais Date devem estar entre sinais (#), por exemplo, #1 de janeiro de 1993# ou #1 jan 93#. As variáveis Date exibem as datas de acordo com o formato reconhecido por seu computador, assim como as horas (12 ou 24 horas). Para mais informações sobre como operar a confi guração de data e hora, leia o tópico Confi gurações de data e hora, nesse mesmo capítulo. As datas manipuladas pela variável estão localizadas, normalmen- te, nas células das planilhas. É possível, portanto, copiar o conteúdo das células para o interior da variável Date sem prejuízo nenhum no desenrolar do código. Variant A variável Variant é utilizada para todas as variáveis não explici- tamente declaradas como de algum outro tipo (usando instruções como Dim, Private, Public ou Static). O tipo de dados Variant não possui caractere de declaração. Uma Variant é um tipo especial de variável que pode guardar qualquer dado, exceto dados String de comprimento fi xo. Uma Variant também pode conter os valores especiais Empty, Error, Nothing e Null. É possível determinar ainda como os dados em uma Variant são tratados mediante as funções VarType ou TypeName. Os seus dados numéricos podem ser qualquer valor de número in- teiro ou real no intervalo de -1,797693134862315E308 a -4,94066E-324 para valores negativos e de 4,94066E-324 a 1,797693134862315E308 para valores positivos. Geralmente, os dados numéricos Variant são mantidos em seu tipo original no interior da variável. A Variant pode ser utilizada em códigos que guardam uma gran- de quantidade de cálculos a serem processados, pois essa variável é capaz de trabalhar com mais de 4.000 cálculos por vez.
  11. Bom dia, estou desenvolvendo um VBA em que, ao colocar o valor orçado de um tratamento tenho 2 opções: à vista e parcelado. Em parcelado, informo o juros que vou cobrar, carencia, entrada e numero de parcelas. Com essas informações tenho o valor das parcelas. O problema é que no cálculo o juros não está contando as casa decimais, ele arredonda. por exemplo, se coloco juros igual a 1 ou a 2 ele faz certo, mas se coloco juros igual a 1,2 ou 1,5 ou qualquer outra casa decimal ele arredonda para cima ou para baixo, gerando uma grande diferença no valor das parcelas. O código segue abaixo. Obrigado pela atenção, HM Private Sub cmdCalcular_Click() If txtValorOrçado = "" Then MsgBox "Você deve informar o valor orçado.", vbInformation, "Reabilitar" ElseIf txtPorcDescontoVista = "" Then MsgBox "Você deve informar o desconto.", vbInformation, "Reabilitar" Else Dim p As Integer Dim d As Integer Dim e As Integer Dim c As Integer Dim i As Integer Dim n As Integer p = txtValorOrçado.Text d = txtPorcDescontoVista.Text e = txtEntrada.Text c = cbCarencia.Text i = txtJuros.Text n = txtNumParcelas.Text txtDinheiroVista.Text = p * (1 - (d / 100)) If txtEntrada = "0" And txtJuros = "0" And cbCarencia = "0" And txtNumParcelas = "0" Then txtValorParcelas = "0" txtValorTotalParcelado = p ElseIf cbCarencia = 0 And txtEntrada = 0 And txtJuros > 0 And txtNumParcelas > 0 Then txtValorParcelas = p / ((((1 + (i / 100)) ^ n) - 1) / (((1 + (i / 100)) ^ n) * (i / 100))) txtValorTotalParcelado = n * (p / ((((1 + (i / 100)) ^ n) - 1) / (((1 + (i / 100)) ^ n) * (i / 100)))) ElseIf cbCarencia = 0 And txtEntrada > 0 Then ' Cálculos daqui para baixo ainda incorretos, apenas utilizados para teste txtValorParcelas = (p * (1 - (e / 100))) / ((((1 + i / 100) ^ n) - 1) / (((1 + i / 100) ^ n) * i / 100)) txtValorTotalParcelado = (p * (e / 100)) + (n * (p * (1 - (e / 100))) / ((((1 + i / 100) ^ n) - 1) / (((1 + i / 100) ^ n) * i / 100))) ElseIf cbCarencia > 0 And txtEntrada = 0 Then txtValorParcelas = (p * (1 + (i / 100)) ^ (c - 1)) / ((((1 + (i / 100)) ^ n) - 1) / ((1 + (i / 100) ^ n) * (i / 100))) End If End IfEnd Sub

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...