Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

déplacer des lignes en fonction d'une cellule remplie

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 !

jeannot68

XLDnaute Occasionnel
bonjour à tous

je n'y arrive plus;;; please help.
J'ai un tableau qui regroupe les travaux à effectuer . Lorsque la tache est réalisée, après saisie de la date (colonne I) la ligne est coloriée. Je souhaite aller encore plus loin en voulant déplacer la ligne si la cellule de la colonne I est rempli vers la feuille "travaux terminés". Il peut y avoir un sacrée nombre de ligne.

Je recherche donc une macro ou un bouton qui me permettrait de mettre en evidence les taches qui reste a faire dans "travaux en cours" et sur la feuille "travaux terminés" l'ensemble des taches déja effectuées.
Je viens de commencer a m'interesser a la vba.
Ci joint un exemple pour la compréhension.

Merci d'avance de votre aide
A bientot
 

Pièces jointes

Re : déplacer des lignes en fonction d'une cellule remplie

Bonsoir jeannot68,

Un report de valeur par doubleclick dans la colonne C.

1- Si cellule active vide ou Cellule colonne I vide ou colonne de la cellule active non C alors arrêt de la macro ;
2- Report de la ligne en archive et suppression de la ligne des travaux en cours.

Cordialement

Bernard
 

Pièces jointes

Re : déplacer des lignes en fonction d'une cellule remplie

RE,

C'est magique 🙂 🙄

Plus sérieusement, c'est le double click qui active une macro qui se trouve dans le module de feuille :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column <> 3 Or ActiveCell = "" Or ActiveCell.Offset(0, 6).Value = "" Then Exit Sub
Dim Derlig As Integer
With Sheets("travaux terminés")
Derlig = .Range("C65000").End(xlUp).Row + 1
.Cells(Derlig, 1) = .Cells(Derlig - 1, 1) + 1
.Range(.Cells(Derlig, 2), .Cells(Derlig, 10)).Value = ActiveCell.EntireRow.Range("B1:J1").Value
End With
ActiveCell.EntireRow.Delete
End Sub

Cordialement

Bernard
 
- 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

C
Réponses
4
Affichages
1 K
cecenico
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…