[VBA-E] Comparaison de donnée + Msgbox
Bonjour tous le monde,
J'ai un gros problème que je n'arrive pas à résoudre :cry: ! 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:
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 :aie:
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 8O