Parourir tableau Excel, ligne par ligne, cellule par cellule

Bonjour,

J'ai un tableau de 180 lignes et 5 colonnes ; seules les 3 dernières colonnes de ce tableau n'ont ici d'intérêt. Je souhaiterai opérer ligne par ligne, et interdire à l'utilisateur d'écrire (il est forcé de n'utiliser que : "x") dans plus d'une case par ligne.

Il faudrait donc parcourir mon tableau, par ligne, puis par cellule.

Voici un bout de mon code, qui concerne la première ligne de mon tableau :

    If Target.Address = "$E$51" Then
        If Target.Value = "x" Then
            Range("F51").Locked = True
            Range("G51").Locked = True
        Else
            Range("F51").Locked = False
            Range("G51").Locked = False
        End If
    End If

    If Target.Address = "$F$51" Then
        If Target.Value = "x" Then
            Range("E51").Locked = True
            Range("G51").Locked = True
        Else
            Range("E51").Locked = False
            Range("G51").Locked = False
        End If
    End If

    If Target.Address = "$G$51" Then
        If Target.Value = "x" Then
            Range("E51").Locked = True
            Range("F51").Locked = True
        Else
            Range("E51").Locked = False
            Range("F51").Locked = False
        End If
    End If

Il faudrait le reproduire, 180 fois, sans boucle .... comment faire autrement ?

Je ne joint pas mon fichier, car trop lourd, et le code VBA est déjà assez encombré.

Bonjour,

Je ne joint pas mon fichier, car trop lourd, et le code VBA est déjà assez encombré.

C'est justement pour ça que tu devrais le joindre : ça te donnerai au moins une chance de voir comment on fait le ménage...

Pourquoi diable vouloir verrouiller les cellules ? Pour empêcher l'utilisateur de cjanger d'avis ? Et s'il se trompe ?

A+

Bonjour galopin01,

il y a beaucoup de code, mais qui sert d'autres fonctions du fichier, je n'ai pas envie de rendre le problème plus compliqué qu'il ne l'est

- si l'utilisateur change d'avis, il n'a qu'à supprimer la croix qu'il a écrit dans une cellule, pour la noter ailleurs ; mais l'important est bien qu'il ne soit possible de noter qu'une seule croix dans chaque ligne

Bonjour,

Répondre si tu Locked les cellules il ne plus plus cocher ailleurs...

Comme tu voudras...

Code à mettre dans le module de la feuille concernée et non pas dans un module additionnel (Module1...)

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim iR%, iC%
   If Target.Count = 1 Then
      iR = Target.Row
      iC = Target.Column
      If Target.Row > 50 Then
      Select Case iC
      Case 5 To 7
         If Target.Value = "x" Then
            Application.EnableEvents = False
            Range(Cells(iR, 5), Cells(iR, 7)).ClearContents
            Cells(iR, iC) = "x"
            Application.EnableEvents = True
         End If
      End Select
      End If
   End If
End Sub

A+

Oui merci !!!

Tu as raison, ta méthode est bien meilleure, c'est une autre approche, mais le résultat est celui que j'attends.

Tu es un génie Merci !

Rechercher des sujets similaires à "parourir tableau ligne"