Ir ao conteúdo
  • Cadastre-se

Carolina Nemeth

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá pessoal! Mais uma vez tenho uma dúvida sobre VBA. Quero usar a fórmula MédiaSE (AverageIf) porém nos critérios quero que ele calcule a média apenas para valores superiores à uma célula, a qual poderei modificar. Exemplo: Na coluna A possuo as datas Na coluna B os valores que calcularei a média Na célula C1 a data que, para acima desse valor, calcularei as médias da coluna B. Muito obrigada!!
  2. Olá pessoal! tenho o código abaixo que exporta as planilhas de um pasta, cada uma em um PDF. Mas queria uma alteração: ao invés de abrir uma caixa de mensagem para inserir o nome de cada documento, que o código nomeie cada PDF conforme a célula C10 de cada planilha. Alguém pode me ajudar? Sub Relatorio_PDF() Dim sh As Worksheet, i As Integer ' Macro3 Macro ' 'Instrução para Salvamento do Relatório em PDF na area de trabalho Dim strNome As String 'Declaração do nome para abertura do box de inserção de número do registro Dim Caminho As String 'Declaração endereço onde será salvo o documento Dim Abrir As Boolean 'Declaração para abertura do registro após salvamento Dim m As String 'Nome da planilha For Each sh In ThisWorkbook.Worksheets If VBA.LCase(VBA.Trim(sh.Name)) <> VBA.LCase("mapa 0") And _ VBA.LCase(VBA.Trim(sh.Name)) <> VBA.LCase("alimentando mapas") Then strNome = InputBox("Insira o Número do Relatório " & m, "Gerador de Relatório em .pdf") Caminho = "C:\Users\" & Environ$("Username") & _ "\Desktop\" & strNome 'Sai do processo de salvamento If strNome = "" Then MsgBox ("Salvamento Cancelado!!!") Exit Sub End If End If Obrigada!
  3. Olá! Possuo o seguinte código: <Const lammax = 0.75 Const epson = 0.0001 'precisão Const n = 0.013 'coef. de manning Const pi = 3.141592 'pi Dim q As Single 'vazão Dim i As Single 'declividade Dim d As Single 'diâmetro Dim a As Single Dim a1 As Single Dim a2 As Single Dim ac As Single Dim amax As Single 'angulo máximo Dim xaux As Single Dim acos1 As Single 'angulo auxiliar Dim area1 As Single Dim rh1 As Single Dim area2 As Single Dim rh2 As Single Dim fmax As Single Dim fmin As Single Dim epi As Single Dim sinal As Integer Dim fa As Single Dim fab As Single Dim lamina As Single Function calculaB(dp As Single, ip As Single, qp As Single) As Variant i = ip q = qp d = dp If q < 1.5 Then q = 1.5 End If q = q / 1000 'cálculo de amax xaux = 1 - (2 * lammax) acos1 = -Atn(xaux / (Sqr(-xaux * xaux + 1))) + pi / 2 amax = 2 * acos1 a = amax a1 = 0.0001 a2 = amax If a1 < (pi) Then area1 = (a1 - Sin(a1)) * d ^ 2 / 8 rh1 = area1 / (a1 * d / 2) Else a1 = 2 * pi - a1 area1 = (pi * d ^ 2) / 4 - ((a1 - Sin(a1)) * d ^ 2 / rh1 = area1 / ((pi * d) - a1 * d / 2) End If If a2 < (pi) Then area2 = (a2 - Sin(a2)) * d ^ 2 / 8 rh2 = area2 / (a2 * d / 2) Else a2 = 2 * pi - a2 area2 = (pi * d ^ 2) / 4 - ((a2 - Sin(a2)) * d ^ 2 / rh2 = area2 / ((pi * d) - a2 * d / 2) End If fmax = q - 1 / n * area1 * rh1 ^ (2 / 3) * Sqr(i) fmin = q - 1 / n * area2 * rh2 ^ (2 / 3) * Sqr(i) sinal = Sgn(fmax) a1 = 0.0001 a2 = 2 * pi epi = a1 - a2 Do While Abs(epi) > epson ab = (a1 + a2) / 2 ac = ab If a1 < (pi) Then area1 = (a1 - Sin(a1)) * d ^ 2 / 8 rh1 = area1 / (a1 * d / 2) Else a1 = 2 * pi - a1 area1 = (pi * d ^ 2) / 4 - ((a1 - Sin(a1)) * d ^ 2 / rh1 = area1 / ((pi * d) - a1 * d / 2) End If If ab < (pi) Then area2 = (ab - Sin(ab)) * d ^ 2 / 8 rh2 = area2 / (ab * d / 2) Else ab = 2 * pi - ab area2 = (pi * d ^ 2) / 4 - ((ab - Sin(ab)) * d ^ 2 / rh2 = area2 / ((pi * d) - ab * d / 2) End If fa = q - 1 / n * area1 * rh1 ^ (2 / 3) * Sqr(i) fab = q - 1 / n * area2 * rh2 ^ (2 / 3) * Sqr(i) If Sgn(fab) = sinal Then a1 = ac Else a2 = ac End If epi = (a1 - a2) Loop lamina = (1 - Cos(ac / 2)) / 2 lamina = Int(-lamina * 100) / 100 aux_texto = Str$(-lamina) If -lamina < 0.75 Then calculaB = -lamina calculaB = ac Else calculaB = "conduto forçado" End If End Function Function veloc(ang As Single, di As Single, qp As Single) As Variant ab = ang d = di q = qp If ab < (pi) Then area2 = (ab - Sin(ab)) * d ^ 2 / 8 rh2 = area2 / (ab * d / 2) Else ab = 2 * pi - ab area2 = (pi * d ^ 2) / 4 - ((ab - Sin(ab)) * d ^ 2 / rh2 = area2 / ((pi * d) - ab * d / 2) End If vel = q / area2 veloc = vel End Function> Porém o valor de n não quero que seja uma constante e sim que a VBA pegue o valor da célula F conforme a linha em que esta calculando B, ou seja, se estou calculando na linha 26, quero que n seja F26. É possível?
  4. Olá, sou nova no fórum então nem sei se o nome do tópico esta certo, ou se serei clara na minha dúvida, portanto me desculpem desde já. Achei aqui mesmo no fórum um código em VBA para fazer uma lista das planilhas no Excel, e esta funcionando perfeitamente. Mas gostaria de adicionar ao código a condição de não aparecer na lista planilhas que estejam ocultas. Segue o código feito pelo membro Osvaldomp: Private Sub Worksheet_Activate() Dim ws As Worksheet, i As Integer Application.ScreenUpdating = False Sheets("ListaPlans").Range("A:B").ClearContents For Each ws In ThisWorkbook.Worksheets If ws.Name <> "ListaPlans" Then i = i + 1 With Sheets("ListaPlans") .Range("A" & i) = ws.Name .Hyperlinks.Add Anchor:=Range("A" & i), _ Address:="", SubAddress:="'" & ws.Name & _ "'!A1", TextToDisplay:=ws.Name .Range("B" & i) = "=" & ws.Name & "!F6" End With End If Next ws Application.ScreenUpdating = True End Sub Obrigada!

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