Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro sous 2 conditions

  • Initiateur de la discussion Initiateur de la discussion fabio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fabio

Guest
BONJOUR

Comment adapter le code ci dessous :
explication
J'aimerais que lorsque figure "AM" en colonne E et "OUI" en colonne I, la valeur de la colonne J se reporte dans la colonne K et dans la colonne L (Valeur de la colonne K*1%)

quand les 2 conditions sont réunies la macro s'active automatiquement


For i = 2 To 10

If Cells(i, 5) <> "AM" And Cells(1, 9) <> "oui" Then
Cells(i, 11).Value = Cells(1, 10)
Cells(i, 12).Value = Cells(1, 10)
End If
Next

End Sub

merci pour votre aide
fabio
 

Pièces jointes

Re : Macro sous 2 conditions

Bonjour,

pourquoi as tu besoin d'une macro? alors qu'une simple formule te donne le résultat
en K2 =SI(ET(E2="AM";I2="OUI");J2;"valeur")
et en L2 =SI(K2="valeur";"valeur";K2*0.01)
puis tu tires les formules vers le bas
j'ai mis "valeur" pour reproduire ton tableau..
mais j'imagine que ca va pas etre ca..
d'ou la question
si la condition (AM en colonne E) ET(OUI en colonne I) n'est pas remplie.. tu mets quoi en colonne K et L?
 
Re : Macro sous 2 conditions

Je n'utilise pas de formule car c'est une projection qui sera faite par plusieurs personnes qui décideront si ils font ou pas cette projection
et il ne faut surtout pas de formule dans les cellules

merci

fabio
 
Re : Macro sous 2 conditions

Bonjour

ok,
donc il te suffit de mettre ce code directement dans la feuille concernée (pas dans un module)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 2 To 10
     If ((Cells(i, 5) = "AM") And (Cells(i, 9) = "OUI")) Then
        Cells(i, 11).Value = Cells(i, 10)
        Cells(i, 12).Value = Cells(i, 10)
    End If
 Next
End Sub
 
Re : Macro sous 2 conditions

Bonjour à tous, bonjour fabio, bonjour vgendron


La même que vgendron (avec une ligne de moins)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 2 To 10
If ((Cells(i, 5) = "AM") And (Cells(i, 9) = "OUI")) Then
Cells(i, 11).Resize(, 2).Value = Cells(i, 10)
End If
Next
End Sub
et ou une variante d'écriture
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 2 To 10
If ((Cells(i, 5) = "AM") And (Cells(i, 9) = "OUI")) Then
Range(Cells(i, 11), Cells(i, 12)).Value = Cells(i, 10)
End If
Next
End Sub
 
Re : Macro sous 2 conditions

Hello Staple

et oups. je viens de me rendre compte que j'ai repris le code d'origine tel quel
Code:
For i = 2 To 10

If Cells(i, 5) <> "AM" And Cells(1, 9) <> "oui" Then
Cells(i, 11).Value = Cells(1, 10)
Cells(i, 12).Value = Cells(1, 10)
End If
Next

End Sub
et que
1) j'ai changé les 1 des Cells (1,9) Cells(1,10) et Cells(1,11) par un i
2) j'ai changé les <> de ta condition par des =
3) par contre, j'ai oublié de modifier le code pour que la cellule L soit égale à 1% de la cellule K (du coup. staple. le resize. ne marche plus ;-) )
ce qui donne ca au final
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 2 To 10
     If ((Cells(i, 5) = "AM") And (Cells(i, 9) = "OUI")) Then
        Cells(i, 11) = Cells(i, 10)
        Cells(i, 12) = Cells(i, 10) / 100
    End If
 Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
839
Réponses
8
Affichages
750
Réponses
4
Affichages
692
Réponses
2
Affichages
496
Réponses
15
Affichages
657
Réponses
8
Affichages
357
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…