Ir ao conteúdo
  • Cadastre-se

André Weiss

Membros Plenos
  • Total de itens

    36
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. @Charley Rocha Estou fazendo os lançamentos dos documentos aqui e por enquanto está tudo rodando perfeitamente. Consegui alternar as abas, estou conseguindo alternar planilhas e a macro esta rodando certinho. A outra macro do botão que copia e cola a linha 3 também não deu problema. A princípio está tudo certo, caso apareça algum b.o. eu volto aqui. Se o programa estivesse certo o Private Sub Worksheet_Activate() tinha funcionado desde o princípio. Muito obrigado pela atenção e pela paciência. Até mais
  2. @Charley Rocha Deixei o programa principal no módulo assim: Private Sub Teste() FinalRow = Cells(Rows.Count, 1).End(xlUp).Row 'conta da última até a primeira linha preenchida' If Application.ActiveWorkbook.ActiveSheet.Range("A1").Value = "DAQ 00212" Then For i = 3 To FinalRow 'coluna que vai ser feita a busca' Cells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 5, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 4) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 3, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 5) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 2, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(i, 9) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 3, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 11) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 4, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 13) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 5, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(3, 6) = FinalRow - 3 Next i Application.OnTime Now + TimeValue("00:00:01"), "Teste" 'faz o programa rodar num intervalo de 1 seg'. End If E dentro da Plan6 (DAQ) coloquei: Private Sub Worksheet_Activate() Call Teste End Sub Falta alguma coisa? Pois da esse erro adicionado 18 minutos depois @Charley Rocha Acho que resolvi aqui, coloquei como Public ao invés de Private. Como eu disse no inicio, sou bem leigo em VBA, tenho noções básicas de programação em C e C++ daí alguma coisa eu até engano na hora de programar. Agora só não sei o por que de Private não rodar e Public roda de boa
  3. @Charley Rocha Eu não sei como fazer isso, tentei fazer naquele modo que você indicou no inicio, mas se eu coloco Private Sub Worksheet_Activate() Call INICIO End Sub ele não da boa
  4. @Charley Rocha No If ele comanda isso, no caso nesse comando abaixo: If Application.ActiveWorkbook.ActiveSheet.Range("A1").Value = "DAQ 00212" Then Como essa condição só se encontra na planilha que eu coloquei o código "DAQ 00212" na célula "A1" o código só ira rodar lá, quando eu saio da planilha sai dessa condição e o programa para e só volta quando aperto o botão. Eu gostaria que o programa rodasse sem o uso do botão, mas foi só assim que consegui até o momento.
  5. @Charley Rocha Andei dando umas mexidas aqui no programa e consegui resolver parcialmente. Unica coisa que não consegui foi fazer o programa rodar no momento que entra na aba que preciso que rode a macro. Para não gerar mais o erro eu coloquei um código na célula "A1", no caso é o nome do documento "DAQ 00212", nisso coloquei um If para o programa rodar somente se na célula "A1" estiver escrito "DAQ 00212" que no caso aqui é praticamente impossível. Daí eu bloqueei essa célula. O problema da macro não iniciar quando entro na planilha eu resolvi com um botão, coloquei com o nome de "INICIAR", quando preciso trocar de aba ou abrir outra planilha o programa para de rodar, quando volto na planilha DAQ eu pressiono o botão e o programa já roda de volta. Caso souber como faço pra rodar no momento que abro a planilha me da um toque. Obrigado pela atenção ae
  6. @Charley Rocha Eu coloquei o código dentro da planilha que eu iria trabalhar e apareceu o seguinte erro, parece que ele busca no módulo a programação. Vou mandar como ficou a programação também. Private Sub Worksheet_Activate() atualiza = True Call TestProcv End Sub Public atualiza As Boolean Private Sub TestProcv() FinalRow = Cells(Rows.Count, 1).End(xlUp).Row 'conta da última até a primeira linha preenchida' For i = 3 To FinalRow 'coluna que vai ser feita a busca' Cells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 5, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 4) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 3, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 5) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 2, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(i, 9) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 3, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 11) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 4, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 13) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 5, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(3, 6) = FinalRow - 3 Next i Application.OnTime Now + TimeValue("00:00:01"), "TestProcv" 'faz o programa rodar num intervalo de 1 seg'. End Sub Private Sub Worksheet_Deactivate() atualiza = False End Sub
  7. @Charley Rocha uma duvida, aquela parte que ta escrito "Public atualiza As Boolean" ele gera uma nova linha de programação e pede uma End Sub, o que você fez ali para encerrar?
  8. @Charley Rocha Essa planilha que eu estou fazendo é para fazer lançamentos de umas medições especiais na empresa que trabalho e tem mais de uma pessoa que mexe nela, se eu deixar o procv na célula pode acontecer de agm apagar e perder os dados que estavam contidos nela. Essa foi uma maneira que achei de não ter como isso acontecer, pois no VBA eu consigo por senha. Eu tentei proteger as células, mas eu criei uma linha padrão que quando aperta um botão copia uma linha igual embaixo e com as células protegidas ela não puxa os dados. Cada coisa que eu fazia dava um problema e dessa forma funcionou, porém da esse erro louco ae Segue abaixo o erro.
  9. @Charley Rocha Segue a gambiarra q eu fiz aqui, porém nem rodar rodou. E segue também onde que o depurador acha o erro quando troca de aba (quando uso o programa antigo), talvez tenha algum comando dentro do procv que possa ajustar para que não ocorra o erro e eu não to sabendo.
  10. @Charley Rocha sou bem leigo no assunto, tudo que eu fiz foi pesquisando comandos que pareciam com o que eu precisava e eu modificava algumas coisas. O comando ficaria assim? como faria pra usar o Workbook_deactivate?
  11. Fiz um código VBA que funciona do jeito que eu preciso, porém, quando abro outra aba ou até mesmo outra planilha, o código gera um erro, ele só funciona numa aba específica. O código é basicamente para fazer um PROCV em umas células específicas. Como mexo com mais de uma planilha preciso que esse código rode somente quando a aba que eu preciso esteja aberta, já tentei usar sheet("DAQ").Selected e sheet("DAQ").Selected, mas dentro do meu código tem um comando para que aquela macro fique sendo executada a cada 1 segundo, pois caso alguém altere algum valor, na hr que roda a macro ele corrige o valor alterado, e como fica rodando ele fica selecionando a aba a cada 1 segundo e se eu abro outra aba volta para aba DAQ e se abro outra planilha da erro. Eu pensei em colocar um If, para que rode somente quando a aba DAQ seja aberta, mas os dois comandos que coloquei não deram certo. Segue abaixo o meu código Private Sub TestProcv() Dim i As Integer FinalRow = Cells(Rows.Count, 1).End(xlUp).Row 'conta da última até a primeira linha preenchida' For i = 3 To FinalRow 'coluna que vai ser feita a busca' Cells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 5, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 4) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 3, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 5) = Application.WorksheetFunction.VLookup(Cells(i, 2), Worksheets("tab").Range("A1:E155"), 2, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(i, 9) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 3, 0) 'procv dentro da coluna 3 em todas as linhas' Cells(i, 11) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 4, 0) 'procv dentro da coluna 4 em todas as linhas' Cells(i, 13) = Application.WorksheetFunction.VLookup(Cells(i, 8), Worksheets("Plan1").Range("B73:F672"), 5, 0) 'procv dentro da coluna 5 em todas as linhas' Cells(3, 6) = FinalRow - 3 Next i Application.OnTime Now + TimeValue("00:00:01"), "TestProcv" 'faz o programa rodar num intervalo de 1 seg'. End Sub
  12. @osvaldomp Boa tarde. Eu acabei conseguindo fazer o que eu queria, unica coisa que ficou meio grande foi o código. Mas ta tranquilo.
  13. Tenho que imprimir umas planilhas e como são várias planilhas pensei em usar CheckBox para selecionar pelas CheckBox quais planilhas desejo imprimir, porém sou bem leigo em VBA. Eu fiz um código para fazer essas impressões mas ele faz a impressão de todas as planilhas, o código está grande pois eu precisava de colunas específicas para imprimir e foi a maneira que achei para executar essa função. Nesse código abaixo tem 3 planilhas para imprimir, mas acontece o que foi dito, ele imprime as 3 abas mesmo não selecionando nenhuma CheckBox Private Sub imprimirtth_Click() If AUSTENIT.Value = True Then 'Valor que teóricamente iria executar o código abaixo caso a CheckBox estivesse selecionada' Sheets("FORNO TT - 161009").Select For coluna = 15 To 67 Columns(coluna).Hidden = True Next If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text > 13 & TextBox1.Text < 53 Then For coluna = TextBox1.Text + 1 To TextBox1.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text > 13 & TextBox2.Text < 53 Then For coluna = TextBox2.Text + 1 To TextBox2.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text > 13 & TextBox3.Text < 53 Then For coluna = TextBox3.Text + 1 To TextBox3.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text > 13 & TextBox4.Text < 53 Then For coluna = TextBox4.Text + 1 To TextBox4.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text > 13 & TextBox5.Text < 53 Then For coluna = TextBox5.Text + 1 To TextBox5.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text >= 1 & TextBox1.Text <= 13 Then For coluna = TextBox1.Text + 53 To TextBox1.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text >= 1 & TextBox2.Text <= 13 Then For coluna = TextBox2.Text + 53 To TextBox2.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text >= 1 & TextBox3.Text <= 13 Then For coluna = TextBox3.Text + 53 To TextBox3.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text >= 1 & TextBox4.Text <= 13 Then For coluna = TextBox4.Text + 53 To TextBox4.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text >= 1 & TextBox5.Text <= 13 Then For coluna = TextBox5.Text + 53 To TextBox5.Text + 53 Columns(coluna).Hidden = False Next End If End If ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" '-----------------------------------------------------------------------------------------------------------------------------' If REVENIMENTO.Value = True Then Sheets("REVENIMENTO TT - 161009").Select For coluna = 15 To 67 Columns(coluna).Hidden = True Next If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text > 13 & TextBox1.Text < 53 Then For coluna = TextBox1.Text + 1 To TextBox1.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text > 13 & TextBox2.Text < 53 Then For coluna = TextBox2.Text + 1 To TextBox2.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text > 13 & TextBox3.Text < 53 Then For coluna = TextBox3.Text + 1 To TextBox3.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text > 13 & TextBox4.Text < 53 Then For coluna = TextBox4.Text + 1 To TextBox4.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text > 13 & TextBox5.Text < 53 Then For coluna = TextBox5.Text + 1 To TextBox5.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text >= 1 & TextBox1.Text <= 13 Then For coluna = TextBox1.Text + 53 To TextBox1.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text >= 1 & TextBox2.Text <= 13 Then For coluna = TextBox2.Text + 53 To TextBox2.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text >= 1 & TextBox3.Text <= 13 Then For coluna = TextBox3.Text + 53 To TextBox3.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text >= 1 & TextBox4.Text <= 13 Then For coluna = TextBox4.Text + 53 To TextBox4.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text >= 1 & TextBox5.Text <= 13 Then For coluna = TextBox5.Text + 53 To TextBox5.Text + 53 Columns(coluna).Hidden = False Next End If End If ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" '-----------------------------------------------------------------------------------------------------------------------------' If LAVADORA.Value = True Then Sheets("LAVADORA TT - 161009").Select For coluna = 15 To 67 Columns(coluna).Hidden = True Next If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text > 13 & TextBox1.Text < 53 Then For coluna = TextBox1.Text + 1 To TextBox1.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text > 13 & TextBox2.Text < 53 Then For coluna = TextBox2.Text + 1 To TextBox2.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text > 13 & TextBox3.Text < 53 Then For coluna = TextBox3.Text + 1 To TextBox3.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text > 13 & TextBox4.Text < 53 Then For coluna = TextBox4.Text + 1 To TextBox4.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text > 13 & TextBox5.Text < 53 Then For coluna = TextBox5.Text + 1 To TextBox5.Text + 1 Columns(coluna).Hidden = False Next End If If TextBox1.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox1.Text >= 1 & TextBox1.Text <= 13 Then For coluna = TextBox1.Text + 53 To TextBox1.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox2.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox2.Text >= 1 & TextBox2.Text <= 13 Then For coluna = TextBox2.Text + 53 To TextBox2.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox3.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox3.Text >= 1 & TextBox3.Text <= 13 Then For coluna = TextBox3.Text + 53 To TextBox3.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox4.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox4.Text >= 1 & TextBox4.Text <= 13 Then For coluna = TextBox4.Text + 53 To TextBox4.Text + 53 Columns(coluna).Hidden = False Next End If If TextBox5.Text = "" Then For coluna = 1 To 14 Columns(coluna).Hidden = False Next ElseIf TextBox5.Text >= 1 & TextBox5.Text <= 13 Then For coluna = TextBox5.Text + 53 To TextBox5.Text + 53 Columns(coluna).Hidden = False Next End If End If ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" Unload Me End Sub s que estão ali independente da CheckBox estar selecionada ou não.
  14. Sou iniciante em VBA e estou tendo um problema. Preciso localizar e manter selecionado de 4 a 5 células, porém, essa busca é feita com valores adicionados numa TextBox e depois de selecionadas essas células teria que ocultar as colunas que não estiverem com células selecionadas. Eu consegui fazer a busca dos valores digitados na TextBox e também criei variáveis do tipo Byte para armazenar os valores digitados, não sei se é necessário mas achei q ia precisar e resolvi armazenar em algum lugar os valores. O programa faz a seleção de cada valor 1 de cada vez e eu não consigo selecionar todos de uma vez com o código de localizar. Segue abaixo o Código que eu fiz e uma imagem ta TextBox: Private Sub CommandButton1_Click() Sheets("ALIGATOR CONE - 663194").Select Range("A7:CA7").Select Selection.Find(What:=TextBox1.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select Selection.Find(What:=TextBox2.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select Selection.Find(What:=TextBox3.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select Selection.Find(What:=TextBox4.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select Selection.Find(What:=TextBox5.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select Dim Semana1 As Byte Semana1 = TextBox1.Text Dim Semana2 As Byte Semana2 = TextBox2.Text Dim Semana3 As Byte Semana3 = TextBox3.Text Dim Semana4 As Byte Semana4 = TextBox4.Text Dim Semana5 As Byte Semana5 = TextBox5.Text End Sub
  15. @Hugosena Tem o HD que o amigo ali disse e aconselho você a por um water cooler ou um conjunto bom de air cooler para resfriamento, se você tiver disposto a investir os 4k da pra fazer isso tranquilamente e ainda por um ssd de 240gb

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...