Bonjour tous le monde,

J'ai un gros problème que je n'arrive pas à résoudre ! j'ai sur une sheet une base de donné qui contient dans la colonne C le nom de l'affaire!! Dans une autre sheet "Budget" j'ai dans la colonne D tous les nom d'affaire que le contrôleur de gestion à taper manuellement!!!
Je voudrais tous simplement avec une macro comparer ces deux colonnes et ensuite que le programme m'envoie un msgbox lorqu'il ne trouve pas le nom de l'affaire dans l'onglet budget!
J'ai éssayé toute la journée hier mais vu que je suis un novice en vba, je pense que j'ai fait une erreur dans ma programmation!!

j'ai surement un probléme avec mes boucles

J'espére que j'ai bien expliquer mon probléme!! Au pire voila mon programme

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
   Sheets("DonnéBudget").Activate
    Cells(1).Select
    Selection.CurrentRegion.Select
    Set basebudget = Selection
 
    Sheets("BudgetCoûts").Activate
    range("a5").Select
    Selection.CurrentRegion.Select
    Set recueilbudget = Selection
 
'Recherche les derniéres cellules non vide sur la colonne 1
lignemax2 = Sheets("BudgetCoûts").Cells(65527, 1).End(xlUp).Row
lignemax = Sheets("DonnéBudget").Cells(65527, 1).End(xlUp).Row
 
'boucle de recherche des noms d'affaire sur l'onglet budgetCoûts
 
For a = 2 To lignemax
    chercheerreur = basebudget.Columns(3).Cells(a)
'si le nom d'affaire est vide alors message d'erreur
            If chercheerreur = "" Then
            MsgBox "Attention, il manque des données sur la colonne C de l'onglet DonnéBudget, allez voir à la ligne " & a, vbExclamation + vbOKOnly, "Message d'avertissement"
            End If
Next a
 
'réinitialisation des variables
i = 0
r = 0
a = 0
'message pour prévenir que le nom de l'affaire n'est pas encore créer!!         
For i = 1 To basebudget.Columns(1).Cells.Count
   monaffairebudget = basebudget.Columns(3).Cells(i + 1).Value
 
 
         For r = r To recueilbudget.Columns(1).Cells.Count
         chercheerreur = recueilbudget.Columns(4).Cells(r + 1)
            Do
            i = i
            r = r + 1
             'MsgBox "nombase" & monaffairebudget
             'MsgBox "nombrecueil" & chercheerreur
             If chercheerreur = monaffairebudget Then
             'MsgBox "GREAT"
             GoTo suite2
             ElseIf chercheerreur = Mid(monaffairebudget, 2) Then
             'MsgBox "GREAT"
             GoTo suite2
             ElseIf chercheerreur = "" Then
             'MsgBox "GREAT"
             GoTo suite2
             Else
             MsgBox "Le nom de l'affaire est inconnu, veuillez la créer! Cette erreur dans l'onglet budgetdonné fait référence à la ligne " & i, vbExclamation, "Message d'avertissement"
             End If
             Loop While chercheerreur = monaffairebudget
 
         Next r
suite2:
Next i
je vous remercie d'avance pour votre aide car moi cette macro m'a donné des maux de tête

oui je suis obligé de faire en vba car c'est une base de donné que l'on actualise tous les mois!!! C'est ça le probléme!! Le dossier de donné fait pour l'instand 300 lignes mais je n'ai que les données de janvier