Bonjour,
je suis en train de coder une macro qui doit vérifier, pour un ensemble de cellules, qu'aucune de ces cellules n'est vide, et que sa valeur n'est pas égale à la même cellule dans la feuille précédente.
Pour cela, j'ai écrit cette procédure.
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part CheckData(cellule As Range)
J'obtiens une erreur, alors j'ai essayé d'isoler l'erreur. Voici une macro qui reproduit cette erreur :
Créer un nouveau document Excel.
Remplir, dans la feuille 1 et dans la feuille 2, les cellules A1 à B2 avec des valeurs bidon (par exemple, 1, 2, 3, 0)
Lancer la macro TestToFail
à la ligne
If wsPrevious.Cells.Range(cell.Row, cell.Column) = cell.Value Then
j'obtiens une "Erreur définie par l'application ou par l'objet"
Comment résoudre cette erreur ?
Code VB : 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 Option Explicit Sub TestToFail() Dim ws As Worksheet Dim check As Range Set ws = Worksheets(2) Set check = ws.Cells.Range("A1:B2") Call CheckData(check) End Sub Public Function CheckData(cellule As Range) As Boolean Dim cell As Range For Each cell In cellule If IsEmpty(cell) Then CheckData = False Exit Function End If If Trim(cell.Value) = "" Then CheckData = False Exit Function End If If cellule.Worksheet.Index > 1 Then Dim wsPrevious As Worksheet Set wsPrevious = Worksheets(cell.Worksheet.Index - 1) If wsPrevious.Cells.Range(cell.Row, cell.Column) = cell.Value Then CheckData = False Exit Function End If End If Next cell CheckData = True End Function
Partager