Déplacer une ligne entière d'une feuille à l'autre sous condition

mwaaa9

XLDnaute Nouveau
Bonjour à tous, et merci de l’intérêt que vous porterez à me venir en aide.

N'ayant aucune base en programmation VBA (je viens d'ailleurs simplement de comprendre à quoi pouvait donc servir une macro), je me permets de demander de l'aide.

Dans le cadre de la planification des affaires que nous avons en charge au sein de notre service, j'ai entrepris la création d'un tableau faisant apparaitre les éléments clés dont j'ai besoins pour une avoir une vue générale de notre charge de travail. Afin d'enrichir et de rendre ce tableau plus attractif, je souhaite notamment réaliser une macro permettant de déplacer la ligne entière relative à une affaire à partir du moment ou son état est : "soldée" (Voir colonne I du fichier joint). L'idée est d'avoir une première feuille : "affaires en cours" et une autre "actions soldées".

En espérant avoir été clair, je vous joins mon fichier exemple. Je tiens à signaler que j'ai déjà essayé d'adapter des programmes trouvés sur ce forum à mon tableau en vain, étant donné mon niveau de débutant en VBA. Rien ne sert donc de vous cacher que j'attends un programme complet, puisque je ne serais pas capable d'y apporter modifications ou améliorations. Cependant, je suis tout à fait preneur des nombreux commentaires et explications que vous pourrez intégrer aux programmes, afin de comprendre un minimum la méthodologie.

Merci d'avance pour votre aide
 

Pièces jointes

  • Copie de Planification -1.xls
    80 KB · Affichages: 56
  • Copie de Planification -1.xls
    80 KB · Affichages: 61
  • Copie de Planification -1.xls
    80 KB · Affichages: 52
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Déplacer une ligne entière d'une feuille à l'autre sous condition

Bonsoir ,

Pour le transfert de ligne , pas trop compliqué,

Par contre l'utilisation des plans va compliquer le truc.

L'utilisation des filtres serait surement une meilleure méthode surtout si tu n'y connais rien de rien en VAB
 

mwaaa9

XLDnaute Nouveau
Re : Déplacer une ligne entière d'une feuille à l'autre sous condition

Bonsoir,

Tout d'abord merci pour votre réponse,
L'utilisation des plans n'est pas indispensable, je peux dissocier les groupes.

Le transfert de ligne serait il plus facile ?

Merci de votre aide
 

mwaaa9

XLDnaute Nouveau
Re : Déplacer une ligne entière d'une feuille à l'autre sous condition

Ci joint un "bon" début, qui ne fonctionne malheureusement pas très bien : Erreur 13, incompatibilité de type sur la ligne en rouge ci dessous:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig1 As Long
choix = Target.Value
Select Case choix
Case Is = "EN COURS"
Target.Interior.Color = RGB(0, 254, 84)
Target.Font.ColorIndex = 1
Case Is = "STANDBY"
Target.Interior.Color = RGB(0, 232, 254)
Target.Font.ColorIndex = 1
Case Is = "PREPARATION"
Target.Interior.Color = RGB(254, 234, 192)
Target.Font.ColorIndex = 1
Case Is = "SOLDEE"
Target.Interior.Color = RGB(254, 126, 0)
Target.Font.ColorIndex = 1

End Select
End Sub


Sub Macro1()
Dim lig As Integer
Dim lig2 As Integer
With ActiveSheet
For lig = Range("J65536").End(xlUp).Row To 2 Step -1
lig2 = Sheets("archive").Range("J65536").End(xlUp).Row
If Range("J" & lig).Value = "OUI" Then
Rows(lig).Cut Sheets("archive").Rows(lig2 + 1)
Rows(lig).Delete Shift:=xlUp
End If
Next
End With
End Sub


J'ai établi ce code à partir d'autres programmes que j'ai pu consulter sur ce forum, sans pour autant avoir aucune connaissance VBA.
Quelqu'un peut il me corriger et/ou essayer de m'expliquer les erreurs.

Merci pour votre aide
 

Pièces jointes

  • Copie de Planification -1.xls
    85 KB · Affichages: 51
  • Copie de Planification -1.xls
    85 KB · Affichages: 52
  • Copie de Planification -1.xls
    85 KB · Affichages: 54

camarchepas

XLDnaute Barbatruc
Re : Déplacer une ligne entière d'une feuille à l'autre sous condition

Bonjour

Je joins le fichier mais comme j'ai ajouté un bouton et que je suis en Excel2010 , pas sur d'être compatible pour celui ci.

Je te reporte donc le code ci dessous
Voici pour le transfert :
dans un module standard

Code:
Sub Soldé()
Dim LigneFin As Long, Ligne As Long
Dim Rubrique As String, Lettre As String
Dim cible As Long
Dim trouve As Range
LigneFin = Sheets("NIL- M  Actions en cours").Range("A" & Rows.Count).End(xlUp).Row
Ligne = 6
Do
If Sheets("NIL- M  Actions en cours").Range("A" & Ligne).Font.Bold = True Then
  Rubrique = Sheets("NIL- M  Actions en cours").Range("A" & Ligne)
End If
If Sheets("NIL- M  Actions en cours").Range("I" & Ligne) = "SOLDEE" Then
Set trouve = Sheets("NIL-M Actions SOLDEES").Range("A:A").Find(Rubrique, lookat:=xlWhole)
Sheets("NIL-M Actions SOLDEES").Rows(trouve.Row + 1).Insert
Sheets("NIL- M  Actions en cours").Rows(Ligne).Copy Destination:=Sheets("NIL-M Actions SOLDEES").Rows(trouve.Row + 1)
Sheets("NIL- M  Actions en cours").Rows(5).Copy Destination:=Sheets("NIL- M  Actions en cours").Rows(Ligne)
End If
 Ligne = Ligne + 1
Loop Until Ligne > LigneFin
End Sub


et dans le code de l'onglet Action en cours :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig1 As Long
choix = Target.Text
Select Case choix
Case Is = "EN COURS"
Target.Interior.Color = RGB(0, 254, 84)
Target.Font.ColorIndex = 1
Case Is = "STANDBY"
Target.Interior.Color = RGB(0, 232, 254)
Target.Font.ColorIndex = 1
Case Is = "PREPARATION"
Target.Interior.Color = RGB(254, 234, 192)
Target.Font.ColorIndex = 1
Case Is = "SOLDEE"
Target.Interior.Color = RGB(254, 126, 0)
Target.Font.ColorIndex = 1

End Select
End Sub
 

Pièces jointes

  • Planification -1.xls
    116 KB · Affichages: 89

mwaaa9

XLDnaute Nouveau
Re : Déplacer une ligne entière d'une feuille à l'autre sous condition

Waoouhhh ça fonctionne nickel, pas de problème pour la compatibilité. Je vous remercie vraiment pour le temps passé à me venir en aide, de plus de manière hyper-réactive. Que c'est bon quand tout fonctionne après tout le temps passé à se prendre la tête!

Tant que j'y suis, peut être pouvez vous dans un premier temps m'indiquer si cela est faisable assez facilement, (l'objectif n'est pas de se prendre la tête pendant des jours) : Sur la feuille "actions en cours", peut- on envisager d'inclure un autre bouton qui permettrait, lors d'une mise à jour, chaque semaine, de reporter la couleur des cellules "état actuel" (colonne I) à l'intérieur du calendrier dans la colonne correspondante.
Pour être plus clair, sur le fichier joint, imaginons que nous sommes en semaine 39, je souhaiterais reporter les couleurs de la colonne I dans la colonne AP. La ou cela doit certainement se compliquer c'est qu'en semaine 40, il faut cette fois ci reporter les couleurs dans la colonne AQ et incrémenter à chaque fois...

Encore une fois merci pour votre aide!!!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 145
Messages
2 085 759
Membres
102 965
dernier inscrit
Mael44