Comment créer une macro

Bonjour,

Voici mon problème. Dans un fichier excel je voudrais rendre un champ obligatoire (y mettre une date) si et seulement si dans la cellule de gauche est indiqué "Décision CCL"

Donc ça donnerait
F8 : décision CCL G8 : date obligatoire
F9 : décision CCL G9 : date obligatoire
F10 : "vide" G10 : "vide"
...

J'ai un peu regarder sur le net pour trouver une solution en excel mais je vois partout qu'il faut faire une macro, seulement je suis vraiment novice en la matière.

Quelqu'un aurait-il la patience de m'aider.

Merci d'avance

Bon après midi

3 réponses

  1. Contributeur
    Si tu veux simplement afficher "date obligatoire" alors c'est simple : dans G8 tu auras un code du genre

    =SI(F8="décision CCL", "date obligatoire", "")

    Qu'en penses-tu ?

    0
    1. J'y ai pensé mais la formule est écrasée dès que tu indiques une date et il se peut que le commentaire "décision CCL" soit changer par un autre qui ne nécessite plus de date.

      Merci à toi
      0
  2. Contributeur
    Alors déjà je corrige ma formule : il faut mettre des points virgules à la place des virgules.

    Ensuite, normalement la modification du F8 induira la mise à jour de G8...
    Mais c'est vrai que le problème de l'écrasement en cas de mise en place d'une date est gênant...

    Je vais y réfléchir !
    0
    1. En effet, ça met bien à jour la cellule date, mais comme tu dis, il reste l'éventualité d'un changement de commentaire.
      Merci pour ton aide
      0
  3. Contributeur
    À ce moment-là, il faut se pencher du côté du Visual Basic.
    Une fois ta feuille Excel ouverte, appuie sur ALT+F11.

    Tu obtiens un espace de codage sur ta feuille.
    Je ne sais plus exactement comment faire en sorte que cela se mette à jour tout le temps, mais tu vas devoir insérer un petit algorithme qui parcourra les colonnes F et G.

    Si F# contient "Décision CCL" et G# ne contient pas de date alors écrire "Date obligatoire" dans G#
    Sinon, ne rien faire.

    Connais-tu les rudiment du Visual Basic ?
    Je ne me souviens plus de la syntaxe, tout ce que je sais c'est que tu auras une boucle en while (appliquer ça sur toutes les lignes dans que F# n'est pas vide), et que tu iras fouiller et modifier les Worksheet.Cells(F,i).value...

    Bon courage, j'essayerai de t'aider plus tard si tu n'avances pas.
    0
    1. Ca à l'air bien compliqué tout ça.
      En fait j'y connais rien en Visual Basic mais je vais quand même essayer.

      Merci beaucoup pour ton aide.
      0