Même Macros sur plusieurs lignes

dhidhou

XLDnaute Nouveau
Bonjour,

débutant j'ai besoin de votre aide:

tout d'abbord je voulais avoir une liste déroulante avec choix multiple et j'ai réussi à trouver le code nécéssaire :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$7" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
If Target.Address = "$F$7" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
If Target.Address = "$G$7" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
If Target.Address = "$H$7" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
End Sub


Comme vous constatez ce code s'applique sur la ligne 7 et les Colonnes D, F, G et H.

ce que je voulais faire c'est appliquer ce meme code sur toute les lignes à partir de la 7eme ligne jusqu'a la ligne Nr 100 et si possible aussi de simplifier le code sur les colonnes citées en haut(D, F, G et H)

Merci infiniment
 

Jacou

XLDnaute Impliqué
Re : Même Macros sur plusieurs lignes

Bonsoir,
essaie cela :

Private Sub Worksheet_Change(ByVal Target As Range)


For lig = 7 To 100
If Target.Address = "$D$" & lig Or Target.Address = "$F$" & lig _
Or Target.Address = "$G" & lig Or Target.Address = "$H$" & lig _
And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
Next lig
End Sub
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
145

Statistiques des forums

Discussions
312 361
Messages
2 087 625
Membres
103 609
dernier inscrit
AmineAB33