Ir ao conteúdo
  • Cadastre-se

Edson Luiz Branco

Membro Pleno
  • Posts

    844
  • Cadastrado em

  • Última visita

Tudo que Edson Luiz Branco postou

  1. Segundo discutido em alguns fóruns, esse problema costuma desaparecer após instalar os Services Packs 2 e/ou 3 do Office 2007. Só não sei se você vai encontrá-los ainda na Microsoft pois foi descontinuado. Veja p. ex. discussão em [SOLVED] Erro de tempo de execução 75 (Erro de acesso de caminho / arquivo) - veja as 3 páginas. _______ Em tempo: A atualização SP3 ainda está disponível no site de download da Microsoft. Link: Download Service Pack 3 (SP3) para Pacote do Microsoft Office 2007 from Official Microsoft Download Center
  2. @Nik Nik , boa tarde. Muito interessante essa situação. Pelo visto você acabou de descobrir um bug que só acontece na função ARREDONDAR.PARA.CIMA, mas não na ARREDONDAR.PARA.BAIXO ou na ARRED. Fiz uns testes aqui e percebi que se na barra de fórmulas você selecionar todo o argumento e calcular com F9, o valor retorna correto e a fórmula prossegue sem problemas só com o valor. Também testei e vi que não adiantou colocar em outra célula nem definir um nome só com a função =ARREDONDAR.PARA.CIMA(C2;1) e referenciar esse nome ou célula indiretamente na fórmula, o erro persiste. Parece que internamente o Excel não está arredondando corretamente, mantendo algum lixo. Uma gambiarra que testei e funcionou foi formatar o valor retornado pela função, usando respectivamente: =CORRESP(VALOR(TEXTO(ARREDONDAR.PARA.CIMA(C2;1);"#,#"));A9:A35;0) e =PROCV(VALOR(TEXTO(ARREDONDAR.PARA.CIMA(C2;1);"#,#"));A9:B35;2;FALSO) Como sua tabela é numérica e bem regular , alternativamente você poderia usar outras soluções como: =TEXTO(SOMARPRODUTO((ARREDONDAR.PARA.CIMA(C2;1)=A9:A35)*B9:B35);"00") Ou até mesmo poderia desprezar a tabela, usando simplesmente: =TEXTO(SOMARPRODUTO((ARREDONDAR.PARA.CIMA(C2;1)=(LIN(34:60)/10))*LIN(1:27));"00") A função TEXTO nesses casos é só para formatar a saída numérica sempre com dois dígitos.
  3. Nesse caso insira em Plan1(teste): Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("C3")) Is Nothing Then On Error Resume Next Me.Name = Me.Range("C3").Value On Error GoTo 0 End If End Sub
  4. @daviddatal , bom dia. Célula C3 de qualquer planilha? Se for isso, insira no evento Change da pasta de trabalho: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Sh.Range("C3")) Is Nothing Then On Error Resume Next Sh.Name = Sh.Range("C3").Value On Error GoTo 0 End If End Sub Obs.: lembre-se de habilitar as macros. Dúvida David.zip
  5. @daviddatal , bom dia. Variável = 5 With Worksheets("Planilha1") .Range(.Cells(Variável, 1), .Cells(Variável, 4)).Select End With Alternativamente, Variável = 5 With Worksheets("Planilha1") .Range("A" & Variável & ":" & "D" & Variável).Select End With Boas Festas!
  6. Bom dia,@Sbroggio Um meio de contornar isso seria da seguinte forma: Vá em Opções do Word (no 2010 acho que era no botão do Office), clique em Avançado e role até a seção Mostrar o conteúdo do documento. Marque a caixa Mostrar espaços reservados a imagens. Desta forma, você verá uma caixa em branco onde tem imagem (a imagem continua lá, só não está sendo exibida no seu Pavilon). Desmarque a opção de novo depois, se quiser, senão deixe assim. Outra pessoa que abrir o documento verá a imagem normalmente.
  7. ^13 localiza uma marca de parágrafo (π). Se "Usar caracteres coringa" não estivesse ativo, daria para usar ^p {1;} localiza uma ou mais ocorrências consecutivas do caractere anterior, nesse caso, a marca de parágrafo (mudança de linha ou linhas em branco em sequência). Atenção aqui pois o Help do Word em português nunca foi corrigido em todos esses anos e mostra uma vírgula no lugar do ponto-e-vírgula. O recurso de localizar e substituir do Word associado ao uso de coringas é bastante poderoso e pouquíssimo explorado. É bastante semelhante e traz muitos dos recursos das poderosas Expressões Regulares (Regex) usadas em diversas linguagens. É semelhante inclusive na sintaxe, embora levemente diferente.
  8. @quiksilver0 , boa noite. Segue um passo-a-passo: primeiro passo, converter a tabela em texto: Selecione a tabela inteira, clicando na alça de seleção da tabela (quadradinho no canto esquerdo sup.) Na guia Ferramentas de Tablela > Layout, clique em Converter em Texto segundo passo, fazer uma substituição avançada (usando coringas), trocando uma ou mais marcas de parágrafo pela vírgula : com o texto ainda selecionado, tecle CTRL U (ou selecione Substituir no menu da guia Início). Clique no botão Mais>> na caixa de diálogo Localizar e Substituir, guia Substituir e ative a opção Usar caracteres coringa na caixa Localizar, insira: ^13{1;} na caixa Substituir, insira: , (uma vírgula e um espaço se assim desejar) clique em Substituir tudo. Está pronto se quiser também que seus endereços de e-mail fiquem todos em minúsculo, aproveite que já está selecionado e dê SHIFT F3 (2 vezes)
  9. Funciona com cada coluna que aplicar. Sub filtroPessoasJoao() Dim i As Byte With ActiveSheet.Range("tabelaPessoas") For i = 1 To .Columns.Count .AutoFilter Field:=i, VisibleDropDown:=False Next i .AutoFilter Field:=1, Criteria1:="João" End With End Sub
  10. @Ingo M P Américo , boa tarde. Se você quer somente que a setinha não apareça, mas o filtro continue aplicado, defina o argumento VisibleDropDown como False no método AutoFilter para cada campo. Em seu exemplo, se você quer ocultar a seta apenas no campo Nome, poderia ter usado: ActiveSheet.Range("tabelaPessoas").AutoFilter Field:=1, Criteria1:="João", VisibleDropDown:=False Para ocultar também a do 3ª campo - coluna "Número" (Field:=3), poderia usar: ActiveSheet.Range("tabelaPessoas").AutoFilter Field:=3, VisibleDropDown:=False Se forem diversos campos, faça um loop considerando cada coluna...
  11. @Rafael Assis Amancio , nesse caso uma fórmula já equacionaria seu problema: Insira na célula D2 a seguinte fórmula e depois arraste pela tabela: =EXT.TEXTO($C2;LOCALIZAR(D$1;$C2);NÚM.CARACT(D$1)+4) Caso tenha que ser necessariamente via VBA, retorne.
  12. @Rafael Assis Amancio boa tarde! Comece por anexar uma pasta de trabalho com o layout dos seus dados e onde quer que seus dados sejam extraídos. Preencha com algumas linhas de exemplo. Se necessário, modifique caso tenham dados sigilosos. O que seria o e etc.? Especifique totalmente as variações que ocorrerão.
  13. @Pedro Passamani , boa tarde São arquivos baixados da internet ou de fontes externas? Se forem, pode ser que estejam bloqueados. Abra o Windows Explorer e clique com o botão direito sobre um deles, escolha Propriedades e veja se a opção Desbloquear aparece. Desbloqueie e faça o teste.
  14. @dosepa , boa noite Um dos erros é que você definiu a variável prodprice como Integer, logo você está ignorando os centavos. Definir como Currency penso que seria mais adequado nessa situação. Além disso, você usou a função Val para transformar o conteúdo da Textbox em valor numérico. O efeito colateral disso é que o usuário terá que entrar os valores decimais separados com ponto e não com a vírgula como é nosso padrão, caso haja centavos no valor. Sugiro então usar a função de conversão CCur ao invés de Val. Sugestão alterando um pouco seu código para evitar o loop: Private Sub TextBox13_Change() Dim prodprice As Currency Dim not100 As Integer Dim not50 As Integer Dim not20 As Integer Dim not10 As Integer Dim not5 As Integer Dim not2 As Integer Dim coin1 As Integer Dim coin2 As Integer Dim coin3 As Integer Dim coin4 As Integer Dim coin5 As Integer Dim coin6 As Integer Dim resto As Long On Error Resume Next prodprice = CCur(TextBox13.Text) resto = Int(prodprice) not100 = resto \ 100: resto = resto Mod 100 not50 = resto \ 50: resto = resto Mod 50 not20 = resto \ 20: resto = resto Mod 20 not10 = resto \ 10: resto = resto Mod 10 not5 = resto \ 5: resto = resto Mod 5 not2 = resto \ 2: resto = resto Mod 2 coin1 = resto \ 1: resto = (prodprice - Int(prodprice)) * 100 coin2 = resto \ 50: resto = resto Mod 50 coin3 = resto \ 25: resto = resto Mod 25 coin4 = resto \ 10: resto = resto Mod 10 coin5 = resto \ 5: resto = resto Mod 5 coin6 = resto \ 1 TextBox1.Text = not100 TextBox2.Text = not50 TextBox3.Text = not20 TextBox4.Text = not10 TextBox5.Text = not5 TextBox6.Text = not2 TextBox7.Text = coin1 TextBox8.Text = coin2 TextBox9.Text = coin3 TextBox10.Text = coin4 TextBox11.Text = coin5 TextBox12.Text = coin6 End Sub Obs.: Só para esclarecer e/ou evitar confusão, veja que nas fórmulas acima a barra de divisão " \ " é contrária à divisão normal " / " pois é um operador do VBA que retorna a parte inteira de uma divisão. Equivale à função QUOCIENTE do Excel.
  15. @gabkor , boa noite. Não sei se entendi direito, mas se você criar uma sequência de valores B10, B17, B24 (uma letra combinada com uma PA com razão 7 e primeiro termo 10), você poderia usar a fórmula abaixo em C1 e arrastar para C2, C3, etc.: ="B" & (7*LIN()+3) Agora, se você quer retornar em C1, C2, C3 o conteúdo das células B10, B17, B24, etc., poderia usar em C1 e abaixo: =INDIRETO("B" & (7 * LIN() + 3)) Seria isso? PA.xlsx
  16. Se você selecionar um conjunto de linhas antes de substituir, a substituição ocorrerá somente dentro daquela seleção, se assim desejares. Além disso, o Word permite usar um amplo conjunto de caracteres coringa que potencializam a busca e substituição. Se assemelham um pouco às Expressões Regulares. Se você disponibilizar um exemplo do que exatamente quer, as soluções aqui podem surgir mais rapidamente.
  17. Se você zipar e anexar seus modelos, preferivelmente substituindo os dados originais por fictícios mas mantendo o layout, alguém vai lhe auxiliar, tenho certeza. Assim fica difícil pois primeiro teremos que recriar seus modelos e preencher com dados quaisquer para depois buscar uma solução. Isso desestimula muito pois perde-se muito tempo ao passo que você já tem o cenário todo construído.
  18. @ArthurP , boa tarde. Mas qual código de erro que deu? Em qual linha? Sem saber disso, só posso presumir que o erro esteja na linha: Dim excelApp As Excel.Application Se assim for, deve ser porque. a referência à biblioteca do Excel ficou perdida após atualizar para a nova versão. No VBE, em Referências desmarque a referencia ausente do Excel antigo e marque a nova Microsoft Excel xx Object Library. Ou então, pode dimensionar a variável excelApp como tipo objeto genérico: Dim excelApp As Object
  19. Pois é, infelizmente baixei seus dois arquivos e aqui no meu PC não tive problemas, apareceu certinho, então não pude reproduzir o erro ficando difícil analisar o que pode ter dado errado pra você. alvez fosse interessante você mostrar um print de como fica na sua tela esse estranho comportamento.
  20. @Lylica30 , boa noite Faça uma tentativa: Selecione e copie para a área de transferência a tabela do Excel, alterne para o Word e, na guia Início, no grupo "Área de Transferência", clique na setinha abaixo do botão Colar e selecione "Colar especial" e em seguida escolha "Planilha do Microsoft Excel: objeto" e dê um Ok.
  21. Boa noite, @fontesrubens Sim, é possível. Quando você não especifica a propriedade para um objeto Range, a propriedade padrão que o VBA usa é a propriedade Value, que retorna somente o valor que está na célula, sem formatação. Mas se ao invés disso você usar a propriedade Text, trará o conteúdo da célula considerando a formatação personalizada aplicada. No seu caso acima, experimente usar: Cells(R, 6).Value = Cells(R, 3).Text & Chr(10) & Cells(R, 4).Text & Chr(10) & Cells(R, 5).Text
  22. @HENRIQUE DINIZ, boa noite. Infelizmente o VBA não tem e não terá versões que possam ser executadas em nuvem ou em apps para celulares, pelo menos essa é a posição oficial da MS até o momento e pelo jeito é definitiva. Ou seja, o Excel On-Line jamais rodará macros VBA. Ela até insistiu em promover o Visual Stúdio a alguns anos atrás (o VSTO), mas não colou e portanto não decolou (até rimou!, hehehe). E como tinha que evoluir à custa de aposentar o VBA, empoderou os Suplementos (Office Add-ins) de forma que possam rodar apps inclusive Cloud Applications e em sistemas operacionais de dispositivos móveis, embora sua programação ainda não seja tão poderosa quanto com o VBA, mas estão em expansão. Um desses add-ins é o Microsoft Script Labs, que roda no 2013 e 2016. Você pode acessá-lo na guia Inserir > Meus Suplementos > Loja > procurar o Script Lab. Uma das más notícias é que você terá que aprender JavaScript, HTML, CSS para usar esse Add-in. Outra é que o ambiente de desenvolvimento, pelo menos na minha opinião, é muito ruim (o do VBA já é ultrapassadíssimo, mas acho esse pior ainda), apertado. Veja o vídeo "Felipe Costa Gualberto - Microsoft Script Labs" que um de nossos MVP's brasileiros, o grande Felipe Costa Gualberto fez durante o ConaEXCEL (Congresso Nacional Excel) deste ano, onde ele fez uma retrospectiva histórica da evolução da parte de programação no Excel, desde as Excel Macros 4, passando pelo VBA, o VSTO e culminando com os Office Add-Ins em especial o Microsoft Script Labs.
  23. @Zeca Pagodinho, boa noite A fórmula faz o seguinte: Se cada célula de toda coluna B (B:B) desta planilha (planilha em que está a fórmula) for igual a cada célula correspondente na coluna A da Plan2 (Plan2!A:A) e também (função E) não for vazia (B:B<>"") e também (continuando função E) se cada célula de toda coluna A da Plan2 não for vazia (Plan2!A:A<>"") Então cada célula da coluna onde está a fórmula será igual à coluna B da Plan2 (Plan2!B:B) Senão será vazia ("")
  24. @Jorge Toledo, já foi muito bem respondido pelo colega @deciog Vai desculpando, não previ a situação de todos nulos (é o que dá querer resolver num final de sexta-feira, hehehe).
  25. @Jorge Toledo, boa noite. você precisa na verdade, pelo que vi no anexo, contar quantas vazias no final da coluna, não é mesmo? Tente usar a seguinte fórmula matricial e depois arraste pro lado *não esqueça do Ctrl+Shift+Enter): =LIN(N$15)-MÁXIMO((LIN(N$3:N$15)*ÉNÚM(N$3:N$15))) Retorno-Quantas-Celulas-Vazias.xlsx

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