IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA enregistrement non complet


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 54
    Par défaut VBA enregistrement non complet
    Bonsoir,
    Je voudrais que lorsqu'on clique sur mon bouton "btnAjouter" (qui permet d'ajouter un client à ma bdd), il affiche le msg d'erreur si tout n'est pas complet mais qu'il ne me rempli pas un nouvel enregistrement dans ma bdd sans avoir toutes les informations.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    'Procédure permettant d'ajouter un nouveau client dans la base de données
    Private Sub btnAjouter_Click()
        'On teste la saisie des champs dans le formulaire
        If Len(Me.txtNom) = 0 Then
            lblMessage = "Veuillez saisir le nom du client"
            'MsgBox "Veuillez saisir le nom du client"
            Me.txtNom.SetFocus
        ElseIf Len(Me.txtPrenom) = 0 Then
            lblMessage = "Veuillez saisir le prénom du client"
            Me.txtPrenom.SetFocus
        ElseIf Len(Me.txtDateNaissance) = 0 Then
            lblMessage = "Veuillez saisir la date de naissance du client"
            Me.txtDateNaissance.SetFocus
        ElseIf Len(Me.cboProfession) = 0 Then
            lblMessage = "Veuillez sélectionner la profession du client"
            Me.cboProfession.SetFocus
        ElseIf Len(Me.cboPaiement) = 0 Then
            lblMessage = "Veuillez sélectionner la fréquence de paiement"
            Me.cboPaiement.SetFocus
        ElseIf Len(Me.txtNbPersonne) = 0 Then
            lblMessage = "Veuillez saisir le nombre de personne à assurer auprès du client"
            Me.txtNbPersonne.SetFocus
        ElseIf (Me.OptnAcciCorpNon) = False And (Me.OptnAcciCorpOui) = False Then
            lblMessage = "Veuillez choisir si le client prend une assurance d'accidents corporels du client"
            Me.txtPrenom.SetFocus
        Else
            lblMessage = ""
        End If
     
     
        Sheets("Clients").Activate
        Range("A1").Select
        Selection.End(xlDown).Select 'On se positionne sur la dernière ligne non vide
        Selection.Offset(1, 1).Select 'On se décale d'une ligne vers le bas
        ActiveCell = txtNom.Value
        ActiveCell.Offset(0, 1).Value = txtPrenom
        ActiveCell.Offset(0, 2).Value = txtDateNaissance
        ActiveCell.Offset(0, 3).Value = cboProfession
        ActiveCell.Offset(0, 4).Value = cboAssuranceHospi
        If (Me.OptnAcciCorpOui) = True Then
            ActiveCell.Offset(0, 5).Value = "Oui"
        Else
            ActiveCell.Offset(0, 5).Value = "Non"
        End If
        ActiveCell.Offset(0, 6).Value = txtCapitaux
        ActiveCell.Offset(0, 7).Value = txtNbPersonne
     
       With ActiveSheet.ListObjects(1)
            'si dernière ligne du tableau non vide, ajout d'une ligne
            If .ListColumns("Num Client").DataBodyRange.Rows(.ListRows.Count) <> Empty Then .ListRows.Add
            'incrémentation automatique du numéro de client
            .ListColumns("Num Client").DataBodyRange.Rows(.ListRows.Count) = Application.Max(.ListColumns("Num Client").DataBodyRange) + 1
        End With
     
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sparow1 Voir le message
    Bonjour,

    Une solution possible avec cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim LblMessage As String
     
        LblMessage = "Absence de saisie pour ces champs :" & Chr(10)
        If txtNom = "" Then LblMessage = LblMessage & "- Nom" & Chr(10)
        If txtPrenom = "" Then LblMessage = LblMessage & "- Prénom" & Chr(10)
        If txtDateNaissance = "" Then LblMessage = LblMessage & "- Date de naissance" & Chr(10)
        If cboProfession = "" Then LblMessage = LblMessage & "- Profession" & Chr(10)
        If cboPaiement = "" Then LblMessage = LblMessage & "- Fréquence de paiement" & Chr(10)
        If txtNbPersonne = "" Then LblMessage = LblMessage & "- Nombre de personnes à assurer" & Chr(10)
     
        If LblMessage <> "Absence de saisie pour ces champs :" & Chr(10) Then
           MsgBox LblMessage
           Me.txtNom.SetFocus
           Exit Sub
        End If
    J'ai omis la cas pour vos Optionbuttons car s'ils font partie du même GroupName, la question ne se pose pas, c'est soit l'un, soit l'autre. Autrement, il vaut mieux utiliser des contrôles Checkbox, mais ce n'est que mon avis.

Discussions similaires

  1. [Débutant] Enregistrement non souhaité.
    Par Monsieur Peck dans le forum Access
    Réponses: 1
    Dernier message: 11/06/2006, 14h40
  2. Réponses: 4
    Dernier message: 08/06/2006, 23h04
  3. [VBA-E]Fermer completement Excel
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/05/2006, 10h24
  4. Réponses: 1
    Dernier message: 22/03/2006, 12h03
  5. [VBA] MsgBox non definie
    Par coco21 dans le forum Access
    Réponses: 3
    Dernier message: 15/12/2005, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo