Hugo Mello
-
Posts
11 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Hugo Mello
-
-
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 StringThePage = 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 -
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 (=
-
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!
-
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!
-
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!
- 1
-
na célula A3 você pode colocar:
A3 = A2 - A1 - "00:30"
aqui deu certo, veja se terá o que deseja.
abraços!
-
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
-
se você fizer um VBA vai dar um pouco de trabalho a mais, mas creio que vai responder bem aos seus objetivos.
-
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. -
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
Anexo de Arquivo VBA
em Microsoft Office e similares
Postado
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!