Simplifier un code [Résolu]

Signaler
Messages postés
11
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
21 octobre 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Je souhaite simplifier ce code car il est long et très répétitif. pouvez vous m'aidez

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("H11").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H12").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H18").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H19").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H25").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H26").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H32").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H33").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H39").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H40").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H46").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H47").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H70").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H71").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H72").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("H73").Text = "Erreur Bip" Then
MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO11").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO12").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO18").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO19").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO25").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO26").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO32").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO33").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO39").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO40").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO46").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO47").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO70").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO71").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO72").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
If Range("AO73").Text = "Erreur centre" Then
MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
End If
End Sub

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Mon grain de sel :
Je pense que ceci peut fonctionner :
    Select Case "Erreur Bip"
        Case Range("H11").Text, Range("H12").Text, Range("H18").Text, Range("H19").Text, _
             Range("H25").Text, Range("H26").Text, Range("H32").Text, Range("H33").Text, _
             Range("H39").Text, Range("H40").Text, Range("H46").Text, Range("H47").Text, _
             Range("H70").Text, Range("H71").Text, Range("H72").Text, Range("H73").Text
                MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
    End Select
    
    Select Case "Erreur centre"
        Case Range("AO11").Text, Range("AO12").Text, Range("AO18").Text, Range("AO19").Text, _
             Range("AO25").Text, Range("AO26").Text, Range("AO32").Text, Range("AO33").Text, _
             Range("AO39").Text, Range("AO40").Text, Range("AO46").Text, Range("AO47").Text, _
             Range("AO70").Text, Range("AO71").Text, Range("AO72").Text, Range("AO73").Text
                MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
    End Select

Maintenant, il serait plus judicieux d'intercepter le problème lors de la saisie, en supposant que ces phrases clé n'existent pas ailleurs dans ta feuille, l'adresse de la cellule n'a pas vraiment d'importance :
    Select Case Target.Text
        Case "Erreur Bip"
            MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS"
        Case "Erreur centre"
            MsgBox "Remplisser le nom de centre de ce personnel dans l'onglet PERSONNELS"
    End Select

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
99
Salut,

Utilise les boucles et un tableau, ce sera bien plus simple et lisible :

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim i as long
dim sIndexes(33) As String
dim sFields() As String

sIndexes(0) = "H11-Erreur Bip"
sIndexes(1) = "H12-Erreur Bip"
sIndexes(3) = "H18-Erreur Bip"
sIndexes(4) = "H19-Erreur Bip"
sIndexes(5) = "H25-Erreur Bip"
sIndexes(6) = "H26-Erreur Bip"
sIndexes(7) = "H32-Erreur Bip"
sIndexes(8) = "H33-Erreur Bip"
sIndexes(9) = "H39-Erreur Bip"
sIndexes(10) = "H40-Erreur Bip"
sIndexes(11) = "H46-Erreur Bip"
sIndexes(12) = "H47-Erreur Bip"
sIndexes(13) = "H70-Erreur Bip"
sIndexes(14) = "H71-Erreur Bip"
sIndexes(15) = "H72-Erreur Bip"
sIndexes(16) = "H73-Erreur Bip"
sIndexes(17) = "AO11-Erreur centre"
sIndexes(18) = "AO12-Erreur centre"
sIndexes(19) = "AO18-Erreur centre"
sIndexes(20) = "AO19-Erreur centre"
sIndexes(21) = "AO25-Erreur centre"
sIndexes(22) = "AO16-Erreur centre"
sIndexes(23) = "AO32-Erreur centre"
sIndexes(24) = "AO33-Erreur centre"
sIndexes(25) = "AO39-Erreur centre"
sIndexes(26) = "AO40-Erreur centre"
sIndexes(27) = "AO46-Erreur centre"
sIndexes(28) = "AO47-Erreur centre"
sIndexes(29) = "AO70-Erreur centre"
sIndexes(30) = "AO71-Erreur centre"
sIndexes(31) = "AO72-Erreur centre"
sIndexes(32) = "AO73-Erreur centre"

for i = 0 to 32
  sFields = Split(sIndexes(i), "-")
  If Range(sFields(0)).Text = sFields(1) Then 
    MsgBox "Remplisser le numéro de Bip de ce personnel dans l'onglet PERSONNELS" 
  End If 
next i

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
MsgBox "Remplissez le numéro de Bip de ce personnel dans l'onglet PERSONNELS" ...
Là c'est déjà mieux

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
PS : pour le dernier cas, cela suppose que la cellule désignée par Target soit celle modifiée - rien de moins sûr - oublie