Aide pour macro VBA

sombreros Messages postés 2 Statut Membre -  
sombreros Messages postés 2 Statut Membre -
Bonjour,

Sur un fichier excel J'ai la colonne E qui a ces celule sous validation de donné. Je souhaite que quand j'indique "NON" dans la cellule, les cellule K,L,M,N indique "-".

Les cellules contiennent deja des formules pour le cas ou j'ai OUI dans la colone E
K une validation en liste avec choix 1 ou 2 ou 3
L qui indique la valeur de C si K=1 sinon 0
M qui indique la valeur de C si K=2 sinon 0
N qui indique la valeur de C moins B si K = 3 sinon 0

Par exemple

E K L M N

OUI 1 900 0 0
NON - - - -

Donc je me demandais comment faire (si c'était possible avec une macro) pour avoir des petit " - " qui apparaisse au lieu du reste quand on indique le choix "NON en E.

Désolé pour la question un poil compliqué et bravo à ceux qui trouverons ^^

Merci

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonsoir

    pour la colnne K, sans macro pas (trop) de pb, par contre avec macro le fait que Kx soit remplie avec une liste de choix, ça n'est pas très logique (ou alors ajouter le "-" a la liste de choix)
    une solution macro

    Private Sub MAJ()    
    Const lideb = 3    
    Const lifin = 4    
    Dim li As Long    
    Dim k As Variant, c As Variant, b As Variant    
      For li = lideb To lifin    
        k = Range("K" & li).Value    
        c = Range("C" & li).Value    
        b = Range("B" & li).Value    
        If Range("E" & li).Value = "OUI" Then    
          ' colonne L    
          If k= 1 Then    
            Range("L" & li).Value = c    
          Else    
            Range("L" & li).Value = 0    
          End If    
          ' colonne M    
          If k= 2 Then    
            Range("M" & li).Value = c    
          Else    
            Range("M" & li).Value = 0    
          End If    
          ' colonne N    
          If k= 3 Then    
            Range("N" & li).Value = c - b    
          Else    
            Range("N" & li).Value = 0    
          End If    
        Else    
          Range("K" & li).Value = "-"  ' pas conseillé    
          Range("L" & li).Value = "-"    
          Range("M" & li).Value = "-"    
          Range("N" & li).Value = "-"    
        End If    
      Next li    
    End Sub    
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)    
      Call MAJ    
    End Sub


    RQ. sans macro le pb est nettement plus leger par exemple
    en L =SI($E1="OUI";SI($K1=1;$C1;0);0)

    bonne suite
    0
    1. sombreros Messages postés 2 Statut Membre
       
      Merci pour ta réponse je vais tester ca dessuite ^^
      0