Conditions sur cellules

Résolu
Bonjour,

http://www.cijoint.fr/cij28095225034527.xls

Comme promis voici mon fichier mais comme d’hab j’essaie de l’améliorer sans cesse et à ce propos j’ai une petite question :

Dans la feuil1 j’ai placé :

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Union([I11], [I14], [I17]), [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56]) Is Nothing Then Exit Sub

If Target.Value = "X" Then Call blanc

End Sub

La macro « blanc » doit me permettre en placant une croix dans une des cellules dédiée (I11 par exemple), d’effacer ce qui se trouve de part et d’autre de cette cellule (cad dans l’exemple que j’ai pris donc avec I11 ,
Range("E11:H13").Select
Selection.ClearContents
Range("j11:M13").Select
Selection.ClearContents

Je ne sais vraiment pas comment m’y prendre pour faire quelque chose de simple et efficace

le résultat escompté est visuellement dans l'opération 8 du tableau

merci d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Contributeur
    Bonsoir,

    avec ce que tu donnes (2 plages 3 lignes et 4 colonnes) ça devrait être:
    target.offset(0,-4).resize(3,4).clearcontents
    target.offset(0,1).resize(3,4).clearcontents

    en passant en parametre le range target à ton sub ou bien juste ajouter ces 2 lignes et laisser tomber le sub blanc()

    eric
    1. Bonjour eric
      ci joint mon fichier http://www.cijoint.fr/cij28870434604.xls dans lequel j'ai essayé de joindre tes deux lignes en feuil1;

      si tu peux m'expliquer pour que je comprenne
      merci
  2. Contributeur
    Bonsoir,

    Sois plus rigoureux quand tu écris, et fais un pas à pas quand ça ne marche pas pour voir pourquoi.
    Tu peux utiliser les espions aussi pour trouver les erreurs
    L'erreur n'est pas dans les 2 lignes que tu as ajouté mais dans le if

    Tu as écris:
    If Intersect(Target, Union([I11], [I14], [I17]), [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56]) Is Nothing Then Exit Sub
    remplace par:
    If Intersect(Target, Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56])) Is Nothing Then Exit Sub

    eric
    1. bonsoir

      la remarque est notoire on ne fait jamais assez attention et souvent la réponse est sous nos yeux
      1. bonsoir

        Autant pour moi , je n'avais pas vu.
        merci pour les infos
        et bonne soirée