Bonjour,

Je suis débutante en VBA.
J'ai un fichier excel, stocké dans une feuille.
Je souhaiterai avertir l'utilisateur du fichier des données manquantes.
Pour cela, je parcours les lignes de mon tableau et si une cellule manque je le signale à l'utilisateur et je la stocke dans une autre feuille de sorte que la personne n'oublie pas quelles cellules manquent.

J'ai réussi à détecter et à signaler à l'utilisateur les cellules manquantes.
Mais le problème c'est qu'il y a des doublons. J'aimerai avertir une seule fois que la valeur de la cellule manque.
Par exemple :
On va dire que ma table de base c'est celle ci

A          |    B
_______    |___________
Martine    |
Martin     |Prescripteur
Dupond     |
Dupond     | 
Dupond     |
Dumas      |Utilisateur
Martine    |
Gérard     |Utilisateur
Martin     |Prescripteur
Je souhaite vérifier si le champ B est renseigné ou pas.
Si le champ n'est pas renseigné, j'indique à l'utilisateur que A a le champ B non renseigné.
Pour le cas de Dupond, vu que les 3 lignes avec le nom Dupond se suivent, j'arrive à signaler une seule fois à l'utilisateur que le champ B manque.
Je bloque au niveau de Martine. Je signale 2 fois à l'utilisateur que le champ B manque ( car les 2 lignes avec le Nom Martine ne se suivent pas).
Etant donné que je souhaite stocker les noms qui n'ont pas de champ B renseigné dans une autre table, je veux utiliser cette table pour chercher si le champ est renseigné ou pas.

Mon Code actuel ressemble à ça : ( En rouge ce que je veux rajouter mais qui ne fonctionne pas)
_____________________________________________

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
Sub fonction_manquante()

Dim Lig As Long
Dim Nom

Lig = 2

While Cells(Lig, 5) <> ""

    If Cells(Lig, 17) <> "" Then
        
        Lig = Lig + 1
    
    Else
            
         If Range("K" & Lig) = Range("K" & Lig-1) or Range("K" & Lig) = Worksheets("Feuil1").Range("A1:A100") Then

             Lig = Lig + 1
                
         Else
              Worksheets("Feuil1").Range("A1").Value = Worksheets("Données").Range("K" & Lig).Value
              MsgBox "L'utilisateur " & Cells(Lig, 11) & " " & Cells(Lig, 12) & " avec l'IDRH : " & Cells(Lig, 5) & " n'a pas de fonction renseignée.",vbCritical
              Lig = Lig + 1
            
          End If
        
 End If

Wend

End Sub
_______________________________________________

Pour Worksheets("Feuil1").Range("A1").Value = Worksheets("Données").Range("K" & Lig).Value --> Je voudrais que ça colle la valeur à la suite des valeurs existantes (Si il y a 4 lignes non vide, ça colle à la 5ème ligne)


J'espère avoir été clair. Merci à vous de m'avoir lu et j'espère que vous pourrez m'aider.
Bonne journée.