Ecrire un message et forcer l'arrêt de la macro
s
Bonjour,
voici mon code qui fait une addition de cellules. Je cherche à faire une vérification des cellules et j'aimerai que si les conditions ne soient pas remplies afficher une erreur et arrêter la macro (afin de pas fausser inutilement le résultat de l'addition).
Sub Macro1()
Dim chem As String 'déclare la variable chem (CHEMin d accès)
Dim fs, d, f1, fd 'déclare les variables fs, d, f1 et fd
Dim cel As Range 'déclare la variable cel (CELlule)
Dim cl As Workbook 'déclare la varaible cl (CLasseur)
Dim t As Double 'déclare la variable t (Total)
'***********************
'ouverture des classeurs
'***********************
chem = ThisWorkbook.Path & "\" 'définit le chemin, ici c'est le dossier courant
Set fs = CreateObject("Scripting.FileSystemObject") 'définit la variable fs (Fichiers Système)
Set d = fs.GetFolder(chem) 'definit la variable d (dossier)
Set fd = d.Files 'définit la variable fd (Fichiers du Dossier)
For Each f1 In fd 'boucle sur tous les fichier du dossier
If f1.Name <> "Carita - TOTAL.xls" Then Workbooks.Open chem & f1.Name 'ouvre le fichier
Next f1
For Each cel In ThisWorkbook.Sheets("CARITA 2010 Mkt Plan FORECAST").Range("L10:Q501") 'boucle 1 : sur toutes les cellules cel de la plage L10:Q501 de l'onglet "CARITA 2010 Mkt Plan FORECAST"
If cel.Interior.ColorIndex = 38 Then 'condition 1 : si le couleur de fond de la cellule est rose
For Each cl In Workbooks 'boucle 2 : sur tous les classeurs ouverts
If cl.Name <> ThisWorkbook.Name Then 'condition 2 : si le nom du classseur est différent du nom de celui-ci
[b] If cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Cells(10, 8).Value <> 3197000 Or _
cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Cells(501, 8).Value <> 7992607 Then MsgBox "Il y a une erreur dans la feuille &cl&"
End Sub[/b]
'redéfinit la variable t si la cellule correspondante est numérique
If IsNumeric(cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Range(cel.Address)) Then t = t + CDbl(cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Range(cel.Address))
End If 'fin de la condition 2
Next cl 'prochain classeur de la boucle 2
cel.Value = t 'place t dans la cellule cel
t = 0
End If 'fin de la condition 1
Next cel 'prochaine cellul cel de la boucle 1Au niveau du texte en gras il y a une erreur if sans end if.
Merci de m'aider
Bonjour
Je n'ai pas vu l'erreur (a part le fait qu'il manque End Sub)
Sinon dans le code tu peux utiliser
If cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Cells(10, 8).Value <> 3197000 Or _
cl.Sheets("CARITA 2010 Mkt Plan FORECAST").Cells(501, 8).Value <> 7992607 Then
MsgBox "Il y a une erreur dans la feuille " & cl.Name
Exit Sub
End Ifs
Merci ça marche nikel