Excel VBA macro code if ... then ...
Résolu/Fermé
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 ...
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Le code ascii - Guide
- Code puk bloqué - Guide
- Word et excel gratuit - Guide
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
28 nov. 2011 à 09:18
28 nov. 2011 à 09:18
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
29 nov. 2011 à 07:42
29 nov. 2011 à 07:42
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
29 nov. 2011 à 02:09