Bonjour tout le monde,
Voici ma feuille 2,
A B C
1 Code Couleur Désignation
2 87650 Bleu Crayon
3 45370 Rouge Stylo
Ensuite dans la feuille 1,
A B C
1 Code Couleur Désignation
2 ......... ........... ...........
Mon souhait est de réaliser une macro afin que quand j'écrive 87650 par exemple, en A2 feuille 1, Excel me remplisse automatiquement les autres champs de la ligne (c'est-à-dire Bleu et Crayon).
Grâce à un autre site, j'ai trouvé une première macro qui marche sans problème:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Worksheets(2).Range("a:a")
Set c = .Find(Target, LookIn:=xlValues)
If Not c Is Nothing Then
monr = "a" & c.Row
Application.EnableEvents = False
Worksheets(2).Range(monr).EntireRow.Copy Destination:=Target
Application.EnableEvents = True
Else
MsgBox "inconnu"
End If
End With
End If
End Sub
J'aimerai maintenant pouvoir faire la même chose mais "en transposé".
C'est-à-dire feuille 2,
1 2 3
A Code 87650 45370
B Couleur Bleu Rouge
C Désignation Crayon Stylo
et donc feuille 1,
1 2
A Code ......
B Couleur ......
C Désignation .......
De manière à ce que si j'écrive 87650 ou bien 45370, les autres données se remplissent automatiquement.
Voici ce que j'ai fait, mais ça ne fonctionne pas.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Then
With Worksheets(2).Range("A1:Z1")
Set M = .Find(Target, LookIn:=xlValues)
If Not M Is Nothing Then
variable = M.Column & "1"
Application.EnableEvents = False
Worksheets(2).Range(variable).EntireColumn.Copy Destination:=Target
Application.EnableEvents = True
Else
MsgBox "inconnu"
End If
End With
End If
End Sub
Je me suis forcément trompé quelque part mais impossible de trouver. Cela fait 4h que je suis dessus ...
Quelqu'un peut-il m'aider ?
Merci pour votre aide !
Voici ma feuille 2,
A B C
1 Code Couleur Désignation
2 87650 Bleu Crayon
3 45370 Rouge Stylo
Ensuite dans la feuille 1,
A B C
1 Code Couleur Désignation
2 ......... ........... ...........
Mon souhait est de réaliser une macro afin que quand j'écrive 87650 par exemple, en A2 feuille 1, Excel me remplisse automatiquement les autres champs de la ligne (c'est-à-dire Bleu et Crayon).
Grâce à un autre site, j'ai trouvé une première macro qui marche sans problème:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Worksheets(2).Range("a:a")
Set c = .Find(Target, LookIn:=xlValues)
If Not c Is Nothing Then
monr = "a" & c.Row
Application.EnableEvents = False
Worksheets(2).Range(monr).EntireRow.Copy Destination:=Target
Application.EnableEvents = True
Else
MsgBox "inconnu"
End If
End With
End If
End Sub
J'aimerai maintenant pouvoir faire la même chose mais "en transposé".
C'est-à-dire feuille 2,
1 2 3
A Code 87650 45370
B Couleur Bleu Rouge
C Désignation Crayon Stylo
et donc feuille 1,
1 2
A Code ......
B Couleur ......
C Désignation .......
De manière à ce que si j'écrive 87650 ou bien 45370, les autres données se remplissent automatiquement.
Voici ce que j'ai fait, mais ça ne fonctionne pas.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Then
With Worksheets(2).Range("A1:Z1")
Set M = .Find(Target, LookIn:=xlValues)
If Not M Is Nothing Then
variable = M.Column & "1"
Application.EnableEvents = False
Worksheets(2).Range(variable).EntireColumn.Copy Destination:=Target
Application.EnableEvents = True
Else
MsgBox "inconnu"
End If
End With
End If
End Sub
Je me suis forcément trompé quelque part mais impossible de trouver. Cela fait 4h que je suis dessus ...
Quelqu'un peut-il m'aider ?
Merci pour votre aide !