Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Aloha

XLDnaute Accro
Bonjour,

Ci-joint un fichier contenant 3 feuilles:

Fournisseurs/Clients [F/C]: Liste des fournisseurs et des clients qui doit être mise à jour par VBA dès qu'un nouveau F/C est saisi dans la feuille Facturation; il est donc ajouté dans la première ligne libre de la liste. Cette liste doit être déroulante, pour que dans Facturation on puisse choisir les F/C existants.

Facturation: dès qu'une facture est émise à un client ou qu'une facture est reçue d'un fournisseur, elle est saisie manuellement, avec la date de facturation.

Caisse: la facture doit être copiée (par VBA) dans la première ligne libre depuis Facturation dès qu'une date de paiement est saisie dans Facturation; une particularité: Débit et Crédit doivent être inversés; c.-à-d. que ce qui est sous Débit dans Facturation doit être copié sous Crédit dans Caisse.

P.ex.: dès que je saisis la date dans Facturation D2 la date 4/8/11, cette ligne doit être copiée dans Caisse.

Et dans une deuxième phase je voudrais pouvoir faire la balance par Client. Voilà pourquoi j'ai ajouté une feuille Balance dans laquelle j'ai essayé de résoudre la tâche par formules qui me donnent seulement le total des factures ouvertes; je pense qu'il n'est pas possible de faire afficher les factures de cette manière. Il faudrait donc aussi un bout de VBA.

Comme VBA n'est pas ma force j'ose espérer pouvoir compter sur votre aide.

Bonne après-midi

Aloha
 

Pièces jointes

  • Compta.xls
    42.5 KB · Affichages: 98
  • Compta.xls
    42.5 KB · Affichages: 103
  • Compta.xls
    42.5 KB · Affichages: 103
C

Compte Supprimé 979

Guest
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Bonjour Aloha,

Petite question si je puis me permettre, comment ce fait-il que tu mélanges fournisseurs et clients !?

A+
 

klin89

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Bonjour à tous,
Bonjour Bruno, Aloha

Concernant cette partie :
Caisse: la facture doit être copiée (par VBA) dans la première ligne libre depuis Facturation dès qu'une date de paiement est saisie dans Facturation; une particularité: Débit et Crédit doivent être inversés; c.-à-d. que ce qui est sous Débit dans Facturation doit être copié sous Crédit dans Caisse.

Colle ce code dans le module de la feuille "FACTURATION"

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ligne As Long, derlig As Long, LigVide As Long
  derlig = Range("A65536").End(xlUp).Row + 1
    'Evenement sur la colonne J
     If Not Intersect(Target, Range("J2:J" & derlig)) Is Nothing Then
      If Not Target Is Nothing Then
        With Sheets("CAISSE")
          LigVide = .Range("A" & Rows.Count).End(xlUp).Row + 1
          .Range("A" & LigVide).Value = Range("A" & Target.Row).Value
          'Faut-il extraire le mois de la colonne B ou C de la feuille "FACTURATION"
          '.Range("B" & LigVide).Value = Range("B" & Target.Row).Value
          .Range("C" & LigVide).Value = Range("B" & Target.Row).Value
          .Range("D" & LigVide).Value = Range("C" & Target.Row).Value
          .Range("E" & LigVide).Value = Range("D" & Target.Row).Value
          .Range("F" & LigVide).Value = Range("E" & Target.Row).Value
          .Range("G" & LigVide).Value = Range("F" & Target.Row).Value
          .Range("H" & LigVide).Value = Range("H" & Target.Row).Value
          .Range("I" & LigVide).Value = Range("G" & Target.Row).Value
          .Range("J" & LigVide).Value = Range("I" & Target.Row).Value
        End With
        Ligne = Target.Row + 1
        Range("A" & Ligne).Select
      End If
    End If
End Sub

Repris d'un exemple de Bruno :confused:

Klin89
 

Aloha

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Bonjour,

Je dois dire que je ne suis pas très versé en matière de compta pro, mais apparemment c'est comme ça! C'est ce que me disent les gens du métier.
Et puis, ce n'est pas vraiment mélangé parce que les uns se retrouvent dans le débit et les autres dans le crédit.

Aloha
 

Aloha

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Malheureusement ça ne fonctionne pas chez moi.
C'est bien dans Feuil1 (FACTURATION) qu'il faut le coller?
J'ai également essayé avec Insérer uun module, mais là il ne fonctionne pas non plus.

A+
 

Pièces jointes

  • VBA.JPG
    VBA.JPG
    17.1 KB · Affichages: 64
  • VBA.JPG
    VBA.JPG
    17.1 KB · Affichages: 64
  • VBA.JPG
    VBA.JPG
    17.1 KB · Affichages: 54

klin89

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

re Aloha,

Oui, c'est ça.
Mais l'événement se déclenche une fois arrivé sur la colonne J.

Dans cet exemple, si je place un événement Change pointant sur la colonne C de la feuille "FACTURATION", tout ce qui figurera après soit en colonne D, E, F, G, H et I ne sera pas recopié :rolleyes:
Puisque pas encore saisi :eek:

Klin89
 

Aloha

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

et comment faut-il faire alors? La ligne entière doit être copiée lorsqu'on saisit la date de paiement.
il faut préciser: les autres données sont saisies auparavant, des jours, voire des semaines ou des mois (si un client tarde à payer); la date de paiement est donc toujours saisie après .
 

DoubleZero

XLDnaute Barbatruc
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Bonjour, Aloha, BrunoM45 :), klin89, le Forum,

Je n'ai pas les compétences pour répondre à tous les souhaits exprimés :eek:.

Un fichier à tester... peut-être.

Bon courage.
 

Pièces jointes

  • 00 - Aloha.xls
    83.5 KB · Affichages: 104

klin89

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Re Aloha,
Bonjour DoubleZero

Z'avais pas compris :p:

la date de paiement est donc toujours saisie après .

Donc utilises l'événement Change sur la colonne C feuille "FACTURATION"

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ligne As Long, derlig As Long, LigVide As Long
  derlig = Range("A65536").End(xlUp).Row + 1
    'Evenement sur la colonne J
    If Not Intersect(Target, Range("C2:C" & derlig)) Is Nothing Then
      If Not Target Is Nothing Then
        With Sheets("CAISSE")
.../...

rajoutes ceci :
Code:
.Range("B" & LigVide).Value = Month(Range("B" & Target.Row).Value)
ou cela
Code:
.Range("B" & LigVide).Value = MonthName(Month(Range("B" & Target.Row).Value))



Klin89
 
Dernière édition:

stefan373

XLDnaute Occasionnel
Bonsoir à tous et au forum.

Pour le point 1, j'ai définis un nom avec DECALER pour le rajout de nom et liste déroulante avec validation de donnée.
( Si mes souvenirs sont bon, le code d'origine est de Mr Boisgontier).

Pour le point 3, dès qu'une date est rentrée dans la colonne C cela copie la ligne.
(Avec le code que klin89 vous à proposé)
Je me suis permis de le rajouter ainsi, vous avez déjà deux solutions. :)

A +

Edit: j ai corrigé l'erreur que ma signalé Klin89
 

Pièces jointes

  • Compta.zip
    20.4 KB · Affichages: 44
  • Compta.zip
    20.4 KB · Affichages: 43
  • Compta.zip
    20.4 KB · Affichages: 44
Dernière édition:

klin89

XLDnaute Accro
Re : Transférer des inscriptions d'une feuille dans une autre après saisie d'une date

Bonsoir stefan373,

Dans ton fichier, feuille "FACTURATION", lorsque je veux supprimer ou insérer une ligne manuellement via le menu clique droit, j'ai une erreur d'incompatibilité de type sur la ligne suivante :
Code:
If Target.Column = 3 And Target.Value <= "1/1/1900" Then

Peux être remplacé par ceci :
Code:
If Target.Column = 3 And Not Target Is Nothing Then

Klin89
 

Aloha

XLDnaute Accro
Re : Re: Transférer des inscriptions d'une feuille dans une autre après saisie d'une

Bonjour,

Un grand merci à vous tous qui avez contribué à cette solution qui a l'air de bien fonctionner.
J'espère que j'arriverai à l'intégrer dans mon fichier réel.

Ce qui serait encore pratique, c'est que, lorsqu'une ligne a été copiée dans Caisse, qu'elle soit effacée dans Facturation.

A+

Aloha
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87