Ir ao conteúdo
  • Cadastre-se

Fernando.Igor

Membro Pleno
  • Posts

    31
  • Cadastrado em

  • Última visita

Tudo que Fernando.Igor postou

  1. Pessoal, boa tarde. Tenho uma planilha que está dando um erro em uma TD. Segue em anexo. A tabela 3 retorna valores para o filtro AUTO POSTO BARRO ALTO que não estão na base (logo ao lado). Os valores corretos aparecem no filtro como AUTO POSTO BARRO ALTO2. Obs.: A tabela 1 está correta. Obs.2 : Já atualizei a TD e revi o intervalo. Eu já vi esse tipo de erro acontecer em outros arquivos e isso sempre me incomodou. É um erro bem bizarro. Obs.3: Reparei tb que isso acontece a partir de determinados computadores. Já que várias pessoas usam um arquivo semelhante e apenas uma acontece isso com frequência. Mas depois que acontece esse erro, ai se abrir esse arquivo em qualquer máquina (a minha, por exemplo), o erro continua! Quem puder me ajudar eu agradeço. Att., Erro TD.rar
  2. @DJunqueira , fiz esse ajuste, mas continua dando erro incompatível. Acho que não é isso, até porque a variável já estava sendo carregada com os nomes, mesmo sem o '.value'. De qualquer forma, obrigado! Abs!
  3. Olá. Gostaria de automatizar uma Classificação "customizada" e com uma ordem de classificação variável. Para isso, gravei uma macro: Sub Macro1() ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("F6:F16"), _ SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="Matrícula Pendente, Cadastro Incompleto", _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Plan1").Sort .SetRange Range("E5:I16") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Para deixar a "ordem variável", declarei a variável "Ordem": Sub Macro1() Ordem = "" & Plan15.Range("c28") & "," & Plan15.Range("c29") & "" ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("F6:F16"), _ SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=Ordem, _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Plan1").Sort .SetRange Range("E5:I16") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Porém a execução retorna um erro de execução (13 - Tipo incompatíveis). A "ordem está retornando "Matrícula Pendente, Cadastro Incompleto" (do jeito que foi gravado). Eu desconfio que seja algum problema com essas aspas - mas já tentei de tudo ( " " ", " ' ", " ", sem nada etc). Alguém poderia ajudar? Grato! Abs!
  4. Ah tá... eu sempre me confundo com esses campos. Já arrumei aqui. Então... o "produto final" era quase isso! Mas com os códigos que você colocou consegui fazer aqui! Só me tire mais uma dúvida, por favor. No arquivo em anexo está o que eu quero (Formulário2). Fiz dois formulários (1 e 2) com dois jeitos diferentes para carregar as listas (quando você abrir vai entender mais ou menos o que eu queria). Esse no Formulário1, usando um if: Private Sub ComboBox3_Change() Sheets("Plan1").Range("i5").Value = Me.ComboBox3.Text Dim W As Worksheet Dim Lr As Long Dim rng As Range, c As Range ' limpa os dados e define a fonte do combobox If Me.ComboBox3.Text = "Fruta" Then With ComboBox2 .Clear .Font.Size = 10 End With Set W = Sheets("Plan1") With W Lr = .Cells(Rows.Count, 4).End(xlUp).Row Lr = IIf(Lr < 4, 4, Lr) Set rng = Range("d4:d" & Lr) For Each c In rng Me.ComboBox2.AddItem c.Value Next End With Else With ComboBox2 .Clear .Font.Size = 10 End With Set W = Sheets("Plan1") With W Lr = .Cells(Rows.Count, 5).End(xlUp).Row Lr = IIf(Lr < 5, 5, Lr) Set rng = Range("E4:E" & Lr) For Each c In rng Me.ComboBox2.AddItem c.Value Next End With End If End Sub E esse no Formulário2, usando uma fórmula índice no próprio excel: Private Sub ComboBox3_Change() Sheets("Plan1").Range("i5").Value = Me.ComboBox3.Text Dim W As Worksheet Dim Lr As Long Dim rng As Range, c As Range ' limpa os dados e define a fonte do combobox With ComboBox2 .Clear .Font.Size = 10 End With Set W = Sheets("Plan1") With W Lr = .Cells(Rows.Count, 13).End(xlUp).Row Lr = IIf(Lr < 13, 13, Lr) Set rng = Range("m4:m" & Lr) For Each c In rng Me.ComboBox2.AddItem c.Value Next End With End Sub Você teria uma terceira sugestão? Se fossem só "fruta" e "cor", a primeira atenderia facilmente. Mas se eu tiver mais itens fica inviável. O que você acha? E à propósito, você poderia me explicar só essa linha do código: Lr = .Cells(Rows.Count, 13).End(xlUp).Row Lr = IIf(Lr < 13, 13, Lr) Valeu @Basole , muito obrigado! Abs!!! Formulário de Cadastro_v2.xlsm
  5. Pessoal, boa tarde. Alguém consegue automatizar o formulário do arquivo em anexo? O formulário está no vb. Queria aprender o código que preenche as listas e o código que vincula o preenchimento de volta ao excel (Plan1!G5:J5). No arquivo tem um exemplo do que eu gostaria (as listas). Abs! Formulário de Cadastro.xlsm
  6. valeu, @DJunqueira . Comecei a assistir aqui... parece ser bom mesmo. Abs!
  7. É vdd, @Basole tinha reparado por alto somente. Vou dar uma olhada aqui. Mas esse sentido de "consulta" é mais tipo "resgatar a informação que está no access", "fazer o caminho inverso", né? Esse tipo de conhecimento também me interessa e vou dar uma pesquisada. Mas quando disse "executar uma consulta" estava me referindo àquelas Consultas que aparecem no painel à esquerda no access, embaixo das Tabelas. Pelo que eu entendi, aquilo são Consultas já pré-configuradas, certo? Que eu preencho com os critérios e campos desejado e executo. Pelo que eu entendi então é tipo uma rotina de filtrar uma base (ou excluir, add etc). Era executar essas Consultas que eu estava me referindo... queria saber se existe algum código simples que as execute. Não sei se eu estou viajando e no fundo são as mesmas coisas, mas tenho impressão que com essas Consultas configuradas eu não precisaria escrever os parâmetros no código. No entanto seria uma Consulta "fixa" e caso se quisesse mudar talvez daria a mesma coisa... Entendi... estava realmente pensando em deixar essa vinculação. O problema que é uma pasta compartilhada na nuvem, então acho que o vínculo vai dar problema, porque quando eu fizer, o path do arquivo vai ser [...]\Fernando\[...] e depois que outro usuário atualizar o path já vai ser outro e penso que pode dar problema por causa disso. Mas vou analisando aqui.. fazia muito tempo que não mexia com access (e quando mexia tb não fazia qse nada). É uma ferramenta muito completa, mas também muito complexa no início. Abs!
  8. Era um "Erro inesperado". Tinha um código, mas eu não anotei. Mas agora cedo rodou de boa. Deu super certo, era isso mesmo! Entendi. Rodei aqui com 10 mil linhas e demorou um pouco mais, mas ainda é um tempo aceitável. Estava com medo de ser minutos. Agora que eu terei a base no Access, você saberia me dizer como eu executo uma consulta. Estou pensando em deixar o critérios definidos, mas preciso executar sempre que a base for atualizada. Na verdade se fosse possível inclusive alterar os critérios por macro seria melhor ainda! Outra coisa, @Basole : Como alternativa para o problema inicial, eu vi que tem como deixar uma tabela no access vinculada a uma planilha de excel. Isso aparentemente resolveria meu problema tb, mas eu precisaria a partir do excel sempre atualizar essa tabela do access. Você sabe como eu poderia fazer isso? Quais dessas duas alternativas você acha melhor? Abs!
  9. @Basole , dei uma olhada aqui. A ideia é bem essa mesmo. O código deu um erro na hora de abrir a conexão (cn.Open strCon). Tentei alguns ajustes, mas nada. No entanto não tem problema. Posso solucionar isso depois. Fiquei interessado mesmo nada parte que insere os dados. Vi que os códigos são parecidos com o que eu mostrei na minha primeira pergunta. Mas o seu sempre adiciona em uma linha abaixo no access, né? E vi também que você usa um Loop. No arquivo exemplo que você mandou deve ser rápido. Mas se tiver umas 10 mil linhas você acha que vai demorar muito? valeu a ajuda...
  10. Legal! Esse executável era tipo pequenas janelas que se abriam só com formulário? Sem os painéis de ferramentas do access? beleza! Vou formatar depois um arquivo e ver se consigo ajuda... valeu!
  11. Muito interessante. Mas no caso de inserção direto no Access seria necessário que todos os usuários tivessem access, né? porque no caso que citei na primeira pergunta, mesmo usuários sem access conseguem conectar no arquivo e fazer a alteração. Aqui nem todos possuem access e eu nem sei se faz parte do pacote simples do office. E o arquivo também não ficará na rede, mas esse nem seria um problema nesse caso. Outra pergunta: No caso de um formulário do access, ele executa cálculos? Por exemplo, campo A com valores, outro campo B com valores e um campo C que seria a "soma do total"? Ou seria necessário inserir somente os valores e realizar o cálculo à parte?
  12. Entendi. Nunca tinha pensado nisso. Vou analisar a viabilidade dessa alteração. O problema que o arquivo (excel) em questão já é usado há um bom tempo para lançamento de informações. E, quando o arquivo é fechado, ele já salva a base em txt. O que queria alterar era isso, ao invés de salvar em txt, salvar em um arquivo do access. Mas de qualquer forma, obrigado pela dica. Será bastante útil em outras situações. Abs!
  13. Como assim, @DJunqueira ? Não entendi. Preciso que terceiros insiram dados em um excel e a partir de um start (acho que quando fechar o excel ou algum botão) os dados sejam salvos no access. Como fazer isso "a partir do access"? valeu pela atenção!
  14. Pessoal, boa tarde. Estou querendo saber como salvar uma base de dados (uma aba simples com X colunas e Y linhas) em um arquivo access com uma macro. A ideia é que a partir de um start qualquer, a macro pegue os dados no excel e "cole" no access. Um colega já me ajudou a fazer algo parecido, mas salvando apenas uma linha. O código é: '_________________________________________________ Call Conecta Set Rst = New ADODB.Recordset Rst.Open "Delete * FROM Chave", Conexao, adOpenKeyset, adLockOptimistic, adCmdText Rst.Open "SELECT * FROM Chave", Conexao, adOpenKeyset, adLockOptimistic, adCmdText With Rst .AddNew .Fields("Aberto/Fechado") = "1" .Fields("Usuário") = Plan9.Range("as5") .Fields("Horário de Abertura") = Plan9.Range("as7") .Fields("Versão") = Plan9.Range("av3") .Update '_________________________________________________ Mas agora queria fazer com uma quantidade maior de dados (mais linhas) de uma só vez. Ainda tem o detalhe que o número de linhas é variável e tende a aumentar. Além disso, o arquivo vai sempre "colar por cima" no access. Sou até mais ou menos com programação no excel, mas essa integração com o access estou começando agora. Alguém poderia ajudar? Desde já, agradeço! Abs!!!
  15. Ah tá... não sabia desse detalhe. Obrigado.
  16. Oi Patropi! Então, realmente quero o valor da coluna D. Mas tenho de procurar pelo valor aproximado mesmo, porque vai ter vezes que será o valor aproximado que eu terei. Por exemplo: se na célula g5 você colcar 23/03, também vai retornar "8" (porque 23 não existe, mas o mais próximo é o 22 = "8"). Certo? O problema é que se eu coloco 28/03, ele retorna o valor "8". Mas não deveria, porque tem um valor exato. Se colocar o dia 29/03 ele também retorna "8". O que é mais estranho ainda, porque além de ter uma correspondência exata (29/03), ele tem uma outra mais próxima do que 22/03 (que seria 28/03). E por ai em diante... Entende que, na minha opinião, parece estar alguma coisa errada? Obrigado pela colaboração! Abs!
  17. Pessoal, boa tarde. Alguém pode me dar uma ajuda com a fórmula PROCV na planilha anexa? Na coluna H há uma fórmula e na G os valores buscados. Porém os valores destacados em vermelho - pelo meu entendimento - estão errados. Apesar de eu estar procurando uma correspondência próxima, ele deveria me trazer outros valores, uma vez que existe a correspondência exata. Certo? A partir do dia 28, ele sempre traz o valor "8", que se refere ao dia 22, mesmo tendo na base as datas 28, 29, 30 e 31. Não entendi de jeito nenhum isso. Ao lado (Na cor vermelho claro) está a mesma tabela com o mesmo erro. Fiz apenas para verificar se não tinha nada a ver com a TD. Grato se me explicarem. Abs! Problema PROCV (3).zip
  18. Pessoal, bom dia. Tem como ter uma macro que escolha um item em uma lista de combobox? Já achei códigos que carregam a lista, mas não uma que escolhe um item. O que preciso: Escolher um mês em uma lista (de preferência em um combobox) e automaticamente uma outra combobox ser preenchida com o mesmo mês. Percebi que se duas combobox iguais estiverem na mesma aba, elas mudam automaticamente uma a outra. Mas não é o caso. Preciso de uma combobox em uma aba e uma em outra. Obrigado!
  19. entendi.. beleza! Vou fazer o teste aqui! Mas isso não altera nada o uso da planilha e das Macros? Mesmo sendo aberta em outros computadores? Abs!
  20. Pessoal, boa tarde. Uma pergunta simples e direta: Pela experiência de vocês, um arquivo de excel recuperado pode aumentar significativamente de tamanha (mb)? Eu tenho uma planilha que estava com o tamanho por volta de 11mb. Aconteceram alguns problemas no excel, travou um pouco e acho que o arquivo foi recuperado pelo próprio excel. O arquivo agora está normal, mas com 25mb. Praticamente não foram feita mudanças entre a versão com 11 e a atual com 25mb. Já rodei todas as abas procurando preenchimento anormal em linhas que possa estar pesando ou alguma coisa do tipo. Alguém sabe o q pode ter sido? Obs1: Pode parecer pouco para alguns, mas devido a quem e a onde a planilha será usada, 25mb eu acho muito! Obs2: Inviável disponibilizar o arquivo, infelizmente. Abs!
  21. Ahhhhhhhhhh... caramaba! Nunca pensaria nisso! Fiz o teste aqui e já deu certo. Realmente, trabalhar em planihas Aux é sempre melhor. Vou fazer esses ajustes e colocar essa lista em outro lugar. valeu pela ajuda, cara. Grande abraço! PS: Acabei de criar um tópico sobre um outro probleminha que estou tendo aqui. Se puder contribuir com sua ajuda lá...
  22. Ok, Minoso. Recortei o arquivo inteiro pra poder enviar. Então ele está totalmente sem sentido eu acho, ficou só as abas do erro mesmo. Na primeira aba, no campo "Modo", sempre que se faz uma alteração, muda-se a célula i10 da aba Procv. E quando se roda uma dessas três caixas vermelhas (que ocultam linhas) esse número desaparece (por causa da combobox3_change). Ve se dá pra entender... valeu.. Abs! Teste.zip
  23. Hahaha Foi mal, cara. Não foi por maldade! Mas voltando... Fiz o que você falou e mudei a propriedade... mas o problema continua! Eu tinha entendido mais ou menos do jeito que você explicou... só não tava entendendo qual estava sendo a "mudança" (change). E parece que não é isso também. Duas coisas que eu acho que não seja isso: 1) A macro 2 oculta e exibi as linhas entre 32 e 10000 e a combo está na linha 6, longe desse intervalo; e 2) Eu ocultei uma linha (também bem longe da combobox3) manualmente pra ver se era o "ato de ocultar" que estava dando o problema mesmo, e a macro 3 foi executada. Será que tem alguma outra ideia? Mas de qualquer forma, valeu ae!
  24. Galera, boa tarde. Estou com um problema. Tenho as seguintes Macros: 1) Public Sub btnContabefinan()Call OpenSubOperation("Utilização de Equipamentos") 2) Sub OpenSubOperation(ByVal nameOperation As String)'ActiveSheet.UnprotectApplication.ScreenUpdating = FalseDim FinalRow As LongDim i As LongRange(Cells(32, 1), Cells(10000, 1)).EntireRow.Hidden = FalseFinalRow = Cells(Rows.Count, 21).End(xlUp).RowRange(Cells(32, 1), Cells(FinalRow, 1)).EntireRow.Hidden = TrueFor i = 32 To FinalRow If Cells(i, 21).Value = nameOperation Then Cells(i, 21).EntireRow.Hidden = False End IfNext i'ActiveSheet.ProtectApplication.ScreenUpdating = True 3) Private Sub ComboBox3_Change()ActiveSheet.UnprotectApplication.ScreenUpdating = False Range("K7").Value = ComboBox3.ValueSheets("PROCV").Range("i10").Value = Sheets("PROCV").Range("i11").ValueActiveSheet.Unprotect Application.ScreenUpdating = True A Macro 1 chama a Macro 2, que tem a simples função de ocultar algumas linhas. O problema é que quando chega na linha 6 - Range(Cells(32, 1), Cells(10000, 1)).EntireRow.Hidden = False - ele "chama" (mesmo sem nenhum Call) a Macro 3. Eu acho que na hr que o código oculta as linhas, alguma outra macro executa a Macro 3 (tipo aquelas macros que, ao clicar em uma célula, pinta toda a linha sem nenhum tipo de start). Mas eu não sei que macro "oculta" é essa. Já li e reli todos os comandos e não consegui identificar. Alguém sabe de algo semelhante? Obs1: Lógicamente, a macro 3 ser executada nesse momento me traz alguns problemas. Obs2: Infelizmente, não posso disponibilizar o arquivo (que não é meu e nem fui eu qm escreveu). valeu...

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