Ir ao conteúdo
  • Cadastre-se

Hugo Mello

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

posts postados por Hugo Mello

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

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

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

    • Curtir 1
  6. 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

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

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