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 :

https://forum.excel-pratique.com/viewtopic.php?f=2&t=129916

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

6compteurx2.xlsm (18.43 Ko)

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

Rechercher des sujets similaires à "select case compilation"