Liste déroulante

Bonjour,

j'ai tout simplement 2 feuilles :

Feuil1 et Feuil 2.

Sur la Feuil2, j'ai une liste déroulante en G1 avec Validé, Non Validé, NOk.

Sur la Feuil1, j'ai aussi une liste déroulant en H1 avec Ok, NOK, Attente.

Je voudrais que quand je passe la cellule G1 en NOk sur la Feuil2, la cellule H1 sur la Feuil1 passe aussi en NOk.

Cdlt.

Bonjour,

SI j'ai bien comrpis ce que tu souhaites, il faut passer par une macro événementielle liée à Feuil2, macro qui s'active dès qu'un changement est constaté.

à insérer dans le code de feuil2

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 7 Or Target.Count > 1 Then Exit Sub
If UCase(Target) = "NOK" Then
 Worksheets("Feuil1").Range("H" & Target.Row) = "NOk"
End If
End Sub

Bonjour, j'ai ben mis le code mais il ne se passe rien.

Bonjour,

le code s'activera dès que tu intoduiras un Nok en colonne G sur feuil2, il mettra un nok dans la ligne équivalente sur la feuil1.

si tu veux mettre toutes les cellules de la colonne H de feuil1 là où tu as Nok en colonne G en feuil2, il faudra une autre Macro.

que voici, à ajouter dans un module, et à lancer via alt-F8 (en principe une seule fois, car après la macro évenementielle fera la synchro automatiquement.

Sub setnok()
Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
dlws2 = ws.Range("G" & Rows.Count).End(xlUp).Row
For i = 1 To dlws2
If UCase(ws2.Range("G" & i)) = "NOK" Then ws1.Range("H" & i) = "NOk"
Next i
End Sub

bonjour,

Erreur sur ligne surligner : Objet requis.

Sub setnok()
Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
dlws2 = ws.Range("G" & Rows.Count).End(xlUp).Row
For i = 1 To dlws2
If UCase(ws2.Range("G" & i)) = "NOK" Then ws1.Range("H" & i) = "NOk"
Next i
End Sub

[/quote]

Bonjour,

Sub setnok()
Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
dlws2 = ws2.Range("G" & Rows.Count).End(xlUp).Row
For i = 1 To dlws2
If UCase(ws2.Range("G" & i)) = "NOK" Then ws1.Range("H" & i) = "NOk"
Next i
End Sub

bonjour,

Il n'y a plus d'erreur dans la macro mais il ne se passe rien..

Cdlt.

Bonjour,

En pièce jointe un test de la solution.

Cdlt.

7testv1.xlsm (22.41 Ko)

Bonjour,

le code ne fonctionne pas suite à tes modifications.

la fonction UCASE(texte) met le texte en majuscule

si tu mets

if Ucase(texte)="NOk" then

-> cette condition ne sera jamais vraie....

codes adaptés

21testv1.xlsm (21.71 Ko)

Merci H2so4, ça fonctionne niquel.

Une petite question, la c'est pour 1 colonne (G), si je veux faire de la colonne G à J par exemple ?

Cdlt.

Bonjour,

code apdapté pour prendre en compte un NOK en colonnne G,H,I,J en feuil2 et mise-à-jour de la colonne H en feuil1

5testv1.xlsm (22.60 Ko)

Merci H2so4, juste niquel.

Cdlt.

Bonjour h2so4,

J'ai répété l'opération pour les cellules L, M, N, O mais cela ne fontionne pas, comment je peux faire ?

Cdlt.

Bonjour,

j'ai adapté lecode de feuil2 pour qu'il soit plus facile à modifier si tu veux ajouter ou supprimer des colonnes dont il faut tenir compte pour mettre NOK en colonne H sur feuil1.

code de feuil2

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not (Target.Column >= Range("G1").Column And Target.Column <= Range("J1").Column) _
       Or Not (Target.Column >= Range("L1").Column And Target.Column <= Range("O1").Column) _
       Or Target.Count > 1 Then Exit Sub
    If UCase(Target) = "NOK" Or UCase(Left(Target, 9)) = "NON VALID" Then
        Worksheets("Feuil1").Range("H" & Target.Row) = "NOK"
    End If

End Sub

code dans le module

Sub setnok()

Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
dlws2 = ws2.Range("G" & Rows.Count).End(xlUp).Row
For i = 1 To dlws2
 For Each j In Array("G", "H", "I", "J", "L", "M", "N", "O")
If UCase(ws2.Range(j & i)) = "NOK" Or UCase(Left(ws2.Range(j & i), 9)) = "NON VALID" Then ws1.Range("H" & i) = "NOK"
Next j
Next i

End Sub
4testv1.xlsm (22.95 Ko)

Bonjour,

Je me suis mal exprimé, en faite pour les colonnesL,M,N,O en Feuil2, il faut que ce soit sur la colonne K en Feuil1 et non H.

Cdlt.

Bonjour,

voici les macros adaptées.

2testv1.xlsm (23.01 Ko)

Bonjour,

Je viens de faire un test, cela ne fonctionne pas.

Je te mets le fichier car au lieu de te demander petit obut par petit bout, autant qu'il soit complet.

Cdlt.

1testv1.xlsm (33.95 Ko)

bonjour,

en espérant que cela fonctionnera cette fois-ci.

7testv1.xlsm (34.21 Ko)

Bonjour,

Cela fonctionne mais j'aimerai savoir pourquoi le msgbox ?

Cdlt.

Bonjour,

tu peux enlever la ligne.

Rechercher des sujets similaires à "liste deroulante"