Notifications
Clear all

melhorar IF

3 Posts
2 Usuários
0 Reactions
748 Visualizações
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

hoje meu código IF valida apenas a célula A2, porém eu gostaria de melhorar essa validação.

    If Range("A2") = 123456789 Then
            
    MsgBox "Pode continuar", vbInformation, "aviso"
    
    Range("Tabela1").Select
    Selection.Copy
    Sheets("Plan3").Select
    Range("A2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    
    Else
    
    Application.Visible = False
    
    MsgBox "atenção! você não tem uma licença válida para usar esse sistema.", vbCritical, "erro"
           
    Application.DisplayAlerts = False
    
    Application.Quit
    
    End If

alguém poderia me ajudar?

exemplo:

supondo que na coluna A:A, exista vários cnpj cliente (e não apenas o 123456),

nesse caso o usuário não poderá continuar.

para que o usuário possa continuar, a coluna A:A deve possuir apenas o cnpj cliente 123456 (todas as células devem estar preenchidas com esse número de cnpj para o usuário continuar)

exemplo para travar o usuário

a2=123456
a3=987654 (aqui o if verificou que nem todas as células estão preenchidas com o cnpj 123456 então já parou o usuário)
a4=123456
a5=123456
a6=123456
a7=123456
a8=123456
.=123456
.=123456
.=123456
.=123456

exemplo para continuar

a2=123456
a3=123456
a4=123456
a5=123456
a6=123456
a7=123456
a8=123456
.=123456
.=123456
.=123456
.=123456

agradeço pela atenção de todos.

 
Postado : 09/05/2018 7:33 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Tente:

Sub Macro1()
   Dim ul As Long
   ul = Plan2.Range("A" & Rows.Count).End(xlUp).Row
   
    Sheets("BASE DE DADOS").Select
    For i = 2 To ul
    If Plan2.Range("A" & i).Value <> "123456789" Then
    Application.Visible = False
      
    Application.DisplayAlerts = False
    MsgBox "atenção! você não tem uma licença válida para usar esse sistema.", vbCritical, "erro"
    Application.Quit
    Exit Sub
    End If
    Next i
    Range("Tabela1").Select
    Selection.Copy
    Sheets("Plan3").Select
    Range("A2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    
End Sub

Acredito que isso resolva.

Caso não dê certo, Dê uma lida em laço For Next. Isso vai fazer você subir um degrau no seu aprendizado. Ele é extremamente útil nessa situação.

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 09/05/2018 7:53 am
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Obrigado, deu certinho :D :D

mais independente disso, eu vou seguir o seu conselho e verificar o conteúdo :geek: :geek:

muito obrigado!

 
Postado : 09/05/2018 8:54 am