mise en forme d'une ligne entière selon un champ ou transfert vers une autre feuil

  • Initiateur de la discussion Initiateur de la discussion Matrix_pr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Matrix_pr

XLDnaute Nouveau
Bonjour,

Je suis embêté. Il y a tellement des infos sur ce site, mais je ne trouve pas ce que je veux faire et je m'y connais très très peu en VB.

Simple: Je veux que ma ligne entière soit grise pâle si la cellule statut = "terminé" et je veux que la ligne entière redevienne noire si le statut change à autre chose que "terminé".

complexe: Si le statut = terminé, la ligne complète se déplace dans une autre feuille nommé Terminés et s'accumule à la suite des autres. Par contre, si elle devient en cours dans cette feuille, elle revient à sa feuille d'origine (projet). Le tout, sans créer de doublons. Ce serait génial, mais ça l'air tellement compliqué.

P.S Le tout doit s'appliquer à la feuille entière, car je n'ai aucune idée du nombre de ligne qui sera utilisée.

à noter que je fais ce fichier sur un pc, mais qu'il sera utilisé sur un mac alors côté compatibilité, je ne sais pas si cela causera des bugs de compatibilité.

Merci pour votre aide, je suis vraiment coincé!
 

Pièces jointes

Re : mise en forme d'une ligne entière selon un champ ou transfert vers une autre feu

Bonjour,
A mettre dans Projets (clic droit sur l'onglet / Visualiser le code)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Intersect(Target, Columns(6)).Value = "Terminé" Then
            DlgnT = Sheets("Terminés").Cells(Rows.Count, 2).End(xlUp).Row
            Target.EntireRow.Cut Destination:=Sheets("Terminés").Cells(DlgnT + 1, 1)
            Target.EntireRow.Delete
        End If
    End If
End Sub
A mettre dans Terminés
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Intersect(Target, Columns(6)).Value <> "Terminé" And _
           Intersect(Target, Columns(6)).Value <> "" Then
            DlgnP = Sheets("Projets").Cells(Rows.Count, 2).End(xlUp).Row
            Target.EntireRow.Cut Destination:=Sheets("Projets").Cells(DlgnP + 1, 1)
            Target.EntireRow.Delete
        End If
    End If
End Sub
A+
 
Re : mise en forme d'une ligne entière selon un champ ou transfert vers une autre feu

ça marche! Le problème est quedès que j'essais d'entré une nouvelle ligne dans projets, ça me fait (Erreur d'exécution 91, variable d'objet ou variable de bloc With non définie. Je n'ai aucune idée de ce que cela signifie.
lorsque je clique sur débogage, le système fait référence à la ligne suivante (en jaune)
If Intersect(Target, Columns(6)).Value = "Terminé" Then
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour