Ir ao conteúdo

excel n° que falta


Netrox92

Posts recomendados

Postado

Ola,

Tenho uma planilha onde a coluna A tem varios números

Ex: ----- A -------

--------- 1 -------

--------- 2 -------

--------- 3 -------

--------- 5 -------

--------- 6 -------

--------- 8 -------

--------- 9 -------

--------- 10 -------

Como se ve no exemplo, estão faltando os números "4" e "7". Gostaria de um código de vba que me fale os números que estão faltando entre dois números que variam.

O primeiro e segundo números são uma variavel.

Ex:

N°1= 78

N°2= 135

ou seja, na coluna "A" tem varios números que estão entre esses 2 números.

Ex: ----- A -------

--------- 78 -------

--------- 79 -------

--------- 83 -------

--------- 84 -------

--------- 85 -------

--------- 86 -------

--------- 87 -------

--------- 88 -------

......

....

--------- 131 -----

--------- 134 -----

--------- 135 -----

Se alguem souber como faz, ficarei grato.

Obrigado, abraços

Postado

Segue amigo Netrox:

Altere as letras em vermelho para "M I N" (Sem aspas e Sem espaço), o fórum está alterando automaticamente.

Sub N°QueFalta()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim LR, i As Long
Dim NotFound As String
Dim Count, Minimal, Maximal As Double

LR = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Minimal = Evaluate("[B][COLOR="Red"]MIN[/COLOR][/B](A:A)") 'Trocadilho com o gênero músical Minimal xD
Maximal = Evaluate("MAX(A:A)")

For i = Minimal To Maximal

Count = WorksheetFunction.CountIf(Range("A1:A" & LR), i)
If Count = 0 Then NotFound = NotFound & i & ","

Next

NotFound = Mid(NotFound, 1, Len(NotFound) - 1)
MsgBox "Estão faltando os números:" & Chr(13) & Chr(13) & NotFound, vbExclamation, "Atenção"

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Abraços

Postado

Ola,

Eu pensei que havia resolvido porém nao foi.

Tem como mudar esse código, para que ele limite as linhas da coluna "A" que irão ser verificadas? por exemplo os numeros começam a aparecer na linha "9" e essa lista vai até a linha 700.

Outra coisa, tem como eu especificar qual é o 1° número e o ultimo número?? Poder ser por meio de alguma celula no excel ou atraves de um TextBox

Obrigado mais uma vez.

Postado

Não tenho certeza se entendi direito o que deve ser modificado.

Experimente este código:

Sub N°QueFalta()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim FR, LR, i As Long
Dim NotFound As String
Dim Count, Minimal, Maximal As Double

FR = Range("[B][COLOR="Red"]A1[/COLOR][/B]").Value
LR = Range("[COLOR="red"][B]A2[/B][/COLOR]").Value
Minimal = Evaluate("[B][COLOR="red"]MIN[/COLOR][/B](A" & FR & ":A" & LR & ")")
Maximal = Evaluate("MAX(A" & FR & ":A" & LR & ")")

For i = Minimal To Maximal
Count = WorksheetFunction.CountIf(Range("A" & FR & ":A" & LR), i)
If Count = 0 Then NotFound = NotFound & i & ","
Next

NotFound = Mid(NotFound, 1, Len(NotFound) - 1)
MsgBox "Estão faltando os números:" & Chr(13) & Chr(13) & NotFound, vbExclamation, "Atenção"

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Obs: FR é a variável com o número da primeira célula e LR o da Segunda.

Não esqueça de corrigir o "mim" para "M I N"

Abraços

Postado

Ola Wendell Menezes,

Obrigado pela resposta.

Deixa eu tentar me expressar melhor.

Na minha planilha, a lista com os números começa na celula "A9" e vai até a celula "A700".

Dentro dessa lista os números variam, podendo ser o MENOR= 237 e o MAIOR= 522

Do mesmo jeito que pode ser o MENOR= 1 e o MAIOR= 150

O que eu preciso é que:

• Eu escreva qual vai ser o MENOR e o MAIOR ( posso escrever em 2 celulas ou escrever no TextBox do VBA).

• Preciso que seja verificado apenas as celulas ("A9:A700").

Obrigado de novo

Abraços

Postado

Olá, tente agora (Altere A1, A1 e mim) conforme explicado no post anterior:

Sub N°QueFalta()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim i As Long
Dim NotFound As String
Dim Count, Minimal, Maximal As Double

Minimal = Range("A1").Value
Maximal = Range("A2").Value

For i = Minimal To Maximal
Count = WorksheetFunction.CountIf(Range("A9:A700"), i)
If Count = 0 Then NotFound = NotFound & i & ","
Next

If NotFound = "" Then MsgBox "Nenhum número está faltando entre " & Minimal & " e " & Maximal & "!", vbInformation, "Aviso": Exit Sub
NotFound = Mid(NotFound, 1, Len(NotFound) - 1)
MsgBox "Estão faltando os números:" & Chr(13) & Chr(13) & NotFound, vbExclamation, "Atenção"

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!