Select case compilation
Bonjour,
Je voudrais savoir comment compiler plusieurs "select case" (sachant qu'il y 'en aura au moins 40) est-ce possible ?
Il me faudrait juste la nomenclature. ou dois-je passer par plusieurs macro pour définir les "Case" et mettre des "IF" en instruction ? Ici il s'agit de compteurs pour la ligne ci-dessous
If Cal > 0 Then Cells(14, 3 + Cal) = Cells(14, 3 + Cal) + 1"
Merci bien
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cal As Integer
Dim Cbl As Integer
If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
Select Case Range("E2").Value
Case "IWL250"
Cal = 1
Case "IWL250 B"
Cal = 2
Case "IWL252"
Cal = 3
Case Else
Cal = 0
End Select
If Cal > 0 Then
Cells(14, 3 + Cal) = Cells(14, 3 + Cal) + 1
Select Case Range("F2").Value
Case "IWL250"
Cbl = 1
Case "IWL250 B"
Cbl = 2
Case "IWL252"
Cbl = 3
Case Else
Cbl = 0
End Select
If Cal > 0 Then
Cells(15, 3 + Cbl) = Cells(15, 3 + Cbl) + 1
End If
End If
End If
End Sub
Merci
Ou bien comme ca?
Private Sub A()
cellule = "A"
End Sub
------------------------------------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
Select Case cellule
Case "A"
If Range("E2").Value = "IWL250" Then
Cells(14, 4) = Cells(14, 4) + 1
End If
If Range("E2").Value = "IWL250 B" Then
Cells(14, 5) = Cells(14, 5) + 1
End If
If Range("E2").Value = "IWL252" Then
Cells(14, 6) = Cells(14, 6) + 1
End If
End select
Merci
Bonjour,
En fait on ne comprend pas bien si c'est le nombre de select case qui va augmenter ou le nombre de Target :
J'ai plutôt l'impression que c'est le nombre de Target.
Dans les 2 cas ça donnerait ça :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, Cal
Set Plage = Range("A2, B7,C3, E2, E7, F4,G7,G12,H2, I6,J10,K3, L11")
On Error GoTo FIN
If Not Application.Intersect(Target, Plage) Is Nothing Then
Select Case Target
Case "A": Cal = 1
Case "B": Cal = 2
Case "C": Cal = 3
Case "D": Cal = 4
Case "E": Cal = 5
Case "F": Cal = 6
Case Else: Cal = 0
End Select
Range("D13") = Range("D13") + Cal
End If
Exit Sub
Bonjour,
Quelle est l'utilité de cbl dans ta procédure ?
Sinon, une proposition à étudier !...
Cdlt.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cal As Integer, Cbl As Integer
If Target.Address = "$A$2" Then
Cal = MatchUp(Me.Range("E2").Value)
If Cal > 0 Then
Me.Cells(14, 3 + Cal) = Me.Cells(14, 3 + Cal) + 1
Cbl = MatchUp(Me.Range("F2").Value)
If Cbl > 0 Then Me.Cells(15, 3 + Cbl) = Me.Cells(15, 3 + Cbl) + 1
End If
End If
End Sub
Private Function MatchUp(txt As String) As Integer
MatchUp = 0
On Error Resume Next
MatchUp = Switch(txt = "IWL250", 1, txt = "IWL250 B", 2, txt = "IWL252", 3)
End Function
Bonjour tout le monde,
Si ça peux aider à comprendre, je pense que c'est la suite de ce sujet :
Bonjour,
En fait on ne comprend pas bien si c'est le nombre de select case qui va augmenter ou le nombre de Target :
J'ai plutôt l'impression que c'est le nombre de Target.
Salut,
En fait c'est le nombre de Target en effet . Il y a 38 "Target" et 3 choix par " Target " possible qui incrementent des compteurs disposés sur 3 cellules
1 target pour 3 choix sur 3 compteurs différents ( les compteurs sont sur differentes cellules).
j'ai joint un fichier exemple.
En fait il y a une seule référence "Target"
mais differente Select case
ci-joint un ficher exemple. Vraiment pour "montrer"
Lille fait reference a F2
Paris E2
mais "Une seule" target A1 ( bon ici ca donne le même resultat) La formule aussi est un exemple. ( c'est la meme mais elle sera modifiée)
F2 increment le compteur Lille
E2 celui de Paris
fichier Exemple
Bonjour,
Quelle est l'utilité de cbl dans ta procédure ?
Sinon, une proposition à étudier !...
Cdlt.
Salut,
je voulais essayer de faire un seul select case qui prend différents valeurs par la suite
et mettre des "IF" un peu partout
private sub
cellule= "cal"
end sub
private sub
cellule= "cbl"
end sub
select case cellule
case " cal"
if ...
case "cbl"
if....
end sub