Demande d'aide en guise de bonne année 2008

lagodille Messages postés 99 Statut Membre -  
lagodille Messages postés 99 Statut Membre -
Bonjour,
Bonjour,
j'ai une erreur de compilation , lorsque je place une croix rouge en majuscule dans la colonne I , je crois que j'ai trop d'arguments mais pourtant j'ai besoin de tout cela :

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77], [I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116], [I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])) Is Nothing Then Exit Sub

If Target.Offset(0, 0).Value = "X" Then

Target.Offset(0, -4).Resize(3, 4).ClearContents
Target.Offset(0, 1).Resize(3, 4).ClearContents
End If

End Sub

alors si vous avez une soluce ce serait la bien venue surtout qu'en plus il faudrait forcer la croix en majuscule meme si la personne tape une croix minuscule

merci de votre aide

1 réponse

  1. le père
     
    Bonjour
    Si ton union est trop grand, coupe le en 2 :

      Dim R1 As Range, r2 As Range,
      Set R1 = Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77])
      Set r2 = Union([I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116], [I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])
    
    If Intersect(Target, Union(R1, r2)) Is Nothing Then Exit Sub


    pour ton problème de majuscule / minuscule, tu n'as qu'à tester les 2 valeurs et forcer systématiquement en majuscule :
    If Target.Offset(0, 0).Value = "X" Or Target.Offset(0, 0).Value = "x" Then
      Target.Offset(0, 0).Value = "X"
    0
    1. lagodille Messages postés 99 Statut Membre 4
       
      bonjour
      merci pour ton aide. j'avais trouvé pour la première mais pas pensé à cela pour la seconde c'est astucieux et efficace.
      mais voilà qu'un autre problème apparait en effet dans la procédure ci dessous, je n'arrive pas à effectuer ces deux conditions en meme temps .
      la première est prise en compte mais pas la première .
      je pense qu'il faut les imbriquer toutes les deux mais je n'en suis pas sur. peux tu m'aider ?


      Private Sub Worksheet_Change(ByVal Target As Range)

      Dim MytargetPart1 As Range
      Dim MytargetPart2 As Range
      Dim MyBigtarget As Range

      Dim Mytargetmdp1 As Range
      Dim Mytargetmdp2 As Range
      Dim MyBigtargetmdp As Range


      Set MytargetPart1 = Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77], [I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116])
      Set MytargetPart2 = Union([I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])
      Set MyBigtarget = Union(MytargetPart1, MytargetPart2)

      Set Mytargetmdp1 = Union([H11], [H12], [H13], [H14], [H15], [H16], [H17], [H18], [H19], [H20], [H21], [H22], [H23], [H24], [H25], [H26], [H27], [H28])
      Set Mytargetmdp2 = Union([H41], [H42], [H43], [H44], [H45], [H46], [H47], [H48], [H49], [H50], [H51], [H52], [H53], [H54], [H55], [H56], [H57], [H58])
      Set MyBigtargetmdp = Union(Mytargetmdp1, Mytargetmdp2)



      If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
      If Target.Offset(0, 0).Value = "X" Or Target.Offset(0, 0).Value = "x" Then Target.Offset(0, 0).Value = "X"
      If Target.Offset(0, 0).Value = "X" Then
      Target.Offset(0, -4).Resize(3, 4).ClearContents
      Target.Offset(0, 1).Resize(3, 4).ClearContents
      End If


      If Intersect(Target, Union(Mytargetmdp1, Mytargetmdp2)) Is Nothing Then Exit Sub
      If Target.Offset(0, 0).Value <> "" Then UserForm3.Show


      End Sub

      encore tous meS voeux pour cette année 2008
      PASCAL
      0