Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#71501
Olha, eu gostaria de saber como faço para resolver esse "problema":

       - Eu preciso fazer essa análise (imagem dos códigos) para 40 disciplinas, o problema é que não quero copiar e modificar as variáveis (destacada na imagem) 39x, eu queria uma forma de fazer isso mais simples, para que a cada vez que analisar uma disciplina pular para a outra e sendo modificado apenas essas duas variáveis!

EXEMPLO:

Disciplina 1 = o proc_mat deve ser na range("B13") e o LINHA deve iniciar em 15
Disciplina 2 = o proc_mat deve ser na range("B66") e o LINHA deve iniciar em 68
Disciplina 3 = o proc_mat deve ser na range("B119") e o LINHA deve iniciar em 121
.....

Vejam que as linhas não são exatamente a próxima entre uma disciplina e outra, ou seja, tem que ir alterando sempre!

Alguém me ajuda?
Imagem
#71504
Olá, @Wevin7 .

Experimente:
Código: Selecionar todos
 Dim k As Long
  For k = 13 To 119 Step 53
   proc_mat = Sheets("Dashboard (6)").Range("B" & k).Value
   While Sheets("Dashboard (6)").Range("D" & k + 2).Value <> ""
    'coloque o seu código atual aqui
    'a variável LINHA não é utilizada, substitua todas as ocorrências por k + 2
    'estas linhas podem ser excluídas ~~~> LINHA = 15 e LINHA = LINHA + 1
   Wend
  Next k
#71508
Wevin7 escreveu: Colocar o meu código inteiro no campo que mencionou? Seria o código começando a partir de IF até END IF?
Yes, Sir. E também as declarações das variáveis.
A propósito, você não declarou proc_mat, mas declarou proc_data que não é utilizada. LINHA pode ser excluída.
#71509
osvaldomp escreveu: 27 Jun 2022 às 14:18
Wevin7 escreveu: Colocar o meu código inteiro no campo que mencionou? Seria o código começando a partir de IF até END IF?
Yes, Sir. E também as declarações das variáveis.
A propósito, você não declarou proc_mat, mas declarou proc_data que não é utilizada. LINHA pode ser excluída.
Já corrigi essa declaração!

Agora como que ficou (imagem), porém não funciona, pois não está pulando linha a linha em "proc_ass"
Imagem
#71510
Você poderia disponibilizar uma amostra do seu arquivo Excel com o seu código original instalado ?

Veja abaixo da minha assinatura como anexar arquivos aqui no fórum.
#71511
osvaldomp escreveu: 27 Jun 2022 às 14:37 Você poderia disponibilizar uma amostra do seu arquivo Excel com o seu código original instalado ?

Veja abaixo da minha assinatura como anexar arquivos aqui no fórum.
Desconsidere essas linhas:
Sheets("Dados 2").Range("T3").Value = Sheets("Dashboard (6)").Range("I" & LINHA).Value
Sheets("Dados 2").Range("U3").Value = proc_ass

Abaixo:
Você não está autorizado a ver ou baixar esse anexo.
#71529
Wevin7 escreveu: 27 Jun 2022 às 14:26 ... pois não está pulando linha a linha em "proc_ass"
Fiz a correção da minha falha. No código abaixo acrescentei a variável "v" para incrementar a linha pesquisada.

Código: Selecionar todos
Sub revisão_atualV2()
 Dim LINHA As Long, assunto As Long, k As Long, nome2 As String
 Dim proc_mat As String, proc_ass As String, v As Long
  For k = 13 To 119 Step 53
   proc_mat = Sheets("Dashboard (6)").Range("B" & k).Value
   While Sheets("Dashboard (6)").Range("D" & k + 2 + v).Value <> ""
    If Sheets("Dashboard (6)").Range("I" & k + 2 + v).Value = CDate(Sheets("Dados").Range("Q39").Value) Then 'comparar Coluna I com a data de hoje, se igual OK
     proc_ass = Sheets("Dashboard (6)").Range("D" & k + 2 + v).Value 'procurar assunto na data procurada
     'Sheets("Dados 2").Range("T3").Value = Sheets("Dashboard (6)").Range("I" & k + 2).Value 'data de revisão da primeira disciplina
     'Sheets("Dados 2").Range("U3").Value = proc_ass 'assunto atual da revisão da data atual
     MsgBox "DISCIPLINA: " & proc_mat & " - " & proc_ass & vbLf & "linha " & k + 2 + v 'mensagem com os resultados
    End If
    v = v + 1
   Wend
   v = 0
  Next k
End Sub
#
dica - para responder clique em +Resposta, localizada abaixo da última postagem. Só clique em Responder com citação se necessário.
#71534
Bom dia, Osvaldo (@osvaldomp )

Caaaara, deu certiiinho, gratidão demais, de verdade, não sei nem o que dizer direito!

Agora irei estudar o código e vê onde eu coloco a msgbox ao analisar tudo e vê que nenhum bate com a data de hoje

MsgBox "Não há Nenhuma Revisão para Hoje!", vbInformation, "REVISÃO DE HOJE"
#71536
Wevin7 escreveu: 28 Jun 2022 às 11:09 Agora irei estudar o código e vê onde eu coloco a msgbox ao analisar tudo e vê que nenhum bate com a data de hoje
Segue uma ideia em vermelho abaixo.
Dim proc_mat As String, proc_ass As String, v As Long
If Application.CountIf(Sheets("Dashboard (6)").[I:I], Date) = 0 Then
MsgBox "NENHUMA REVISÃO PARA HOJE"
Exit Sub
End If

For k = 13 To 119 Step 53
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord