Raccourcir les écrits de la bible

jeromeN95

XLDnaute Impliqué
Bonsoir à tous,
Avant tout, ouvrez vos cadeaux !

Sinon j'ai quelques soucci pour raccourcir un peu ces formules, une aide (même petite) serait grandement apprécier :

PHP:
Option Explicit

Private Sub OrdreM1_Click()
If [nomdoseur] = "L5000" Then
[V28] = [Détergent]
[V29] = [Alcalin]
[V30] = [Blanchiment]
[V31] = [Assouplissant]
[V32,V33,V34] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V28] = [Assouplissant]
[V29] = [Dégraissant]
[V30] = [Alcalin]
[V31] = [Blanchiment]
[V32] = [Détergent]
[V33,V34] = ""
End If
End Sub
Private Sub OrdreM2_Click()
If [nomdoseur] = "L5000" Then
[V63] = [Détergent]
[V64] = [Alcalin]
[V65] = [Blanchiment]
[V66] = [Assouplissant]
[V67,V68,V69] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V63] = [Assouplissant]
[V64] = [Dégraissant]
[V65] = [Alcalin]
[V66] = [Blanchiment]
[V67] = [Détergent]
[V68,V69] = ""
End If
End Sub
Private Sub OrdreM3_Click()
If [nomdoseur] = "L5000" Then
[V98] = [Détergent]
[V99] = [Alcalin]
[V100] = [Blanchiment]
[V101] = [Assouplissant]
[V102,V103,V104] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V98] = [Assouplissant]
[V00] = [Dégraissant]
[V100] = [Alcalin]
[V101] = [Blanchiment]
[V102] = [Détergent]
[V103,V104] = ""
End If
End Sub
Private Sub OrdreM4_Click()
If [nomdoseur] = "L5000" Then
[V133] = [Détergent]
[V134] = [Alcalin]
[V135] = [Blanchiment]
[V136] = [Assouplissant]
[V137,V138,V139] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V133] = [Assouplissant]
[V134] = [Dégraissant]
[V135] = [Alcalin]
[V136] = [Blanchiment]
[V137] = [Détergent]
[V138,V139] = ""
End If
End Sub
Private Sub OrdreM5_Click()
If [nomdoseur] = "L5000" Then
[V168] = [Détergent]
[V169] = [Alcalin]
[V170] = [Blanchiment]
[V171] = [Assouplissant]
[V172,V173,V174] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V168] = [Assouplissant]
[V169] = [Dégraissant]
[V170] = [Alcalin]
[V171] = [Blanchiment]
[V172] = [Détergent]
[V173,V174] = ""
End If
End Sub
Private Sub OrdreM6_Click()
If [nomdoseur] = "L5000" Then
[V203] = [Détergent]
[V204] = [Alcalin]
[V205] = [Blanchiment]
[V206] = [Assouplissant]
[V207,V208,V209] = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V203] = [Assouplissant]
[V204] = [Dégraissant]
[V205] = [Alcalin]
[V206] = [Blanchiment]
[V207] = [Détergent]
[V208,V209] = ""
End If
End Sub
 

gfortin9

XLDnaute Occasionnel
Re : Raccourcir les écrits de la bible

Allô!

Tout en laissant tototiti2008 prendre un verre à notre santé :) ...

Que penses-tu de ceci ?
Est-ce un peu ce que tu espérais ?

G

PHP:
Option Explicit
Public OrdreMx As Integer

Private Sub OrdreM1_Click()
   OrdreMx = 0
   Suite
End Sub

Private Sub OrdreM2_Click()
   OrdreMx = 35
   Suite
End Sub

Private Sub OrdreM3_Click()
   OrdreMx = 70
   Suite
End Sub

Private Sub OrdreM4_Click()
   OrdreMx = 105
   Suite
End Sub

Private Sub OrdreM5_Click()
   OrdreMx = 140
   Suite
End Sub

Private Sub OrdreM6_Click()
   OrdreMx = 175
   Suite
End Sub

Sub Suite()
If [nomdoseur] = "L5000" Then
[V28].Offset(OrdreMx, 0) = [Détergent]
[V29].Offset(OrdreMx, 0) = [Alcalin]
[V30].Offset(OrdreMx, 0) = [Blanchiment]
[V31].Offset(OrdreMx, 0) = [Assouplissant]
[V32,V33,V34].Offset(OrdreMx, 0) = ""
End If
If [nomdoseur] = "Clax Revoflow" Then
[V28].Offset(OrdreMx, 0) = [Assouplissant]
[V29].Offset(OrdreMx, 0) = [Dégraissant]
[V30].Offset(OrdreMx, 0) = [Alcalin]
[V31].Offset(OrdreMx, 0) = [Blanchiment]
[V32].Offset(OrdreMx, 0) = [Détergent]
[V33,V34].Offset(OrdreMx, 0) = ""
End If
End Sub
 

dra72

XLDnaute Occasionnel
Re : Raccourcir les écrits de la bible

Bonjour jeromeN95, tototiti2008, gfortin9,

Et avec quelques lignes en moins mais une nuit en plus,

Code:
Option Explicit 

Private Sub OrdreM1_Click() 
   Suite 0
End Sub 

Private Sub OrdreM2_Click() 
   Suite 35
End Sub 

Private Sub OrdreM3_Click() 
   Suite 70
End Sub 

Private Sub OrdreM4_Click() 
   Suite 105
End Sub 

Private Sub OrdreM5_Click() 
   Suite 140
End Sub 

Private Sub OrdreM6_Click() 
   Suite 175
End Sub 

Sub Suite(OrdreMx As Integer) 
  If [nomdoseur] = "L5000" Or [nomdoseur] = "Clax Revoflow" Then 
    [V28].Offset(OrdreMx, 0) = IIf([nomdoseur] = "L5000", [Détergent], [Assouplissant])
    [V29].Offset(OrdreMx, 0) = IIf([nomdoseur] = "L5000", [Alcalin], [Dégraissant])
    [V30].Offset(OrdreMx, 0) = IIf([nomdoseur] = "L5000", [Blanchiment], [Alcalin])
    [V31].Offset(OrdreMx, 0) = IIf([nomdoseur] = "L5000", [Assouplissant],[Alcalin]) 
    [V32].Offset(OrdreMx, 0) = IIf([nomdoseur] = "L5000", "", [Détergent])
    [V33,V34].Offset(OrdreMx, 0) = "" 
 End If 
End Sub

Bon noël à tous,
 
Dernière édition:

jeromeN95

XLDnaute Impliqué
Re : Raccourcir les écrits de la bible

Bonsoir à tous,
en effet, trés utile tout ceci.
Par contre, j'aimerais rajouter une petite chose et pour ce faire mis une PJ.
Dedans, il y a 3 onglets avec explication dans le dernier.
Désoler pour le dérangement, c'est que je souhaite faire une formule "universel" qui puisse fonctionner tout le temps.

Merci a vous et bonne nuit.
 

Pièces jointes

  • EXT V8-2.xls
    470.5 KB · Affichages: 135

dra72

XLDnaute Occasionnel
Re : Raccourcir les écrits de la bible

Bonjour jeromeN95,

A vrai dire je ne comprends pas grand chose au problème que tu nous exposes dans ton tableau.
Tu nous parles par exemple de "l'ordre des pompes". Il doit se confondre avec ceux de la feuille RBuanderie. c'est à dire?

J'ai cependant 2 remarques concernant le code de la procédure Suite:
1) D'après ce que je constate nomdoseur ne peut prendre que les valeurs L5000 ou REVOFLOW. On peut donc supprimer les lignes If et End If.
2) tu as prévu le passage du paramêtre nomdoseur (nomdoseur as integer).
Pourquoi puisque la procédure peut lire directement la zone en question?
Et surtout, si tu veux absolument le prévoir en parametre, il faut préciser nomdoseur as string puisque chaine de caractères et non numérique.

A+
 

jeromeN95

XLDnaute Impliqué
Re : Raccourcir les écrits de la bible

Bonsoir,

HTML:
Tu nous parles par exemple de "l'ordre des pompes". Il doit se confondre avec ceux de la feuille RBuanderie. c'est à dire?
C'est à dire qu'en RBuanderie DD16, il y a la pompe N°1 correspond au Détergent.

HTML:
1) D'après ce que je constate nomdoseur ne peut prendre que les valeurs L5000 ou REVOFLOW. On peut donc supprimer les lignes If et End If.
En fait, il peut prendre 2 valeurs pour le moment, mais par la suite, il pourra en prendre 3 voir 4. (La plage [nomdoseur] sera donc extensible à 4)

HTML:
2) tu as prévu le passage du paramêtre nomdoseur (nomdoseur as integer).
Pourquoi puisque la procédure peut lire directement la zone en question?
Et surtout, si tu veux absolument le prévoir en parametre, il faut préciser nomdoseur as string puisque chaine de caractères et non numérique.
et bien oui tu as raison. J'ai bidouiller cela est oublier de faire la corection, c'est qu'il y a à la dedans et je n'ai pas tout vérifier.

Merci.
 

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas