Tester 3 conditions

chiken-little Messages postés 168 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je voudrais savoir dans VB sur excel comment tester 3 condition (par exemple, si le nom a déjà été entré + le prénom déjà entré + le code postal déjà entré)

Comment procéder à ca sur visual basic ?

Merci d'avance pour vos réponses.

4 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    En supposant que les variables nom, prenom, codepostal ont été affectées (par ex : nom = Cells(linom, liprenom) )
    If nom<> "" and prenom <> "" and codepostal <> "" then
    ton traitement
    else
    message d'erreur
    end if

    Cdlmnt
    0
    1. chiken-little Messages postés 168 Statut Membre
       
      Je met ca directement dans le code VBA ?
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      Oui, à adapter bien sur
      Peux tu donner le code de la procedure ?
      0
    3. chiken-little Messages postés 168 Statut Membre
       
      Car en fait j'ai des private sub nom_beforeUpdate, ... private sub prenom_beforeUpdate, et donc dans quel procedure je doit mettre ca ?
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Perso, je mettrai un bouton btOK qui va tester les textbox avec quelque chose comme ça

    Private Sub btOK_Click()
    If tbNom.Text = "" Or tbPrenom.Text = "" Or tbCodePostal.Text = "" Then
    MsgBox "Données incomplètes"
    Else
    MsgBox "Suite de la procedure"
    End If
    End Sub

    Cdlmnt
    0
    1. chiken-little Messages postés 168 Statut Membre
       
      Mais en fait, cette recherche de condition s'effectue dans une base de donnée, donc quand j'entre mes champs du userform, celà recherche si celà n'a pas déjà été entré
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    OK, ça change tout
    En fait, tu entres tes coordonnées via ton UF, et tu veux tester si le contact existe dans ta BD, c'est ça ?
    Il te faut utiliser la méthode Find sur la colonne des noms de ta BD, si le nom existe tu récupères la ligne correspondante et tu testes dans cette ligne si le prénom et le code sont identiques à ceux saisis
    Cdlmnt
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Re,

    Quelque chose dans ce gout là derrière le bouton OK

    Private Sub btOK_Click()
    Dim nom, prenom, codepostal, celnom As Object
    Dim linom As Long
      If tbNom.Text = "" Or tbPrenom.Text = "" Or tbCodePostal.Text = "" Then
        MsgBox "Données incomplètes"
      Else
        nom = tbNom.Text
        prenom = tbPrenom.Text
        codepostal = tbCodePostal.Text
        With ActiveSheet
          Set celnom = Sheets("BD").Columns("A:A").Find(nom, , , xlWhole)
          If celnom Is Nothing Then
            MsgBox nom & "n'est pas dans la BD"
            ' suite du traitement
          Else
            linom = celnom.Row
            If Sheets("BD").Range("B" & linom).Value <> prenom Or Sheets("BD").Range("C" & linom).Value <> codepostal Then
               MsgBox nom & " " & prenom & " " & codepostal & " n'est pas dans la BD"
               ' suite du traitement
            Else
               MsgBox nom & " " & prenom & " " & codepostal & " est déjà dans la BD"
               ' suite du traitement
            End If
          End If
        End With
      End If
    End Sub

    Cdlmnt
    0