![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: avril 2007
Messages: 5
|
Bonjour,
Sur ma base de données j'ai deux colonnes "critique" et "lettre", chacune avec une liste deroulante avec les choix : "en cours" , "en révision", "validé", "imprimé" et "posté". Ma troisieme colonne est "PostéC" comment faire une formule qui permette des lors que j'ai mis "oui" dans la derniere ("PostéC") les deux listes déroulantes se mettent automatiquement sur "posté"? Merci |
|
|
|
| ANNONCES | |||
|
|
|
|
#3 (permalink) | |
|
XLDnaute Accro
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Version Excel : Excel 2003 (PC)
Messages: 1 408
|
Citation:
Soit, comme dit vinz602n tu mets un fichier d'essai : la feuille concernée et 3, 4 lignes avec seulement ce qui concerne ton problème Soit tu précises tes données : Liste déroulante ? Liste de validation, contrôle ou formulaire ? Colonne concernée ? Tu ne peux pas faire un feedback sur les cellules (si A et B alors C, Mais si C alors A et B) par formule. Il faut passer par le VBA Mais pour construire ta macro, il faut des infos A+ |
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: avril 2007
Messages: 5
|
Voila le fichier BDDYPpm Final.xls
|
|
|
|
|
|
#5 (permalink) | |
|
XLDnaute Accro
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Version Excel : Excel 2003 (PC)
Messages: 1 408
|
Citation:
Clic-droit sur le nom de l'onglet(BDD), et tu fait un copier/coller de la macro suivante : Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_Worksheet_Change
'Posté L /J
Dim Cel As Range
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each Cel In Target
If Cel.Column = 14 And UCase(Cel) = "OUI" Then
Cel.Offset(0, -2) = "Posté"
Cel.Offset(0, -4) = "Posté"
End If
If Cel.Column = 10 Or Cel.Column = 12 Then
If Cells(Cel.Row, "J") = "Posté" And _
Cells(Cel.Row, "L") = "Posté" Then Cells(Cel.Row, "N") = "Oui"
End If
Next Cel
Sort_Worksheet_Change:
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
Err_Worksheet_Change:
MsgBox (Err.Number & " - " & Err.Description)
Resume Sort_Worksheet_Change
End Sub
-On bloque la gestion des événements et du rafraîchissement écran - Pour chaque cellule modufiée : -- Si elle appartient à la colonne N et contient "Oui", on met posté en J et L -- Si elle appartient à J ou à L --- Si J="Posté" et L="Posté" on met "Oui" dans N - On remet en route gestion événements et rafraîchissement écran La gestion des événements : Son blocage évite le bouclage de la macro sur elle-même : j'inscris Oui => lancement automatique de la macro => Posté => changement de la feuille => Oui => Changement de la feuille etc... Donc, après l'avoir bloquée, les changements de la feuille ne lance plus la macro, jusqu'à ce qu'on la débloque Si une erreur Excel arrive avant la remise en action de la gestion, on force la macro à se terminer en passant par une action de remise en route de la gestion des événements en gérant les erreurs A+ |
|
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Formule Conditionnelle selon une liste déroulante | atfcrew | Forum Excel | 1 | 05/12/2006 18h40 |
| Formule dans colonne avec liste déroulante | Feutrine | Forum Excel | 11 | 24/09/2006 19h18 |
| bouton liste deroulante formule | papat | Forum Excel | 13 | 28/02/2006 19h57 |
| Par rapport a une liste | Valérie | Forum Excel Downloads - Archives | 3 | 24/12/2004 13h20 |
| liste deroulante et formule CHOISIR | phil | Forum Excel Downloads - Archives | 5 | 02/04/2004 13h58 |