Transfert d'informations sur autre feuille

Bonjour à tous,

Ne sachant pas utiliser VBA et créer des macros, je sollicite votre aide. J'espère être le plus clair possible. Je vous met en PJ un fichier similaire avec des données chiffrées erronées.

Voilà, je souhaite créer un programme permettant de dire si la facture X est "payé", que toute la ligne avec les informations du produit, le prix, etc.. soit transférée sur une autre feuille EXCEL que je nommerai "PAIEMENTS". Donc en gros pour vous expliquer: j'ai une feuille EXCEL où j'ai les ENGAGEMENTS de l'entreprise. Et certains engagements sont payés et d'autres ne le sont pas. Donc dans la feuille paiement, je veux qu'il y est que les trucs payés et que le transfert se fasse automatiquement dès que la personne mette "OK" dans la case payé de la feuille ENGAGEMENTS.

Merci d'avance pour votre aide.

22fichier.xlsx (10.21 Ko)

Bonjour MamounEl,

Je suis persuadé qu'il va y avoir des pros du VBA pour te fournir la macro demandée...

Mais il y a une autre voie, qui ne passe pas forcément par les macros, et qui utilise une autre répartition de tes données, ainsi que des formules. Cette voie te permettra d'avoir des totalisations et des statistiques tous azimuts (fournisseur, rubrique, période, etc...)...

Je te construis un petit exemple dans les minutes qui viennent, si ça t'intéresse.

A+ Daniel

Bonjour Daniel,

Pour être franc, c'est un ami qui m'a dirigé vers ce forum et qui m'a dit qu'il fallait que j'utilise une macro pour mon doc Excel. Donc, je suis bien entendu très intéressé par ce que tu peux me proposer, c'est très gentil de ta part.

Merci,

Mamoun.

Une première ébauche, à suivre :

24mamounel.xlsx (14.25 Ko)

Merci beaucoup Daniel.

Cependant je ne comprends pas pourquoi sur la feuille des engagements et sur la colonne "réglé", tu as utilisé une formule "Somme.SI".

Cette formule fait la somme des paiements pour le numéro d'engagement considéré...

Bonjour Dan, Mamoun. e

Je propose une macro mais sans vouloir interférer avec ce qu'à déjà réalisé Dan.

Option Base 1
Sub macro()
    Dim a, c(), Co, li
    Dim i%, K%, n%
    Set a = Feuil1.UsedRange
    li = a.Rows.Count
    Co = a.Columns.Count
    n = 0

    ReDim c(li, Co)

    For i = 3 To li
        If a(i, 8) = "OK" Then
            n = n + 1
            For K = 1 To Co: c(n, K) = a(i, K)
            Next
        End If
    Next

    With Feuil2
        .Cells.Delete
       .[A1:i1] = Feuil1.[A3:i3].Value
        .[a2].Resize(UBound(c), Co) = c
        .Activate
    End With
Set a = Nothing
End Sub
23mamounel.xlsx (14.26 Ko)

Bonsoir MamounEl, Force Rouge

Je corrige mon envoi précédent, fait un peu à la hâte...

Complété avec des synthèses des Engagements et des Paiements...

A+ Daniel

Bonjour Dan, ForceRouge,

Tout d'abord merci pour vos propositions, c'est très gentil de votre part.

ForceRouge: Comme je t'ai envoyé par MP, je n'arrive pas à insérer la macro dans mon document EXCEL. N'ayant jamais fait cette manoeuvre par le passé, je n'y arrive pas..

Dan: Pour le document EXCEL que tu m'as proposé, ce que je souhaitais c'est quelques chose qui fait que dès que l'on ajoute un engagement qui a été payé, qu'il se mette automatiquement dans la feuille PAIEMENT. En fait, peut-être que je ne comprends pas très bien les formules et leur utilisation dans le document que tu m'as fais, mais je n'arrive pas à comprendre le lien entre ce qu'il y a dans la feuille ENGAGEMENTS avec ce qu'il y a dans la feuille PAIEMENT. Si j'ajoute une case d'un autre engagement, comment faire en sorte qu'il passe dans la feuille PAIEMENT ?

Je ne sais pas si je me fais comprendre, je l'espère en tout cas. Au pire, Dan on peut passer en MP si tu le souhaites.

Merci encore à tous.

J'ai répondu mais je ne suis pas très pédagogue donc expliquer comment faire c'est pas ma tasse de thé.

De plus, la mise à jour ne se fait pas automatiquement car j'attends de voir le fichier réel pour finaliser correctement la macro (bien souvent, il existe des différences entre le fichier original et le fichier présenté ici.

Sans compter que pour une tâche assez simpliste et s'il n'y a pas beaucoup de linge (<2000) la solution de Dan reste présentement la plus adaptée car elle ne necessite pas d'avoir des connaissances particulières pour faire évoluer les formules.

MamounEl,

Le principe est très simple en fait :

1 - sur la feuille Engagements, on saisit les engagements, et sur la feuille Paiements, on saisit les paiements;

2 - les paiements sont répercutés sur les engagements concernés grâce au numéro d'engagement;

3 - il est ainsi possible de saisir plusieurs paiements (partiels) pour un même engagement;

4 - chaque feuille peut supporter des statistiques sous forme de tableaux ou de graphiques, chaque colonne pouvant servir d'élément d'analyse

Il faut admettre au préalable que les informations d'un engagement et celles d'un paiement ne sont pas les mêmes, et qu'il ne suffit pas de dupliquer l'un pour avoir l'autre (une autre manière de dire qu'avec ton idée de duplication, tous les problèmes ne seront pas résolus)

Les formules de la feuille Paiements rapatrient les informations nécessaires à la saisie d'un paiement, et les formules de la feuille Engagements récupèrent les données des paiements, ce qui permet d'afficher le solde de chaque engagement...

Mais c'est une approche tout personnelle, il y en a sûrement d'autres aussi pertinentes, voire plus... Daniel

Merci beaucoup Dan, j'ai compris parfaitement le système des formules et il répond quasiment à ce que je voulais.

Beau travail.

Cdt,

Mamoun

Merci

Bonjour Dan et aux autres,

Avec ton modèle, j'arrive à entrer les données des fournisseurs, les montants et faire le lien avec la feuille PAIEMENT, mais quand j'arrive à la valeur 32, il me met le signe "#N/A", comme s'il n'acceptait pas plus de 30 valeurs.. les numéros de mes engagements vont jusqu'à 70, et donc quand je veux en passer un au paiement grâce justement au numéro d'engagement, il me met ce message d'erreur à partir de la valeur 32.

Quelqu'un pourrait m'expliquer pourquoi il y a ce soucis?

Merci d'avance,

Mamoun.

Bonjour MamounEl,

Vérifier peut-être que la plage Engagements correspond bien à la liste des engagements.

Autrement dit, que des engagements, au delà du numéro 30, n'ont pas été ajoutés en dehors de cette plage...

Pour vérifier : touche F5, atteindre la plage Engagements

Pour la modifier : menu Formules, Gestionnaire de noms...

A+ Daniel

Rechercher des sujets similaires à "transfert informations feuille"