Formule excel

Résolu
Ttomax Messages postés 64 Statut Membre -  
Ttomax Messages postés 64 Statut Membre -
Bonjour,

Je suis à la recherche d'une formule qui m'indiquerai un "X" dans les cases J20,J21,J24,J25 si E15=1.

D'avance merci, bonne soirée

14 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Pourquoi aucune formule ?
    eric
    1
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    La magie en informatique n'existe pas, il n'y a que deux possibilités pour y arriver par formule et par code VBA mais si déjà les formules te posent problème ne parlons pas de VBA et le problème est sans issue
    1
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    ok, à mettre dans le code de la feuille :
    Private Sub Worksheet_Change(ByVal Target As Range) 
        If Intersect(Target, [E15]) Is Nothing Then Exit Sub 
        If [E15] = 1 Then [J21:J22,J24:J25] = "X" 
    End Sub 
    

    eric

    edit: correction de la plage
    1
  4. Ttomax Messages postés 64 Statut Membre 1
     
    oops petite précision, je ne souhaite aucune formules dans les cases J20,21,24,25 , cela rend plus difficile ^^ en tout cas pour moi !! ^^
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Ttomax Messages postés 64 Statut Membre 1
     
    en fait les cases J20,21,24,25 sont amenés à être effacé, voila pourquoi
    0
  7. Ttomax Messages postés 64 Statut Membre 1
     
    je conais un peu VBA, mais dans ce cas, la feuille peut etre scrutée en continue pour que dès que e15 = 1, J21,22,24 et 25 passe à "X"
    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    clic droit sur l'onglet de ta feuille/Visualiser le code
    colle ce code
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [E15]) Is Nothing Then
    If [E15] = 1 Then
    [J21:J22] = "x"
    [J24:J25] = "x"
    End If
    End If
    End Sub

    ou plus court

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [E15]) Is Nothing Then
    If [E15] = 1 Then [J21:J22,J24:J25] = "x"
    End If
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Tu traines mike, mais tu lis mieux que moi. J'ai inclus J23... ;-)
      eric
      0
  9. Ttomax Messages postés 64 Statut Membre 1
     
    merci à vous deux ^^ continuez à faire la course lol

    bon cependant ca marche po, j'ai testé les deux :((
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      si si, ça marche
      0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut Eric,

    Je jongle sur plusieurs discussions et il se fait tard je commence à ne plus avoir les yeux en face les trous

    Bonne soirée je vais me mettre à 180°

    Dans le code on pourrait ajouter l'annulation des x si la valeur en E15 est différente

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [E15]) Is Nothing Then
    If [E15] = 1 Then [J21:J22,J24:J25] = "x"
    If [E15] <> 1 Then [J21:J22,J24:J25] = ""
    End If
    End Sub
    0
    1. Ttomax Messages postés 64 Statut Membre 1
       
      alors oui ca marche, seulement g oublié quelque chose, E15 est le résultat d'une formule
      0
    2. Ttomax Messages postés 64 Statut Membre 1
       
      il y a quelque chose à rajouter dans la formule pour le fait que e15 dépend d'une formule?
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ben oui, ce n'est pas un évènement interceptable.
      Il faut se baser sur la (les) cellule(s) que tu saisis et qui crée une modification en E15
      eric
      0
    4. Ttomax Messages postés 64 Statut Membre 1
       
      OK merci c'est bon ça marche, par contre pour insérer un X dans une cellule ou l'on rentre n'importe quelle valeur, c'est a dire en fait dès lors que l'on inscrit quelque chose dans la case A1,A2 A6 et A8, cela se transforme par un X, c possible sous vba
      0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then
            Application.EnableEvents = False
            Target = "x"
            Application.EnableEvents = True
        End If
    End Sub

    Un seul Sub Worksheet_Change par feuille, il faut tout mettre dans le même et tester les cellules concernées pour chaque petit bout de programme.
    eric
    0
    1. Ttomax Messages postés 64 Statut Membre 1
       
      cool, lorsque je rentre une valeur dans la case, cela me le remplace bien par un X mais par contre je ne peux plus le supprimer ^^
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ben t'as voulu des x, tu en as ! ;-)
      Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then
              Application.EnableEvents = False
              If Target <> "" Then Target = "x"
              Application.EnableEvents = True
          End If
      End Sub

      eric
      0
    3. Ttomax Messages postés 64 Statut Membre 1
       
      lol oui j'en ai c sur, oops g ajouter ta nouvelle formule et c bon je peux effacer, mais g plus mes X :S
      0
    4. Ttomax Messages postés 64 Statut Membre 1
       
      lol, nan c moi je l'ai remplacer, c bon !! ^^ un grand merci Maitre ^^ bonne fin de soirée
      0
  12. Ttomax Messages postés 64 Statut Membre 1
     
    une petite question, pour le remplacement des valeur par X, ca marche par contre lorsque j'efface le contenu de mes cellules concernées, la formule suivante plante...

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then
    Application.EnableEvents = False
    If Target <> "" Then Target = "x"
    Application.EnableEvents = True
    End If
    End Sub
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ce n'est pas une formule mais une macro en vba...
      Chez moi ça marche bien et ça plante ne veut rien dire.
      eric
      0
    2. Ttomax Messages postés 64 Statut Membre 1
       
      OUI une macro!!, donc g "Erreur d'exécution "13" incompatibilité de type dans une fenêtre et lorsque je clic sur débogage "If Target <> "" Then" est surligner en jaune
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      dépose un fichier exemple sur cijoint.fr et colle ici le lien fourni
      0
    4. Ttomax Messages postés 64 Statut Membre 1
       
      voila http://www.cijoint.fr/cjlink.php?file=cj201110/cij4WrPZrZ.xls
      0
    5. Ttomax Messages postés 64 Statut Membre 1
       
      g depose ma formule pour les case g11:L15
      0
  13. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    C'est parce que tu fusionnes les cellules, ça devrait être prohibé, on arrive (presque) toujours à s'en passer.
    C'est la plaie dans les macros, et même hors macro un simple copié-collé et te voilà emm...dé.
    A réserver que pour les titres, et encore...

    En attendant pour te dépanner :
    If Target.Range("A1") <> "" Then Target = "x"
    ça devrait le faire, mais évite vraiment la fusion pour tes tableaux.

    Et plutôt que de lister toutes les cellules, regroupe-les par plage :
    If Not Intersect(Target, Union([G11:K15], ...

    eric
    0
    1. Ttomax Messages postés 64 Statut Membre 1
       
      Impeccable chef ça marche!! cependant pour la présentation d'un tableau la fusion est pratique, maintenant il est vrai que ça pose de problème par moment ^^

      Un grand merci en tout cas
      0
  14. Ttomax Messages postés 64 Statut Membre 1
     
    re moi ^^ g un soucis,

    je souhaite pareil une macro qui me surveille si en case A32 g "Pas de réglage",
    d34,d35 i34,i35 et m34,35 pas à X

    g tester plusiur chose par rapoprt a la macro de dessus mais sans succès....
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Démarre une nouvelle question, je m'absente plusieurs jours...
      N'oublie pas de mettre celle-ci en résolu.
      eric
      0
    2. Ttomax Messages postés 64 Statut Membre 1
       
      ok ca marche merci
      0
  15. smartway14 Messages postés 857 Date d'inscription   Statut Membre Dernière intervention   186
     
    Bonjour;
    voici la formule:
    =SI(E15=1;ET(J21;J22;J24;J25)="x";" ")
    -4
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      tu as le droit de tout lire avant de répondre...
      eric
      0