Worksheet_change sur une colonne avec conditions

Bonjour à tous,

Voilà mon problème. Je souhaiterai effectuer un Worksheet_change sur ma Feuill1 du Fichier Joint.

L'idée est la suivante. Je veux que ma macro se lance dès qu'on a un changement dans la colonne E (plus précisement dans la colonne E de la ligne 3 à la fin). Ceci a été codé comme suit pour l'instant :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row >= 3 And Target.Row <= Range("H" & Rows.Count).End(xlUp).Row) And Target.Column = 5 Then

Niaaa niaaa niaaa

End If
End Sub

Mais je désire ajouter comme condition que la macro se lance seulement si Cells(Target.Row,27).Value = "Aluminium" (ça j'arrive à le coder), ça donne ça :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row >= 3 And Target.Row <= Range("H" & Rows.Count).End(xlUp).Row) And Target.Column = 5 _
And  Cells(Target.Row,27).Value = "Aluminium" Then

Niaaa niaaa niaaa

End If
End Sub

Et maintenant ça se complique... J'aimerais que la macro se déclenche non seulement si on a un changement sur la colonne E entre les lignes 3 et la dernière ligne (colonne H utilisée car elle contient plein de A) ET [ si la valeur de la cellule à la colonne 27 de la même ligne est Aluminium OU si la valeur de la colonne 27 +13, 27+26, 27+39, etc.. est égale à Aluminium - en gros tous les 13 colonnes jusqu'à la colonne 6500 ]

Merci d'avance pour votre aide

Je pourrai toujours m'arrêter au deuxième morceau de code et balancer un If cells(Target.Row,27 + multiple de 13 - vous comprenez) = "Aluminium" Then Nianianinainian

Mais je préférerais qqch directement intégré dans le Target.

D'avance merci

Bonjour

Il me semblait d'avoir répondu à cette question (dans une vie antérieure peut-être )

A essayer

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Depart As String
Dim Ok As Boolean

  If Target.Row >= 3 And Target.Row <= Range("H" & Rows.Count).End(xlUp).Row And Target.Column = 5 Then
    With Rows(Target.Row)
      Set Cel = .Find(what:="Aluminium", LookIn:=xlValues, lookat:=xlWhole)
      If Not Cel Is Nothing Then
        Depart = Cel.Address
        Do
          If (Cel.Column - 27) Mod 13 = 0 Then
            Ok = True
            Exit Do
          End If
          Set Cel = .FindNext(Cel)
        Loop While Depart <> Cel.Address
      End If
    End With
    If Ok = False Then Exit Sub
    MsgBox "Traitement de la suite de la macro"
    '
    ' Niaaa niaaa niaaa
    '
 End If
End Sub

Bonjour Banzai64.

Merci beaucoup pour ta réponse.

Je ne comprends pas, le code bug en me sortant "ARgument nommé introuvable" au niveau du Set Cel = .Find(etc...)

Par ailleurs j'aimerais dans la macro Niaaaniaaaniaaa réutiliser la position d'Aluminium sur la ligne.

En gros si on a un changement sur la 3ème colonne et qu'on a de l'alu sur l'une des colonnes -27 modulo 13 = 0 alors on va travailler sur les colonnes juste avant l'occurence de l'Alu.. Donc il me faut la position de l'alu dans la ligne.

A noter que sur chaque ligne, il peut y avoir zéro, un, deux ou plusieurs Aluminium. Et qu'il me faudra la position de tous.

J'imagine que ma demande est un peu compliquée.

Merci beaucoup en tout cas.

Bonjour

En principe je teste (rapidement) ce que je fais, mais cette erreur je ne l'avais pas

Alors pas facile à trouver

Tu as fais un copier coller ?

Pour ta 2ème question c'est simple

A toi de faire des tests

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Depart As String

  If Target.Row >= 3 And Target.Row <= Range("H" & Rows.Count).End(xlUp).Row And Target.Column = 5 Then
    With Rows(Target.Row)
      Set Cel = .Find(what:="Aluminium", LookIn:=xlValues, lookat:=xlWhole)
      If Not Cel Is Nothing Then
        Depart = Cel.Address
        Do
          If (Cel.Column - 27) Mod 13 = 0 Then
            MsgBox "les conditions sont remplies"
            '
            ' Niaaa niaaa niaaa
            '
          End If
          Set Cel = .FindNext(Cel)
        Loop While Depart <> Cel.Address
      End If
    End With
  End If
End Sub

Bon ben rien à dire c'est nickel chrome.

Merci merci beaucoup Banzai64.

Tu m'as bien dépanné !!!

Rechercher des sujets similaires à "worksheet change colonne conditions"