Simplifier un code

Résolu
Geraldq Messages postés 11 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 21 octobre 2010 - 25 août 2010 à 16:18
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 25 août 2010 à 19:23
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 août 2010 à 19:21
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)
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 août 2010 à 17:00
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
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 août 2010 à 19:10
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 août 2010 à 19:23
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
0
Rejoignez-nous