Besoin de VBA

laurent06

XLDnaute Nouveau
Bonsoir à tous,

J'ai un pb avec mon tableau joint,:confused:
je voudrais que dans la feuille "base marchés" quand dans la colonne "ETAT" apparait "Terminé" la ligne du marché soit copié dans la feuille intitulée "Marchés Terminés" de même quand apparait"A Relancer", la ligne du marché soit copiée dans la feuille "Marchés à Relancer".

Merci de votre grande aide.:rolleyes:

Par contre si vous pouvais m'expliquer comment vous vous y prenez afin que je puisse appliquer sur des feuille contenant plus de marchés.

Un autre petit truc pour les changements de couleur si vous pouvez faire une macro et m'expliquer pour que je puisse changer les couleurs ou en ajouter en fonction de nouveaux états.

Je sais c'est beaucoup de travil mais je suis complètement bloqué.

Merci par avance.;)
 

Pièces jointes

  • Marchés_DCPMU VBA2.zip
    24.2 KB · Affichages: 57

VBA_DEAD

XLDnaute Occasionnel
Re : Besoin de VBA

salut laurent 06, le forum

je suis pas balaise en VBA mais j`ai pleins d`exemples donc ca peut t`aider la je crois.
pour ton probleme de report vers une autre feuille, j`ai une macro qui fait cela donc je te colle l`exemple.
la j`ai pas le temps de regarder mais si tu arrives pas a ajuster le code, je veux bien essayer lundi

desole de ne pouvoir faire mieux aujourd`hui mais regarde le code est court/simple (merci a celui qui avait fait cela!)
en partant de la quelqu`un pourra t`aider au moins sur ce probleme de report
a+

VBA_DEAD
 

Pièces jointes

  • Reportsi.zip
    13.3 KB · Affichages: 53

Cousinhub

XLDnaute Barbatruc
Re : Besoin de VBA

Bonjour, tu insères ceci dans le code de la feuille (Alt + F11, dans le code de la première feuille Base Marché) :
Dans le cas ou tu modifies manuellement la date de fin en AKxx, excel ne pouvant deviner tout seul si la date est dépassée.
Il y a possibilité d'affecter une macro, sur la même base, mais en testant toutes les cellules de la colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 37 Or Target.Column = 41 And Target.Count = 1 Then
op = Cells(Target.Row, 4).Value
Select Case op
Case Is = "Terminé"
Target.EntireRow.Copy Destination:= _
Sheets("Marchés Terminés").[a65000].End(xlUp).Offset(1, 0)
Case Is = "A Relancer"
Target.EntireRow.Copy Destination:= _
Sheets("Marchés à relancer").[a65000].End(xlUp).Offset(1, 0)
End Select
End If
End Sub

Et pour la macro :

Sub export()
Application.ScreenUpdating = False
For Each cel In Range("$D$8:D" & [d65000].End(xlUp).Row)
Select Case cel.Value
Case Is = "Terminé"
cel.EntireRow.Copy Destination:= _
Sheets("Marchés Terminés").[a65000].End(xlUp).Offset(1, 0)
Case Is = "A Relancer"
cel.EntireRow.Copy Destination:= _
Sheets("Marchés à relancer").[a65000].End(xlUp).Offset(1, 0)
End Select
Next cel
End Sub
 

Discussions similaires

  • Question
Microsoft 365 SIERREUR
Réponses
6
Affichages
271
Réponses
12
Affichages
394