Ir ao conteúdo
  • Cadastre-se

Fernando.Igor

Membro Pleno
  • Posts

    31
  • Cadastrado em

  • Última visita

Reputação

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

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