Déclencher une macro après la sélection d'une valeur de laliste déroulante

Bonjour,

J'ai une liste déroulante dans la " feuille1 " composé de ( OKAY, NON, BIEN )

Je souhaite qu'a chaque fois que je choisi OKAY sur cette liste, ça déclenche des actions

1. sélection de toute la ligne concerné uniquement

2. Coller dans la feuille2 à la ligne vide

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Select Case Range("A1")
Case "OKAY ": First_one
End Select
End If
End Sub

Sub First_one()

EntireRow.Select
Selection.Copy
Sheets("Feuil2").Select
LastRow = Range("BC" & Rows.Count).End(xlUp).Row + 1
Range("A1" & LastRow).PasteSpecial Paste:=xlPasteValues

End Sub

Bonjour,

"1. sélection de toute la ligne concerné uniquement"

C'est quoi, toute la ligne concernée uniquement ? Comment on le sait ? Comment l'ordinateur le sait ?

la ligne concernée c'est la ligne sur laquelle je vient de choisir " OKAY"

Saurais-tu comment la sélectionner ?

Ton code ne se déclenche que sur la cellule A1, donc en gros ça va toujours copier la ligne 1, c'est bien ce que tu veux ?

Non, en gros dans la colonne A je vais constamment changé de valeur (OKAY, NON, BIEN) aléatoirement dans ma liste déroulante.

Ce que je souhaite, c'est qu'une fois que le changement est fait et que la valeur choisi est ("OKAY"), toute la ligne de cette cellule soit sélectionné

pour que je puisse la collé dans une autre feuille. Merci

Ceci devrait donc faire l'affaire :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Select Case Target
Case "OKAY"
LastRow = Sheets("Feuil2").Range("BC" & Rows.Count).End(xlUp).Row + 1
Rows(Target.Row).Copy Destination:=Sheets("Feuil2").Rows(LastRow)
End Select
End If
End Sub

J'ai notamment enlevé l'espace que tu avais mis dans "OKAY "

Merci beaucoup !

J'ai une erreur au niveau de case "OKAY"

d'incompatibilité de type. c'est peut-être parce que j'ai une liste déroulante non ?

Non.

Chez moi ça fonctionne très bien.

M'enfin au pire, tu peux poster une version allégée de ton fichier, sans données confidentielles, qui reproduisent ton problème. Parce que là, à l'aveugle ...

10trial.ods (3.74 Ko)

Voici le fichier sur lequel je travaille. J'ai essayé ton code + le mien mais ça bloque sur case "OKAY"

Ods, ce n'est pas un fichier Excel ... Les macros ne fonctionnent pas

ne fonctionnent pas sur ods en générale vous voulez dire ?

Oui, ce n'est pas le même langage de programmation.

Et tu as posté dans la rubrique Excel.

Ahh mince alors!

Vous auriez une réponse pour moi ?

Malheureusement non. Je fais une allergie à open office.

Mais peut-être quelqu'un passera-t-il dans le coin et saura.

Haha, je comprends,

Merci beaucoup en tout cas !

J'ai finalement allégé mon code et il a très bien fonctionné. j'ai du ajouter un bouton

Sub First_one()

Sheets("Feuil1").Select

If ActiveCell = "OKAY" Then

'select the entire row where it has been detected

ActiveCell.EntireRow.Copy

'paste it on the first empty line in tab2

Sheets("Feuil2").Select

LastRow = Range("E" & Rows.Count).End(xlUp).Row + 1

Range("A" & LastRow).PasteSpecial Paste:=xlPasteValues

Else

End If

End Sub

Rechercher des sujets similaires à "declencher macro selection valeur laliste deroulante"