Bonjour, je viens vous redemander de l'aide car quelque chose me perturbe dans mon formulaire excel.

Le formulaire est fonctionnel néanmoins lors de la mise en cellule de mes variables, il y a une latence.
Je vous explique : La première cellule se remplit, il y a une latence puis les autres cellules se remplissent.

Cela n'a aucune influence sur la bonne exécution du code mais j'aimerais tout de même régler ça, si c'est possible.

Voici mon code :

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
57
58
59
60
61
62
63
64
65
66
67
68
69
 
Private Sub btVal_Click() 'Validation via le bouton
    Sheets("bdd").Activate
 
    '// ON INITIALISE LES VARIABLES (1 variable : 1 colonne)
    Dim nom As String, prenom As String, sexe As String, daten As Date, NLign As Long, i As Integer
    i = 0
 
    '// CONFIRMATION CASES BIEN REMPLIES - SI VIDE : MSG D'ERREUR
    If TxtNom = "" Or TxtPrenom = "" Or TxtDate = "" Or (OptH = False And OptF = False) Then
        Lbl5.Visible = True
    Else
        '// CONFIRMATION : NOM - AUCUN PB SI CELLULE REMPLIE
        nom = TxtNom
        i = i + 1
 
        '// CONFIRMATION : PRENOM - AUCUN PB SI CELLULE REMPLIE
        prenom = TxtPrenom
        i = i + 1
 
        '// CONFIRMATION : DATE DE NAISSANCE - NB CARACTERES ET FORME
        If Len(TxtDate > 10) Then
            TxtDate = Left(TxtDate, 10) 'On s'arrête à 10 caractères
        End If
 
        If IsDate(TxtDate.Value) = True Then
            daten = TxtDate.Value 'On affecte la date dans la case à une variable daten
            i = i + 1
        Else
            Lbl5.Visible = True
        End If
 
        '// CONFIRMATION : SEXE
        If OptH = True Then
            sexe = "Homme"
            i = i + 1
        Else
            sexe = "Femme"
            i = i + 1
        End If
 
        '// ON TROUVE LA LIGNE OÙ L'ON ECRIRA (montée avec xlUp)
        NLign = Range("A" & Rows.Count).End(xlUp).Row + 1 'Ici on se base sur la colonne A
        'MsgBox NLign
 
        '// ENVOIE DES VARIABLES DANS LES CELLULES
 
        If i = 4 Then
            Range("A" & NLign).Value = nom
            Range("B" & NLign).Value = prenom
            Range("C" & NLign).Value = daten
            Range("D" & NLign).Value = sexe
 
            '// ON (RE)MASQUE LES LABELS D'ERREUR - DE VALIDATION (en cas d'ajout de plusieurs personnes)
            If Lbl5.Visible = True Or Lbl6.Visible = True Then
                Lbl5.Visible = False
                Lbl6.Visible = False
            End If
 
            Lbl6.Visible = True
            Application.Wait Now + TimeValue("00:00:02")
            Lbl6.Visible = False
        Else
            Lbl5.Visible = True
        End If
 
    End If
 
End Sub
Tous les Range sont au même endroit, mais le A s'obstine à s'afficher avant les autres, si vous avez une solution à se problème, j'aimerais bien la connaître.

Merci.