Un archive pour mes factures

marielle27

XLDnaute Nouveau
Bonjour le forum,

Il s'agit de copier les factures établies dans la feuille "Facture" dans une feuille "Archives" du même classeur. Chaque facture possède des éléments fixes (N° facture, date, nom du client, etc) et d'autres variables (lignes correspondantes au détail de chaque facture).

Or, avec le code du module "CopieArchives" j'arrive à copier dans la feuille Archives les éléments fixes mais pas le détail. Il manquerait une boucle sur ces lignes mais je ne sais pas le faire.

Pourriez-vous m'aider svp? Merci d'avance
 

Pièces jointes

  • Facture2.zip
    35 KB · Affichages: 487
  • Facture2.zip
    35 KB · Affichages: 435
  • Facture2.zip
    35 KB · Affichages: 414

kjin

XLDnaute Barbatruc
Re : Un archive pour mes factures

Bonsoir,
En général, les factures sont archivées telles quelles dans un dossier particulier en les classant par semaine, mois, voire année...ce qui permet de les retrouver facilement et les rééediter éventuellement.Par contre le récapitulatif ne donne pas d'indication sur le détails, mais juste les infos type N°, Nom, le total...avec éventuellement, un lien hypertexte vers la facture archivée
Sinon,
Code:
Sub CopieArchive()
Dim n&, dL&, i&, j&
n = Application.CountA(Range("B27:B40"))
With Sheets("Archives")
    For i = 1 To n
        dL = .Range("B65536").End(xlUp).Row + 1
        .Cells(dL, 2) = Range("C15")  'N° Facture
        .Cells(dL, 3) = Range("B15")  'Type
        .Cells(dL, 4) = Range("C16")  'Date
        .Cells(dL, 5) = Range("F15")  'Nom + Prénom
        .Cells(dL, 6) = Range("B23")  'Objet
        .Cells(dL, 15) = Range("B45") 'Commentaires
        For j = 1 To 8
            .Cells(dL, j + 6) = Cells(26 + i, j + 1)
        Next
    Next
End With
End Sub
A+
kjin
 
C

Compte Supprimé 979

Guest
Re : Un archive pour mes factures

Bonjour Marielle27,

Partant du principe que les archives peuvent servir de BdD de recherche
j'inscris sur chaque ligne les parties fixes de la facture

Remplace ton code par celui-ci
VB:
Sub CopieArchive()
  Dim ColFac As Integer, LigFac As Long, LigArc As Long, ShtF As Worksheet
  ' Définir la feuille Facture dans une variable objet
  Set ShtF = Sheets("Facture")
  ' Avec la feuille archives
  With Sheets("Archives")
    ' Lignes facture de la 27 à la 40
    For LigFac = 27 To 40
      LigArc = .Range("B65536").End(xlUp).Row + 1
      ' Si la ligne de facture contient une prestation
      If ShtF.Range("B" & LigFac) <> "" Then
        .Range("B" & LigArc) = ShtF.Range("C15")  'N° Facture
        .Range("C" & LigArc) = ShtF.Range("B15")  'Type
        .Range("D" & LigArc) = ShtF.Range("C16")  'Date
        .Range("E" & LigArc) = ShtF.Range("F15")  'Nom + Prénom
        .Range("F" & LigArc) = ShtF.Range("B23")  'Objet
        .Range("O" & LigArc) = ShtF.Range("B45")  'Commentaires
        ' Inscrire chaque colonne de la ligne de prestation
        For ColFac = 1 To 8
          .Cells(LigArc, 6 + ColFac) = ShtF.Cells(LigFac, 1 + ColFac)
        Next ColFac
      End If
    Next LigFac
  End With
End Sub

A+

Edit : oups, salut Kjin ... je suis un peu en retard sur ce coup là ;)
 

marielle27

XLDnaute Nouveau
Re : Un archive pour mes factures

Bonjour kjin, BrunoM45, le forum,

Je reste admirative de vos connaissances et de votre sens de l'entraide. Magnifique.
Les deux codes fonctionnent à la perfection.

Pour le reste, je pense comme vous quant à la fonctionnalité d'un tel archive (BdD) et je suis en train de construire un UserForm pour récupérer en mode consultation, modification et suppression chaque facture. Mais ça c'est de la musique à venir.

Dans l'immédiat, je vais essayer de comprendre vos codes.

Un grand merci à vous deux. Marielle.
 

Discussions similaires

Réponses
2
Affichages
720
Réponses
2
Affichages
329
Réponses
3
Affichages
326

Statistiques des forums

Discussions
312 688
Messages
2 090 959
Membres
104 708
dernier inscrit
Mparzival