Excel VBA macro code if ... then ...
Résolu
aladdin1234
-
aladdin1234 -
aladdin1234 -
Bonjour,
Je suis débutant avec excel et je n'y connais absolument rien en macro VBA. Quelqu'un aurait-il la gentillesse de me proposer un code pour une macro réalisant ceci: si d5="" (cellule vide) alors modifier le contenu des cellules c4 à c33 de façon à ce que toutes ces cellules deviennent vides elles aussi (=""). Je veux que la macro s'exécute à chaque fois que le contenu de la cellule d5 est modifié. Enfin, j'aimerais savoir comment régler les paramètres de sécurité d'excel afin que la macro s'exécute sans problèmes (éviter la demande d'autorisation à chaque utilisation du classeur). Merci!
Je suis débutant avec excel et je n'y connais absolument rien en macro VBA. Quelqu'un aurait-il la gentillesse de me proposer un code pour une macro réalisant ceci: si d5="" (cellule vide) alors modifier le contenu des cellules c4 à c33 de façon à ce que toutes ces cellules deviennent vides elles aussi (=""). Je veux que la macro s'exécute à chaque fois que le contenu de la cellule d5 est modifié. Enfin, j'aimerais savoir comment régler les paramètres de sécurité d'excel afin que la macro s'exécute sans problèmes (éviter la demande d'autorisation à chaque utilisation du classeur). Merci!
A voir également:
- Excel VBA macro code if ... then ...
- Code ascii - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Code puk bloqué - Guide
2 réponses
Bonjour,
1) à mettre dans le code de la feuille concernée :
2)
Je te déconseille de désactiver le contrôle des macros.
Par contre tu peux te créer une signature, 'certificat numérique pour les projet VBA' dans les outils Office.
Ensuite dans VBE menu 'outils / signature electronique...' signer ton projet et l'enregistrer.
A l'ouverture du fichier tu pourras choisir d'accepter toujours cette signature, il ne te demandera plus rien.
eric
1) à mettre dans le code de la feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [D5]) Is Nothing Then If [D5] = "" Then [C4:C33].ClearContents End If End Sub
2)
Je te déconseille de désactiver le contrôle des macros.
Par contre tu peux te créer une signature, 'certificat numérique pour les projet VBA' dans les outils Office.
Ensuite dans VBE menu 'outils / signature electronique...' signer ton projet et l'enregistrer.
A l'ouverture du fichier tu pourras choisir d'accepter toujours cette signature, il ne te demandera plus rien.
eric
aladdin1234
Merci Éric! J'ai essayé le code que tu m'as proposé pour la macro mais quand j'efface la cellule D5, la macro s'exécute en boucle infinie et VBA m'envoie un message d'erreur. Quelle est la solution? Concernant le certificat numérique et la signature électronique, je l'ai fait et ça fonctionne bien !
Bonjour,
Tu as d'autres macros qui en sont la cause.
Celle-ci s'exécute au pire 2 fois.
Si tu veux vraiment qu'elle ne s'exécute qu'une fois (dans l'hypothèse ou elle est seule) alors :
eric
Tu as d'autres macros qui en sont la cause.
Celle-ci s'exécute au pire 2 fois.
Si tu veux vraiment qu'elle ne s'exécute qu'une fois (dans l'hypothèse ou elle est seule) alors :
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [D5]) Is Nothing Then Application.EnableEvents = False If [D5] = "" Then [C4:C33].ClearContents Application.EnableEvents = True End If End Sub
eric