XL 2016 raccourcir code if

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Réflexion du dimanche matin après petit dej - nettoyage frimousse -ptit coup de peigne et p'tit brossage de dent comme dirait notre cher Staple1600,

Je voudrait raccourcir une code il et je ne sais pas faire.

Voilà ce que ça donne actuellement :
VB:
If Cells(ActiveCell.Row, 7) = "" And Cells(ActiveCell.Row, 10) = "" And Cells(ActiveCell.Row, 12) = "" And Cells(ActiveCell.Row, 17) = "" And Cells(ActiveCell.Row, 18) = "" Cells(ActiveCell.Row, 22) = "" And Cells(ActiveCell.Row, 20) = "" And [T3] <> "OK" Then [T3] <> "OK" Then

Est-il possible de coder autrement pour regrouper les conditions ="" en une seule ?

Avec mes remerciements,
Je vous souhaite à toutes et à tous, un très beau dimanche,
Amicalement,
lionel,
 
Re

Donc qu'affiche cette MsgBox si ce n'est la ligne active !!!
(ou plutôt l'adresse des cellules des colonnes G,J,L,Q,R,T,V de la ligne active)
(je parle de la macro du message#14)


Ce sera peut-être plus clair avec cette autre macro de test
VB:
Sub test4()
Dim p As Range
Set p = Range("G1,J1,L1,Q1,R1,T1,V1").Offset(ActiveCell.Row - 1)
MsgBox p.Address
MsgBox Left(Split(p.Address, "$")(2), 2)
MsgBox ActiveCell.Row
End Sub
 
Dernière édition:
Re, Bonjour eriiiic

Tu n'as pas une petit idée de que cette phrase peut bien vouloir dire ?
Mais je peux être sur n'importe ligne active et c'est "la ligne active" qui doit être analysée
lionel,
Parce que pour moi, la ligne active, comme son nom l'indique, elle est unique et active.
Et qu'on se trouve sur n'importe quelle ligne active, celle-ce sera toujours la ligne active, été comme hiver, et même les années bissextiles 😉
Et c'était déjà le cas dans Excel 4
 
Bonsoir endimanché,

Un grain de sel qui sent le fromage:

VB:
Public Sub boutonRechercheRob()
    Dim adr As String:  adr = Replace("G?,j?,L?,Q?,R?,T?,V?", "?", ActiveCell.Row)
     MsgBox Array("C'est bon", "C'est pas bon")(-(Application.CountA(Range(adr)) > 0 And Range("T3") = 1))
End Sub

Bonne soirée
 

Pièces jointes

bonsoir a tous

Roblochon ++++++
je vous en donne une autre
dans le style
VB:
Public Sub boutonRechercheRob()
    Dim x
    x = Trim(Join(Application.Index(Application.Index(Rows(ActiveCell.Row).Value, [{1;1}], Array(10, 12, 17, 18, 20, 22)), 1, 0)))
 MsgBox Array("C'est bon", "C'est pas bon")(Abs(x <> ""))
End Sub
 
Re, Bonsoir patricktoulon

Je sors juste la serpette, pour élagage avant ma tisane du soir 😉
VB:
Sub boutonRechercheRobA()
    Dim adr As String:  adr = Replace("G?,j?,L?,Q?,R?,T?,V?", "?", ActiveCell.Row)
     MsgBox "C'est " & Array("bon", "pas bon")(-(Application.CountA(Range(adr)) > 0 And Range("T3") = 1))
End Sub
Sub boutonRechercheRobB()
Dim x
With Application
.ScreenUpdating = False
x = Trim(Join(.Index(.Index(Rows(ActiveCell.Row).Value, [{1;1}], Array(10, 12, 17, 18, 20, 22)), 1, 0)))
MsgBox "C'est " & Array("bon", "pas bon")(Abs(x <> ""))
End With
End Sub
 
Re-Bonjour JM, Eriiiic,

Bonjour Roblochon, Patrick,

Les codes de Roblochon et de Patrick fonctionnent nickel, je vous en remercie 🙂

Merci à vous tous pour m'avoir aidé car j'avais déjà avancé (sans résoudre complètement) avec les codes de JM et d'Eriiiic.
Bonne fin de dimanche,
Amicalement,
lionel,
 
Re

Pour finir, je sors du garage (et après relecture de tout le fil, je corrige la macro test4)
VB:
Sub test5()
Dim p As Range
Set p = Range("G1,J1,L1,Q1,R1,T1,V1").Offset(ActiveCell.Row - 1)
If Application.CountA(p) > 0 And [T3] = 1 Then
MsgBox "C'est bon"
Else
MsgBox "C'est pas bon"
End If
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

Discussions similaires

Réponses
14
Affichages
1 K
Réponses
7
Affichages
702
Réponses
7
Affichages
751
Retour