Bonjour à tous,
J'utilise les codes ci-dessous et je voudrais savoir si quelqu'un peut les contrôler car, les codes fonctionnent apparemment comme il faut, mais par contre, lorsqu'on encode une donnée, il prend 10 secondes environ avant qu'on puisse encoder une seconde donnée. La vérification est très (trop) longue.
Il y a donc peut-être une amélioration à apporter.
Pour des raisons professionnelles, je ne peux vous joindre le fichier correspondant.
Merci d'avance poiur votre aide.
Pasqi
Code se trouvant dans les 3 feuilles (Celles où on encode des données qui seront vérifiées par les codes ci-joints).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As Boolean
With Target
If .Count > 1 Then Exit Sub
If .Value = Empty Then Exit Sub
If .Row < 4 Then Exit Sub
Select Case .Column
Case 3
.Value = UCase(.Value)
B = verif.exe(Me.Cells(Target.Row, 3), Me.Cells(Target.Row, 4))
Case 4
.Value = Application.Proper(.Value)
B = verif.exe(Me.Cells(Target.Row, 3), Me.Cells(Target.Row, 4))
Case 7, 8, 10, 11, 12
.Value = UCase(.Value)
End Select
If B = True Then
Me.Cells(Target.Row, 3) = ""
Me.Cells(Target.Row, 4) = ""
End If
End With
End Sub
et voici le code se trouvant dans un module appelé "vérif"
Public Function exe(prenom As String, nom As String) As Boolean
Dim i As Integer
exe = False
For i = 3 To ListeRouge.Cells(65535, 8).End(xlUp).Row
If VBA.UCase(prenom) Like VBA.UCase(ListeRouge.Cells(i, 8)) Then
If VBA.UCase(nom) Like VBA.UCase(ListeRouge.Cells(i, 9)) Then
MsgBox ("Merci de contacter le service du personnel")
exe = True
End If
End If
Next i
End Function