XL 2016 Permettre une concordance sur celulles suivant condition

Nemesys33

XLDnaute Nouveau
Bonjour,

Je souhaiterais soliciter votre aide afin de savoir s'il est possible de créer un code suivant une condition spécifique.
Le but est que lorsque je change une cellule de la colonne B, elle me change les cellules en fonction de la colonne A et donc d'un même numéro.

Ci-dessus un fichier exemple comprenant donc 3 Steps ( CDTL, SYS, EXEC)
Ex : si je change la celulle B10 en "SYS" j'aimerais qu'il me colle SYS sur toutes les cellules de la colonne B qui ont le même point commun en colonne A "103".

PS : je ne veux pas passer par de la liste déroulante car cela me bloquera pour l'intégration sur mon autre outil.

Je pense si je ne m'abuse qu'il faut que je passe par un début de code suivant :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then


End If
End Sub

Mais je suis perdu sur la manière d'agir pour mettre en place la condition et de retranscrire ce qui a été écrit / ou coller sur une celulle spécifique.

Bien à vous.
 

Pièces jointes

  • test concordance.xlsx
    8.7 KB · Affichages: 14

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nemesys,
Un essai en PJ avec :
Code:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
        Dim L%
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        For L = 2 To Range("A65500").End(xlUp).Row
            If Cells(L, "A") = Cells(Target.Row, "A") Then Cells(L, "B") = Target
        Next L
    End If
Fin:
Application.EnableEvents = True
End Sub
Si j'ai bien compris la problématique.
 

Pièces jointes

  • test concordance.xlsm
    14 KB · Affichages: 8

Nemesys33

XLDnaute Nouveau
Bonjour sylvanu,
C'est exactement ça.
Je vais voir si demain j'arrive à l'intégrer sans que cela rentre en conflit avec les autres macros.
Pourrais-tu me donner plus d'informations sur la macro que j'ai du mal à comprendre.

Notamment le error goto fin qui me parait très vague, si je comprends bien, on dit que si la cible est supérieur à 1 alors la macro devient inactive c'est ca ? on parle des multiselections ?
Pour le L définit, que cible t'on par "2" to range ? ainsi que la notion .end(xlup).row?

Merci encore pour cette proposition :)
Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
On error goto permet de sortir de la macro en cas d'erreur. par ex si on sélectionne toute la page.

If Target.Count > 1 Then Exit Sub : Si plusieurs cellules sont sélectionnées, on sort. On ne traite qu si une seule cellule est sélectionnée. ( sinon on ne saurait pas quoi faire )

Application.EnableEvents = False Invalide les events pour éviter la ré entrance ( on modifie B qui appelle la macro qui modifie B, donc appelle la macro ... )

Range("A65500").End(xlUp).Row donne la dernière cellule occupée de la colonne A. Ensuite on balaie de 2 ( première cellule) à la dernière.
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 539
Membres
112 774
dernier inscrit
Foudil59