Autoriser une macro en fonction d'une cellule

M

Mathieu

Guest
Bonjour, je fais appel à vous aujourd'hui car je suis bloqué sous Excel 2003. Je n'y connais rien en VBA et mes tentatives de programmation n'ont rien donné de probant.

Voici ce que je souhaite obtenir:
J'ai un fichier où je voudrais autoriser l'exécution d'une macro en fonction de la valeur d'une case de reférence ('oui' ou 'non')

Et je n'arrive pas à faire fonctionner la macro...

Sub Effacer()

If ActiveCell = 'oui' Then GoTo 1

1 If MsgBox('Effacer entièrement les cellules TOTAL OA ?', vbYesNo + vbCritical) = vbYes Then
Range('CL25OA').ClearContents
Range('ASPEHOA').ClearContents
Else
End If
End Sub

Celle-ci marche qu'il y ait oui ou non dans la cellule active. Si je rajoute Else en dessous du premier if, il me dit qu'il n'a pas de if... Au secours !

Merci d'avance !
Mathieu
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

tu n'as pas besoin du goto

Sub Effacer()

If ActiveCell = 'oui' Then

If MsgBox('Effacer entièrement les cellules TOTAL OA ?', vbYesNo + vbCritical) = vbYes Then
Range('CL25OA').ClearContents
Range('ASPEHOA').ClearContents
Else
End If
end if
End Sub

Bon courage
 
M

Mathieu

Guest
Oh grand merci !
Je m'étais compliqué tout seul...

Du coup je ne m'arrête pas là, ça ne paie pas de mine mais c'est quand même ma première macro alors fierté oblige...

Sub Effacer()

If Range('C8') = 'oui' Then
If MsgBox('Effacer entièrement les cellules TOTAL OA ?', vbYesNo + vbCritical) = vbYes Then
Range('CL25OA').ClearContents
Range('ASPEHOA').ClearContents
End If

Else: GoTo 2
End If

2 If Range('C8') = 'non' Then
If MsgBox('Veuillez écrire OUI dans la case C8 pour autoriser l'effacement', vbOKOnly) Then
Else
End If
End If
End Sub

J'ai rajouté une référence à une case précise et une boîte d'alerte au cas où il y ait non et que l'on appuie tout de même sur le bouton... Après tout ça je suis fatigué moi...

Merci Pascal !
 

PascalXLD

XLDnaute Barbatruc
Modérateur
re

toujours pas besoin de goto

Sub Effacer()

If Range('C8') = 'oui' Then
If MsgBox('Effacer entièrement les cellules TOTAL OA ?', vbYesNo + vbCritical) = vbYes Then
Range('CL25OA').ClearContents
Range('ASPEHOA').ClearContents
End If

Else
MsgBox(\\'Veuillez écrire OUI dans la case C8 pour autoriser l'effacement\\', vbOKOnly)

End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 974
Membres
103 995
dernier inscrit
Flodk