Macro Copier Coller avec condition

depotmoda

XLDnaute Nouveau
Bonjour à toutes et à tous

J'ai créé un tableau excel pour gérer les payement fournisseur au boulot.

Je m'occupe des payements pour plusieurs de nos sociétés (société A, société B, Société C ...)

J'ai donc fais un tableau où j’introduis les échéances des payements et dés que l'échéance est dépassé, j'ai fais une mise en forme conditionnelle et j'ai une cellule qui devient rouge et il se met en mode RETARD. Dés que j’introduis la date de payement, ça change et ça se met en "payé". Si la date d'échéance n'est pas à terme, c'est mis "à jour"

Tout marche bien, mon seul soucis, c 'est que je me retrouve après qques semaines avec bcp trop de lignes "payé" et ça polue mon fichier, mais je voudrais les garder pour mon historique.

Je voudrais donc que dés que la facture est payé la ligne soit copiée sur la feuille "payé" et qu'elle n’apparaisse plus dans mon échéancier principal. Il faudrait aussi que me retrouve pas avec pleins de lignes vide une fois que les données sont transférées à l'autre feuille.

Le problème c'est que je ne sais pas faire de macro, j'essaye d'apprendre mais tout seul c 'est un peux compliqué et là ça fais 15 jours que je galère.

Qqun pourrait il, svp, m'aider avec une macro sympathique qui se mettrais en route toute seule, sans devoir appuyer sur un bouton pour l'activer

(c) CJoint.com, 2012

Merci infiniment
 

Pièces jointes

  • exemple échéancier .xls
    104 KB · Affichages: 51

don_pets

XLDnaute Occasionnel
Re : Macro Copier Coller avec condition

'llo tous,

Voici ma contribution :

Elle prend un peu le chemin de 00.

Code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Cel As Range, Plage As Range
Set Plage = Intersect(Target, Range([G1:G36000], Cells(Rows.Count, "G").End(xlUp)))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
If Cel.Value = "payé" Then
With Sheets("Payé")
Rows(Cel.Row).Cut .Cells(Rows.Count, "A").End(xlUp)(2)
End With
End If
Next Cel
Application.CutCopyMode = False


End Sub


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

ActiveWorkbook.Worksheets("Feuille2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuille2").Sort.SortFields.Add Key:=Range("E36000"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuille2").Sort
.SetRange Range("A4:G36000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


End Sub
 

Pièces jointes

  • pets_exemple échéancier .xls
    115.5 KB · Affichages: 53
Dernière édition:

don_pets

XLDnaute Occasionnel
Re : Macro Copier Coller avec condition

Hey as tu bien fait 4 fois le tour de ta chaise ? Sinon cela ne fonctionne pas.

Et plus sérieusement, pardonne moi je ne t'ai pas expliqué comment cela fonctionnait.

Si tu fais un simple clic sur l'une des lignes qui comportent le statu payé, alors ta ligne disparaîtra pour être historisée dans l'onglet "payé". De la même manière si tu changes un statu "Retard" en "payé", cela fera la même chose.

Et comme les lignes sont coupées, pour ne pas avoir des trous bien moche dans ton tableau, tu verras que si tu fais un double clic sur n'importe quelle cellule, ton tableau sera trié (par date de paiement) afin qu'il soit tout beau.
 

depotmoda

XLDnaute Nouveau
Re : Macro Copier Coller avec condition

Bonjour Double Zero,

Je te remercie INFINIMENT pour le code, ça marche à merveille, c'est exactement ce que je voulais :)

Cependant (pcq y'a toujours un hic) J'avais envoyé le post via ma machine chez moi où j'utilise excel 2011 pour mac, mais au bureau on est sur Open Office, j'ai essayé de recopier le code sur open mais ça ne réagis pas, ça ne fais rien... En plus sur la version finale du document, on a rajouté deux colonnes, du coup même sur ton document excel en rajoutant les colonnes ça déstabilise tout...

Est ce que ce serrait abusé si je te demandais de refaire exactement la même chose sur la dernière version du fichier, mais sur open office?

Je te remercie d'avance !!
 
Dernière édition:

depotmoda

XLDnaute Nouveau
Re : Macro Copier Coller avec condition

Re Double Zero,

C'est pas grave, je vais m'arranger pour qu'on m'installe Microsoft Office au bureau, ils n'auront pas le choix :mad:

Mais est ce que je peux juste te demander d'adapter ta macro à la dernière version de mon fichier, sous excel :)

Pcq moi j'ai essayé d'adapter la macro (au fait on a juste rajouter 2 colonnes) mais ça me fais des trucs bizarres, j'ai un morceau qui est copié, puis pas l 'autres, ou alors y'a un morceau qui disparait et plus de collage....

Je te remercie !!!!
 

Pièces jointes

  • échéancier DM pour excel.xls
    115.5 KB · Affichages: 45

DoubleZero

XLDnaute Barbatruc
Re : Macro Copier Coller avec condition

Bonjour, depotmoda, don_pets, le Forum,

Voici une nouvelle version à tester.

Les formules en colonnes H et I sont automatisées.

A bientôt :)
 

Pièces jointes

  • 00 - depotmoda - Paiements archiver V2.xls
    125.5 KB · Affichages: 54

depotmoda

XLDnaute Nouveau
Re : Macro Copier Coller avec condition

Salut DoubleZero, don_pets, et tout le reste...

Bon, je m'en sort plus de nouveau :mad::mad:

Je ne sais pas si je doit créer un nouveau sujet ou si je peux continuer ici....

Afin de saisir les données plus rapidement, j'ai créer un Formulaire de saisie (userform1)

Pour le formulaire en lui même pas de soucis, j'ai parcouru des vidéos sur youtube, c'étais pas très compliqué...

Par contre pour le code, je comprend pas, il me dit que y'a une erreur, pourtant j'ai bien recopier donc ça devrait marcher...

En plus j'aurais aimé pour la colonne A pouvoir sélectionner pcq j'ai mis une combobox et pas une texbox, mais ça c'est encore une autre histoire.

Pour la colonne B, F, G, c'est pareil c'est une combobox et comme ce sont des dates, j'aurais aimé avoir un petit calendrier qui s'ouvre pour sélectionner la date.

Le code que j'ai trouvé sur le net je pense que c'est uniquement pour tout remplir "manuellement"

Voila le code:

Option Explicit


Private Sub UserForm_Click()

End Sub
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Colonne As Integer
Dim derligne As Integer

derligne = Sheets("A Payer").Range("A65000").End(xlUp).Row + 1

For Each Ctrl In UserForm1.Controls

Colonne = Val(Ctrl.Tag)

If Colonne > 0 Then Sheets("A Payer").Cells(derligne, Colonne) = Ctrl

Next


End Sub


Erreur de compilation:
Type défini par l'utilisateur non défini


Voici le fichier...

PS: J'ai aussi oublié, Est ce que vous savez m'aider aussi pour le code des boutons "annuler" et "Quitter"


Merci à Vous,
 

Pièces jointes

  • essais formulaire 1.xls
    169 KB · Affichages: 45
  • essais formulaire 1.xls
    169 KB · Affichages: 45
  • essais formulaire 1.xls
    169 KB · Affichages: 53
Dernière édition:

Discussions similaires

Réponses
9
Affichages
425
Réponses
5
Affichages
431

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal