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

Fonction SI + OU

  • Initiateur de la discussion Initiateur de la discussion matiousky
  • 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 !

M

matiousky

Guest
Bonjour,

Je n'ai pas un très bon niveau, pouvez-vous m'aider à cumuler une fonction si et une fonction ou sous VB?

Voici le code existant auquel j'aimerai rajouté une condition:
Si M12=1 OU D157<>N4 alors ....

Ce code contient déja la 1ère condition (M12). (Au passage si vous avez des suggestions pour améliorer mon code je prends!).

Merci à vous,

Code:

Sub Imprimersadm()

If Range("M12").Value = 1 Then
Application.ScreenUpdating = False
Sheets("Synthèse administrative").Visible = True
Sheets("Synthèse administrative").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
Sheets("Synthèse administrative").Select
Range("B11:F42").Select
Range("B42").Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("B11:F42").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("B:B").EntireColumn.AutoFit
'Sheets("Synthèse administrative").PrintOut
Sheets("Synthèse administrative").Visible = False
Application.ScreenUpdating = True
Else
MsgBox "L'impression de la synthèse administrative est impossible car vous n'êtes pas à 100% investit."
Exit Sub
End If

End Sub

Merci à vous ,
Mat
 
Re : Fonction SI + OU

Bonsoir matiousky

Tu remplaces :

Code:
If Range("M12").Value = 1 Then
par :

Code:
 If Range("M12").Value = 1 Or Range("D157").Value <> Range("N4").Value Then
Bonne soirée
 
Re : Fonction SI + OU

Bonjour,

J'ai 2 petits souci:
1) Je voudrai que pour chaque condition un message different soit affiché,
Soit:

Si M12=1 alors ...
Sinon MsgBox "L'impression de la synthèse administrative est impossible car vous n'êtes pas à 100% investit."

Si D157<>N4 alors ...
Sinon MsgBox "Attention votre profil est différent de celui selecionné"

2) Pour ma 2ème condition: la formule Range("D157").Value <> Range("N4").Value ne marche pas:
- Ma cellule D157 est fusionnée avec E157: dois-je changer le code: Range("D157").Value ?
- Ma cellule D157 contient du texte que je compare à N4 qui elle aussi contient du texte. L'idée est: si le texte est semblable alors mon code s'eefectue, sinon alors s'affiche une msgbox.

Pouvez-vous m'aider?
Je vous remercie,
Mat
 
Re : Fonction SI + OU

Bonjour,

Voici quelques modifications dans le code (à tester).


Sub Imprimersadm()
If Range("M12") = 1 Or Range("D157") <> Range("N4") Then
Application.ScreenUpdating = False
If Range("M12") = 1 Then MsgBox "L'impression de la synthèse administrative est impossible car vous n'êtes pas à 100% investit."
If Range("D157") <> Range("N4") Then MsgBox "Attention votre profil est différent de celui selecionné"
Sheets("Synthèse administrative").Visible = True
Sheets("Synthèse administrative").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
With Sheets("Synthèse administrative").Range("B11:F42")
.Borders.LineStyle = xlNone
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("B:B").EntireColumn.AutoFit
'Sheets("Synthèse administrative").PrintOut
Sheets("Synthèse administrative").Visible = False
Else
MsgBox "L'impression de la synthèse administrative est impossible car vous n'êtes pas à 100% investit."
End If
Application.ScreenUpdating = True
End Sub


Pour le :
Range("D157").Value <> Range("N4").Value
Ca doit fonctionner avec la ref de la premiere cellule fusionnée.

Pour verifier manuellement :
- Taper dans une cellule vierge : =D157=N4
- Si ça renvoie VRAI c'est que le contenu est identique
- Si ça renvoie FAUX c'est qu'il y a une différence (un espace, un format etc ...)
 
RESOLU : Fonction SI + OU

Salut Catrice,

Merci beaucoup pour ton aide précieuse.
Voici mon code final:

Sub Imprimersadm()
If Range("M12") = 1 Or Range("D157") <> Range("D17") Then
Application.ScreenUpdating = False
If Range("M12") <> 1 Then MsgBox "L'impression de la synthèse administrative est impossible car vous n'êtes pas à 100% investit."
If Range("D157") <> Range("D17") Then MsgBox "Attention votre profil est différent de celui selecionné"
Else
Sheets("Synthèse administrative").Visible = True
Sheets("Synthèse administrative").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
With Sheets("Synthèse administrative").Range("B11:F42")
.Borders.LineStyle = xlNone
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("B:B").EntireColumn.AutoFit
Sheets("Synthèse administrative").PrintOut
Sheets("Synthèse administrative").Visible = False
End If
Application.ScreenUpdating = True
End Sub

Bonne soirée,
Mat
 
- 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
10
Affichages
791
Réponses
9
Affichages
508
Réponses
18
Affichages
595
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…