none
Ajuda (Meter Mensagem de Erro) RRS feed

  • Pergunta

  • Bom diaa meus amigos, 

    Estou precisando de uma ajudinha no meu "projeto" nunca mexi em Excel Vba e pediram-me para fazer um projeto ...
    Tou tentando ! Mas agora estou com duvidas! Faltam-me mensagens de erro! Por isso caso voces possam agradeceria ajuda! Passo a explicar -->

    No UserForm3 --> O userform é de registo de utilizadores!

    1ª -Preciso que o programa nao deixe registar o utilizadores com o mesmo numero de empresa, O nome da Planilha onde sao introduzidos os valores é Util_Reg. Nao podera introduzir o Utilizador caso o numero seja Igual !
    2ª- Tenho 3 ComboBox! Sendo uma para selecionar o Armazem a que pretencem e as outros duas para selecionar os armazens a que nao se pode mecher, Preciso que não deixe seleccionar valores iguais em nenhuma das 3 combobox!

    No UserForm4 --> O Userform é de Registo de Armazéns

    Preciso que verifique os armazéns e caso tentemos inserir um Armazém que já exista diga que Já existe e que não pode introduzir outra vez, e que não deixe voltar a introduzir um armazém igual!

    No UserForm5 --> O Userform Elimina Armazéns Pelo ID dos mesmos!

    Preciso que se tentarmos eliminar um Armazém que não exista ele avise que não existe!

    No UserForm6 --> O Userform Elimina Utilizadores Pelo ID dos mesmos!

    Preciso que se tentarmos eliminar um Utilizador que não exista ele avise que não existe!

    No UserForm9 --> O Userform Elimina Números de Semanas Ja inseridos!

    Preciso que se tentarmos eliminar um numero que não exista ele avise!

    Agradeço desde Ja! 

    Existe Maneira de enviar o Anexo? Seria muito mais facil para voces ajudarem :/

    segunda-feira, 27 de março de 2017 07:45

Todas as Respostas

  • Exibirei aqui os codigos 

    UserForm 3 -->

            If TextBox1 = "" Then
                MsgBox "Insira os Dados No Campo Nome!"
                TextBox1.SetFocus
            Else
        
            If TextBox2 = "" Then
                MsgBox "Insira o Numero do Trabalhador No Campo!"
                TextBox2.SetFocus
               Else
               
               If TextBox3 = "" Then
                MsgBox "Introduza a Data!"
                TextBox1.SetFocus
            Else
        
            If ComboBox1 = "" Then
                MsgBox "Selecione o Armazem a Que Pretence!"
                ComboBox1.SetFocus
                Else
                
                If ComboBox2 = "" Or ComboBox3 = "" Then
                MsgBox "Selecione o Armazem Que o Utilizador Tem Excepção!"
                ComboBox1.SetFocus
                Else
        
            If OptionButton1 = "" Or OptionButton2 = "" Or OptionButton3 = "" Then
                MsgBox "Tem que Selecionar Pelo Menos uma Excepção!"
                OptionButton1.SetFocus
                Else
       
         Call Dados_Utilizadores.InserirDados(cond)
          
            MsgBox "Registado Com Sucesso"
            
            TextBox1.Text = ""
            TextBox2.Text = ""
            ComboBox1.Text = ""
            OptionButton1 = False
            OptionButton2 = False
            OptionButton3 = False
            ComboBox1.Text = ""
            ComboBox2.Text = ""
            ComboBox3.Text = ""
    
                    End If
                    End If
                    End If
                    End If
                    End If
                    End If

    Modulo Utilizado para Registar  

    Public Sub InserirDados(cond)
    
    Dim ultimalinha As Long
    Dim Ws1 As Worksheet
    Dim x As Integer
    
    
    Set Ws1 = Worksheets("Util_Reg")
    
    'Encontrar a Ultima Linha Preenchida'
            ultimalinha = Cells(Rows.Count, 1).End(xlUp).Row + 1
    
            'Inserir Dados Na Base de Dados Excel'
            Ws1.Range("B" & ultimalinha).Value = UserForm3.TextBox1
            Ws1.Range("C" & ultimalinha).Value = UserForm3.TextBox2
            Ws1.Range("E" & ultimalinha).Value = UserForm3.ComboBox1
            Ws1.Range("D" & ultimalinha).Value = UserForm3.TextBox3
            Ws1.Range("G" & ultimalinha).Value = UserForm3.ComboBox2
            Ws1.Range("H" & ultimalinha).Value = UserForm3.ComboBox3
            
            
            If UserForm3.OptionButton1 = True Then
            cond = 4
            Ws1.Range("F" & ultimalinha).Value = "1 Vez Por Mês"
            ElseIf UserForm3.OptionButton2 = True Then
            cond = 2
            Ws1.Range("F" & ultimalinha).Value = "2 Vezes Por Mês"
            ElseIf UserForm3.OptionButton3 = True Then
            cond = 1
            Ws1.Range("F" & ultimalinha).Value = "1 Vez Semana"
            End If
            
            ultimalinha = Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    
            Set Ws1 = Worksheets("Util_Reg")
            Set Ws2 = Worksheets("RID")
    
    
            x = Ws2.Range("A2").Value
                
                    x = x + 1
        
    
            Ws1.Range("A" & ultimalinha).Value = x
            Ws2.Range("A2") = x
    
        
    
    End Sub



    USERFORM4 --> 

     If TextBox2 = "" Then
                MsgBox "Campo em Branco! Introduza um Armazem. "
                TextBox2.SetFocus
                Exit Sub
                
                Else
                Call Inserir_Armazens.InserirArm
                 
                 
                 MsgBox "Registado Com Sucesso"
                 
                TextBox2.Text = ""
        

    MODULO UTILIZADO

    Public Sub InserirArm()
    
    Dim ultimalinha As Long
    Dim Ws1 As Worksheet
    
    
    
    Set Ws1 = Worksheets("Armazens")
    
    'Encontrar a Ultima Linha Preenchida'
            ultimalinha = Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            'Inserir Dados Na Base de Dados Excel'
            
            Ws1.Range("B" & ultimalinha).Value = UserForm4.TextBox2
            
            ultimalinha = Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    
    Set Ws1 = Worksheets("Armazens")
    Set Ws2 = Worksheets("RID")
    
    
    x = Ws2.Range("C2").Value
        'Do Until Range("H" & x).Value = ""
            x = x + 1
        
    
    Ws1.Range("A" & ultimalinha).Value = x
    Ws2.Range("C2") = x
            
    End Sub
    

    USERFORM 5 -->

    Dim Ws1 As Worksheet
    Set Ws1 = Worksheets("Armazens")
    Ws1.Select
    Ws1.Range("A2").Select
    For Apagar = 1 To 200
    
    If ActiveCell = TextBox1.Text Then
    ActiveCell.EntireRow.Delete
    
    End If
    ActiveCell.Offset(1, 0).Activate
    Next
    Worksheets("Armazens").Range("A2").Select
    
    MsgBox "Eliminado Com Sucesso!"
    
    TextBox1.Text = ""


    USERFORM 6 -->

    Private Sub CommandButton3_Click()
    Dim Ws1 As Worksheet
    
    Set Ws1 = Worksheets("Util_Reg")
    Ws1.Select
    Ws1.Range("A2").Select
    For Apagar = 1 To 200
    
    If ActiveCell = TextBox1.Text Then
    ActiveCell.EntireRow.Delete
    
    End If
    ActiveCell.Offset(1, 0).Activate
    Next
    Worksheets("Util_Reg").Range("A2").Select
    
    MsgBox "Eliminado Com Sucesso!"
    
    TextBox1.Text = ""
    


    USERFORM 9 --> 

    Private Sub CommandButton1_Click()
    Dim Ws1 As Worksheet, T As Long, Semana As Variant
    
    Set Ws1 = Worksheets("Semanas")
    
    For A = 1 To 10
    
    
    Semana = Me.Controls("TEXTBOX" & A).Value
    
    T = Ws1.Cells(Cells.Rows.Count, 1).End(xlUp).Row
    
    For i = T To 1 Step -1
    
    If CStr(Ws1.Cells(i, 1)) = Semana Then
    
    
    Ws1.Rows(i).EntireRow.Delete
    End If
    
    Next i
    
    Next A
    
    
    Worksheets("Semanas").Range("A1").Select
    
    MsgBox "Semanas Retiradas com Sucesso!"
    
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    TextBox5.Text = ""
    TextBox6.Text = ""
    TextBox7.Text = ""
    TextBox8.Text = ""
    TextBox9.Text = ""
    TextBox10.Text = ""
    
    End Sub

    MUITOOO OBRIGADO AMIGOS <3

    segunda-feira, 27 de março de 2017 07:57