Ir ao conteúdo
  • Cadastre-se

Crafteribanez

Membro Pleno
  • Posts

    97
  • Cadastrado em

  • Última visita

Tudo que Crafteribanez postou

  1. Resolvido a pesquisa com o seguinte comando Python vNumeroCaracter = texto.find(variavel, inicio nova contagem)
  2. Boa tarde Estou tentando no Python => Google Colab o seguinte procedimento sem êxito. Encontrar todas as ocorrências de um texto e localizar o índice de cada ocorrência. Pretendo exportar os resultados obtidos para um arquivo externo. Código até o momento: from google.colab import files arquivo = files.upload() pip install pdfminer.six from pdfminer.high_level import extract_text texto = extract_text('dopa.pdf') print(texto) print("Termo Aditivo " + str(texto.count('EXTRATO DE TERMO ADITIVO'))) Este código me retorna a quantidade de ocorrências, porém precisaria encontrar os índices das 4 ocorrências para poder extrair as strings. Depois do texto, sempre tem o número do aditivo, é o que me interessa; Aceito sugestões. Grato.
  3. Boa Noite No Google Sheets (Planilhas), há uma função Query que ajuda muito a fazer consultas em outras bases parametrizadas, utilizando princípios do SQL ( Select, where, From, etc .....). Também encontrei em diversos sites maneiras de criar campos calculados dentro da query, incluindo novos campos. O problema: Para valores numéricos, consegui facilmente criar um campo calculado dentro do query obtendo o resultado, porém para diferenças entre datas, isto não foi possível, ou, não conheço o método correto. Retorna mensagem de erro que os campos não são numéricos. Más se for feito diretamente na planilha um menos o outro, o resultado aparece normalmente. Alguém teria um exemplo de cálculo entre dadas no query do Google sheets por acaso ? (Criação de campo calculado ) Grato.
  4. Option Explicit Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim sql As String Dim x As Integer Dim i As Long Sub Consolida() Application.ScreenUpdating = False Dim arq(1 To 3) As String Dim WB1 As Workbook Dim WS1 As Worksheet Dim ULD As Long Dim i As Integer Set WB1 = ActiveWorkbook Set WS1 = WB1.Sheets("Dados") Set cn = New ADODB.Connection Set rs = New ADODB.Recordset WS1.Select Cells.Clear arq(1) = "\\caminho" & "\Arquivo01.xlsx" arq(2) = "\\Caminho" & "\Arquivo02.xlsx" arq(3) = "\\Caminho" & "\Arquivo03.xlsx" For i = Plan2.Range("Célula alvo").Value To (UBound(arq)) With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & arq(i) .Properties("Extended Properties") = "Excel 8.0;HDR=YES" .Open End With sql = "Select * from [Planilha$]" rs.Open sql, cn, adOpenKeyset, adLockOptimistic WS1.Activate ULD = WS1.Cells(Rows.Count, 1).End(xlUp).Row WS1.Range("A" & ULD + 1).CopyFromRecordset rs For x = 1 To rs.Fields.Count WS1.Cells(1, x) = rs.Fields(x - 1).Name Next x cn.Close Next i Set cn = Nothing Set rs = Nothing Plan1.Activate MsgBox "Consolidação concluída ! " Plan2.Activate Application.ScreenUpdating = False End Sub Eu utilizo esta macro para juntar meus arquivos, que tem colunas iguais. Ativar a Referência "Microsoft Activex Data Objects 2.8 Library" ou superior para utilização da macro Adaptar conforme sua pasta de trabalho e planilhas. Felicidades.
  5. Adaptei uma função de verificação que encontrei em um site e funcionou bem. Criei um array para os 6 valores da planilha. Function verificar(vRegiao As Range) As Integer Dim vValores(6) Dim b As Variant Dim i As Integer Dim vContagem As Integer Dim w As Range vContagem = 0 vValores(1) = Plan1.Range("C3").Value vValores(2) = Plan1.Range("D3").Value vValores(3) = Plan1.Range("E3").Value vValores(4) = Plan1.Range("F3").Value vValores(5) = Plan1.Range("G3").Value vValores(6) = Plan1.Range("H3").Value For Each w In vRegiao For i = 1 To UBound(vValores) If vValores(i) = w.Value Then vContagem = vContagem + 1 End If Next i Next w verificar = vContagem End Function Site original para procura com String em Array : https://planilhando.com.br/forum/vba-macros/buscar-string-dentro-de-array/ Anexei a tua planilha com esta função VBA Acho que atende. Dá um grito se não for isto. Feliciddes. clube hardware1.7z
  6. Pelo que vi na tua planilha, o retorno que desejas é na range J6:J9. ? Confere ? Se for quer por fórmulas do Excel ou uma função do VBA ? Acho que por fórmulas vai ser bem mais "comprido" o texto a ser digitado.
  7. Boa tarde Função no Excel pronta para este propósito não encontrei, porém criei agora, uma função personalizada que talvez te atenda. Function junta(celula As Range) As String 'Teste condicional: Se na célula F1 célula do critério estiver vazia If Plan1.Range("F1").Value = "" Then 'Retorna para a função "Não encontrado" junta = "Não encontrado" 'Caso contrário Else 'Delcaração de veriáveis Dim uld As Long Dim a As Long Dim vCriterio As Integer Dim vTexto As String 'Busca o valor do critério vCriterio = Plan1.Range("F1").Value 'inicia a variável texto com vazio vTexto = "" 'Verifica a última linha da coluna "A" da planilha 1 para looping for uld = Plan1.Cells(Rows.Count, 1).End(xlUp).Row 'Inicia o looping for For a = 2 To uld 'Se a célula da coluna A da linha "a" for igual ao critério If Plan1.Range("A" & a).Value = vCriterio Then 'Acrescenta a variável vTexto o conteúdo da celula atual do looping vTexto = vTexto & " - " & Plan1.Range("B" & a).Value End If Next a 'Retorna para a função o texto concatenado de todos os critérios junta = vTexto End If End Function Inseri no posto o arquivo que criei com a macro. Dá uma olhada na função. Tentei descrever cada linha do código para melhor entendimento. Se te servir altera de acordo com as tuas planilhas. Felicidades. Função Junta.7z
  8. Boa tarde Trabalho em meus projetos tanto com planilhas direto, bem como com userforms (Formulários). Em ambos é possível retornar valores desejados. No caso dos userforms pode-se com certeza armazenar resultados em planilhas, faço isto direto. Poderia ser mais específico na questão ? Acredito que o que desejas seja possível, mesmo não tendo entendido bem a questão.
  9. Bom dia. Não tenho por procedimento utilizar planilhas compartilhadas. Para estas necessidades em que temos vários usuários geralmente utilizo um arquivo por pessoa em ambiente de rede com consulta sql, para os que somente "consultam" e procedimento de gravação para os que modificam. Base de dados separada em arquivo no servidor. Fica como dica. Provavelmente no fórum, haverá quem tenha melhor conhecimento em compartilhadas. Se necessitar informações de como proceder sql para consultas. Contate. Felicidades.
  10. Boa noite Uma das possibilidades de se fazer isto via código seria: Private Sub Worksheet_Activate() If Environ("username") = "usuario que se quer restringir" Then Planilha1.Visible = False End If End Sub Eu particularmente, utilizaria um UserForm com envio de informações direto para a Pasta de Trabalho e planilha desejada.
  11. Boa noite Marina Não sei se já conseguiste resolver esta questão. Olhei tua planilha e não vi datas inseridas em nenhum local, então acredito que desejas inserir isto de forma automática. Pode-se fazer um monitoramente de células de uma planilha e através de uma "mudança" ou inserção de valores em um local, registrar em outra planiha, a data desta ocorrência, usuário logado e célula alvo. Tenho alguns projetos em que registro alterações de valores em células e usuários que as procedeu, para fins de registro. Não sei se é isto que desejas. Caso tenha resolvido, felicidades, caso ainda não podes descrever melhor o problema. Boa noite e felicidades.
  12. Boa noite Diretamente por funções de planilha não encontrei uma função que atendesse esta necessidade, porém via VBA, tem esta aqui que funciona. A única coisa que tens que cuidar é o indice de ColorIndex do VBA. Function verificaColorIndex(celula As Range) If celula.Font.ColorIndex = 3 Then verificaColorIndex = "Vermelho" ElseIf celula.Font.ColorIndex = 33 Then verificaColorIndex = "Azul-Claro" Else verificaColorIndex = "Indefinido" End If End Function Se necessitar auxilio para achar os códigos das cores contata. Felicidades.
  13. Boa tarde Utilizei no Python na entrada entrada de dados a função replace para trocar a vírgula pelo ponto, considerando o cálculo no padrão americano. Funciona bem o código, porém gostaria de informações/dicas de como o pessoal está procedendo para programar os cálculos no formato brasileiro. Tem algum módulo pronto para isto, formato/visualização ? Ou cada vez que precisar visualizar o formato " Brasileiro => R$ 12.000,00" tem que ficar fazendo o replace ponto por virgula e virgula por ponto ? Grato. from tkinter import * def bt_click(): if(str(ed1.get()).replace(",","").isnumeric() and str(ed2.get().replace(",",""))).isnumeric(): num1= float(ed1.get().replace(",",".")) num2= float(ed1.get().replace(",",".")) num3 = num1 + num2 lb1["text"] = ("%10.2f" %(num3)) janela = Tk() janela.title("Calculos") bt1 = Button(janela,width=10, text="Calcular", command = bt_click) bt1.place(x=70, y=100) ed1 = Entry(janela,width=10) ed1.place(x=70, y=30) ed2 = Entry(janela,width=10) ed2.place(x=70, y=60) lb1 = Label(janela,text="Resultado") lb1.place(x=70, y=130) janela.mainloop()
  14. Bom dia Comecei a testar o Mit AppInventor par criar aplicativos para Android. Criei um bem básico e testei no meu Android 7.0 tudo ok. Enviei para alguns camaradas testarem e o que tem Android 6.0 me respondeu que aplicativo informa não poder instalar por não ter suporte. Gostaria de saber se o Mit AppInventor: http://ai2.appinventor.mit.edu/ tem versão mínima de Android para rodar aplicativos ou seria problema no celular Android do camarada ? Grato por alguma informação.
  15. Bom dia Trabalho diretamente com Excel 2010 e 2013. Desde 2018, monitoro resultados em Dashbords criados em Excel com pesquisas em outras planilhas Excel através de SQL. Este abaixo é um exemplo de busca de dados com SQL no Excel, ativando a biblioteca "Microsoft ActiveX Data Objects 2.8 Library" Questão. Gostaria de começar a desenvolver os Dashbords em LibreOffice Calc visto a facilidade de instalar o aplicativo "Sem licença paga" Tem algum local "site" , "ebook" que eu possa consultar onde vejo como é possível este procedimento de SQL no Calc tipo no Excel ? Preciso que seja consulta planilha a planilha pois estou indo buscar dados em outras bases Excel. Grato. Sub SQLBuscaDados() Set WS1 = Plan003 WS1.Activate WS1.Cells.Select Selection.ClearContents With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = ThisWorkbook.Path & "\Dados.xlsx" .Properties("Extended Properties") = "Excel 8.0;HDR=YES" .Open End With sql = "Select * from [Dados$]" rsConsulta.Open sql, cn, adOpenKeyset, adLockOptimistic Col = 1 If rsConsulta.EOF = False Then WS1.Range("A2").Select For Each FD In rsConsulta.Fields With WS1.Cells(1, Col) .Value = FD.Name .Font.Bold = True .Interior.Color = RGB(37, 219, 219) End With Col = Col + 1 Next FD WS1.Cells(2, 1).CopyFromRecordset rsConsulta Else MsgBox "Não há dados" End If cn.Close WS1.Range("A2").Select Set WS1 = Nothing End Sub Faço pesquisas internas do mesmo modo com a mesma bilibioteca referenciando as planilhas internas.
  16. Boa Tarde Criei um formulário para inserção de dados no Word em um arquivo1. Recebo os dados para inserir no formulário sempre de outro arquivo Word. Quando abro o formulário do word para inserir os arquivos não consigo copiar do outro arquivo do Word os dados para colar nos campos apropriados do formulário, pois este fica desabilitado.. Tem algum comando para ser colocado no formulário do Word ou habilitar ou desabilitar algo nas opções do Word que me permita trabalhar com o formulário aberto e ao mesmo tempo copiar os dados de outro arquivo do Word ? Seria copiar do arquivo e colar no formulário. Grato por uma ideia.
  17. Boa noite. Estou estudando Português e tentando estudar Javascript junto para ver se consigo unir o útil ao agradável. O que estou tentando no momento é fazer um método de busca por dígrafos dentro de uma string. A string é uma palavra, não passa disto, somente uma palavra. Diz a regra do Português que as letras juntas (ch, nh, lh, rr, ss, xc, e em alguns casos gu e qu são sempre dígrafos não importando a posição em que se encontram na palavra. Outra regra diz que as letras juntas (am, an, em, en) especificamente estas são dígrafos somente no início e no meio da palavra, no fim são ditongos. Considerando que dígrafos são duas letras e um som(fonema), eu utilizo o código: function fonetica(){ //Texto a ser procurado textoprompt = document.getElementById("palavra").value; //Primeira variavel de contagem de dígrafos //Modificadores i = Sem case sensitive / g todas as ocorrencias //Procura Dígrafos Consonantais digrafo1 = textoprompt.match(/Ch|Nh|Lh|RR|SS|XC|SC|GU|QU/ig); if(digrafo1 != null){ dig1 = digrafo1.length; } else { dig1=0; } Neste primeiro caso não importa a contagem pois todos são dígrafos de qualquer maneira com exceção de gu qu dependendo da ocasião. Porém , no caso abaixo, preciso descobrir a posição de cada elemento do "digrafo2" onde cada um inicia e depois descontar da quantidade total de letras para verificar se o dígrafo não está no final, se estiver, não é dígrafo e não posso contar no resultado. Exemplo: A palavra "change" tem 6 letras e 5 fonemas ( considerando que "an" está no meio e é dígrafo portanto somente um som) A ideia neste código abaixo era retornar a posição de cada digrafo2 e descontar em código posterior do total de caracteres para ver se esta no inicio ou no meio. Este código posicao=.... não está me dando nenhum retorno. Agradeço uma ideia. Os alerts que usei foi para ver até onde o código estava chegando. digrafo2 = textoprompt.match(/Am|An|Em|En|Im|In|Om|On|Um|Un/ig); if (digrafo2 != null){ if(digrafo2.length > 1){ alert(digrafo2.length); for (i=1 ; i<=digrafo2.length ; i++){ alert("aqui"); posicao[i]=textoprompt.search(digrafo2[i]); alert("aqui2"); alert(posicao[i]); } } adicionado 28 minutos depois Pessoal, usei indexOf e localizou cada posição. Encerrado !
  18. A algum tempo tive este mesmo problema, resolvi com a utilização de mais de uma célula na função SE. Arquivo anexo. Não achei isto vantajoso, depois de algum tempo, criei uma função em VBA que ficava menos poluída na planilha. Más de qualquer forma vai aí o método que encontrei e resolveu naquele momento. As últimas 03 colunas observe que são uma junção da função SE, neste modelo consigo colocar quantos níveis quiser, somente ir colocando cada 7 Se's em uma coluna e referenciar esta nova coluna (célula) ao final da coluna anterior. Boa sorte! 15 Niveis Funcao SE.xls
  19. Boa tarde Necessito alterar o código para abrir um arquivo Excel com senha via SQL Sub Clientes() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim sql As String Dim x As Integer Dim Cliente As String Application.ScreenUpdating = False Cliente = Sheets("Relatorio").Range("A1") Set cn = New ADODB.Connection cn.Provider = "Microsoft.Ace.oledb.12.0" cn.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Clientes.xls;Extended Properties=Excel 12.0" cn.Open Sheets("Relatorio").Select Cells.Clear sql = "select * from [Base1$]" Set rs = New ADODB.Recordset rs.Open sql, cn Sheets("Relatorio").Range("A3").CopyFromRecordset rs For x = 1 To rs.Fields.Count Cells(2, x) = rs.Fields(x - 1).Name Next x rs.Close cn.Close Set rs = Nothing Set cn = Nothing End Sub Já procurei especificamente sobre SQL com senha para abrir Excel, porém não encontrei nada. A senha para este modelo é "teste". Em que parte do código insiro a senha ? Grato.
  20. Sim. Compreendi agora o procedimento. Arrastei para a direita as caixas ao contrário de arrastar para baixo. Grato.
  21. Sim encaixa, porém somente ocupando todo o espaço abaixo na horizontal. A forma default que era na Explorer e Properties na esquerda vertical e código ocupando todo o espaço a direita vertical não aceita.
  22. Perfeito. Set SH2 = Plan1 é mais lógico sendo na mesma pasta de trabalho. Porém como geralmente trabalho com duas pastas de trabalhos, a referência ao nome interno de uma planilha em outra pasta de trabalho seria possível ou utilizamos o modo "convencional' set sh3 = worksheets("Cadastro"). A questão tem seu valor pois utilizamos planilhas em rede e que facilmente usuários podem renomear planilhas sem a prévia comunicação, prejudicando assim as rotinas de VBA.
  23. Boa Tarde Como referenciar no vba as planilhas pela propriedade (Name) primeira da listagem e não pela propriedade Name. Exemplo, aqui refencio pelo nome que está na aba da planilha Dim WK2 As Workbook Dim SH2 As Worksheet Set WK2 = ActiveWorkbook Set SH2 = WK2.Worksheets("Clientes") Agora na expressão: Set SH2 = WK2.Worksheets("Plan1") gostaria de referenciar a propriedade (Name) Plan1 Tentei Set SH2 = WK2.Plan1 - Não aceita Set SH2 = WK2.(Plan1) - Não aceita Set SH2 = WK2.[Plan1] - Não aceita. Aceito sugestões. Grato.
  24. Boa Tarde Por um equívoco, consegui desconfigurar as janelas do VBA no Excel. Janela Explorer, Propriedades e Código. Eu fico movimentando sempre as janelas e quando clico para encaixar, só encaixa na horizontal. Fica muito ruim a visualização. Não consigo mais encaixar como default Explorer e Properties na esquerda uma em cima da outra e e a janela de códigos na direita ocupando a maioria do espaço. Alguma sugestão de comando para voltar ao default da IDE ? Grato.

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