Factures Fournisseurs

Seydina

XLDnaute Occasionnel
Bonsoir Le forum,

Je souhaite mettre en place une saisie de factures fournisseur avec une commande USF.
Les factures saisies et validées seront donc impactées sur une deuxième grille qui par période et fournisseur afin de pouvoir dégager les totaux des factures payées, non payées, et donc de l’encours.
J’espère beaucoup une suggestion de votre part.

A bientôt j’espère
 

Pièces jointes

  • Factures Fournisseurs.xls
    26.5 KB · Affichages: 406

Seydina

XLDnaute Occasionnel
Re : Factures Fournisseurs

Les couleurs doivent s’appliquer entre la date de la facture et la date d’échéance de la facture svp.
Pourriez-vous m’expliquer comment procéder si je veux rajouter d’autres factures ?

Je suis vraiment désolé de m’être mal exprimé.

Bien cordialement
 

fred65200

XLDnaute Impliqué
Re : Factures Fournisseurs

bonjour

Edition n° 3

Pour ajouter un fournisseur à ta liste :
Un double clic dans la colonne A de l'onglet SAISIE FACTURES.
En théorie c'est tout, le reste ce fait automatiquement : incrémentation de formules, calculs,...

Je pense que maintenant les MFC sont compatibles avec ta version d'Excel.

Je n'ai pas retravaillé les dates. Je t'avoue que je manque de motivation.

Travaille un peu avec ce classeur, note ce qui va et ce qui ne te convient pas.
Si tu as le temps, prépare un classeur avec des explications précises et reviens dans quelques temps.

edit le classeur est là
Cordialement
 
Dernière édition:

Seydina

XLDnaute Occasionnel
Re : Factures Fournisseurs

Bonjour Fred,

Je travaille avec votre grille pour saisir mes factures fournisseurs depuis ce matin. Elle est vraiment bien. Franchement, je n’espérais pas mieux pour analyser et suivre mes comptes fournisseurs.

Juste 2 remarques portant sur la feuille ANALYSE FOURNISSEUR

1. Quand une facture n’est pas payée (NP), Y’a-t-il une possibilité de mettre en couleur cette factures qui n’est pas payée ?

Fournisseurs Factures
SCI BDP Saf2007

2. Quand toutes les factures fournisseurs sont marqués payés (P), il reste quand mm une facture, alors qu’il ne devrait pas y’en avoir.


Fournisseurs Factures
Safran Saf2007

Merci pour tout, super
 

fred65200

XLDnaute Impliqué
Re : Factures Fournisseurs

Bonjour

les corrections

Copie le code qui suit

Clic droit sur l'onglet ANALYSES FOURNISSEURS / Visualiser le code
Sélectionne tout Ctrl A / Colle Ctrl V
Code:
Option Explicit

Private Sub Worksheet_Activate()
Combien: MaJ
End Sub
Copie le code qui suit
Dans l'éditeur Visual Basic (Alt F11)
Dans la fenêtre Projet, déplie VBAProject(Seydina3.xls)
Déplie Modules / double clique sur modFred65200
Dans la fenêtre qui s'affiche, sélectionne tout Ctrl A / Colle Ctrl V
Code:
Option Explicit
Option Base 1
Public derLi As Integer
Public F1 As Worksheet, F2 As Worksheet
Public C As Range
Sub monSet()
Set F1 = Sheets("SAISIE FACTURES")
Set F2 = Sheets("ANALYSES FOURNISSEURS")

End Sub
Sub Combien()
Dim init As Byte '
Dim Fournisseurs As String
Dim NbFournisseurs As Byte
monSet

init = Application.CountA(F2.Columns(1).Value) - 1
Fournisseurs = "'" & F1.Name & "'!" & Range(Names("Fournisseurs").RefersTo).Address(-1, -1)
NbFournisseurs = Evaluate("=sumproduct(1/countif(" & Fournisseurs & "," & Fournisseurs & "))")
If init < NbFournisseurs Then MaJ
End Sub
Sub AjoutLigne()
Application.ScreenUpdating = False
With F1
derLi = .Columns(1).Find("*", , , , , xlPrevious).Row + 1

  .Range("A" & derLi - 1 & ":Q" & derLi - 1).Copy .Range("A" & derLi & ":Q" & derLi)
  For Each C In .Range("A" & derLi & ":Q" & derLi)
    If Not C.HasFormula Then C.ClearContents
  Next C
.Cells(derLi, 13) = "NP"
.Cells(derLi, 1).Activate
'SendKeys "{F2}", True
End With
Application.ScreenUpdating = True
End Sub
Sub MaJ()
Application.ScreenUpdating = False
monSet
Dim derLiF2 As Integer
Dim monDico As Scripting.Dictionary
Dim Fourn As Variant
Dim EnPlus As Integer

'recherche de la dernière ligne
derLi = F1.Columns(1).Find("*", , , , , xlPrevious).Row + 1

  'insertion des noms de client dans le dictionnaire
  Set monDico = CreateObject("Scripting.Dictionary")
  For Each C In F1.Range("A6:A" & derLi)
    If Not monDico.Exists(C.Value) Then monDico.Add C.Value, C.Value
  Next
  EnPlus = monDico.Count - 1
  derLiF2 = F2.Columns(1).Find("*", , , , , xlPrevious).Row
  
  'incrémentation des formules
  F2.Range("A8:T" & derLiF2).Delete Shift:=xlUp
  F2.Range("A7:T7").AutoFill Destination:=F2.Range("A7:T" & 6 + EnPlus)
  'passage du dico à la feuille
  F2.Range("A7:A" & 6 + EnPlus).Value = Application.Transpose(monDico.Items)
  
If Not Application.Sum(F1.Range("Retard").Value) = 0 Then ListeRetard
Application.ScreenUpdating = True
End Sub
Sub ListeRetard()
Application.ScreenUpdating = False
Dim i As Long, k As Long
Dim tabRetard() As Variant
Dim tabFactures() As Variant
Dim tabFournisseurs() As Variant
Dim tabListe() As Variant
Dim Couleur As Byte

monSet
tabRetard = F1.Range("Retard").Value
tabFactures = F1.Range("Factures").Value
tabFournisseurs = F1.Range("Fournisseurs").Value
k = 1

'liste des mauvais payeurs et des factures
For i = 1 To UBound(tabRetard, 1)
  If tabRetard(i, 1) > 0 Then
    ReDim Preserve tabListe(1 To 2, 1 To k)
    tabListe(1, k) = tabFournisseurs(i, 1)
    tabListe(2, k) = tabFactures(i, 1)
    k = k + 1
  End If
Next
'mise en forme
If k > 0 Then
  With F2
    .Range("W6").CurrentRegion.Clear 'Contents
    .Range("W7:X" & 5 + k).Value = Application.Transpose(tabListe)
    .Range("W6") = "Fournisseur": .Range("X6") = "Factures" & vbLf & "non réglées"
    .Range("W6:X6").HorizontalAlignment = xlCenter
    .Range("W6:X6").VerticalAlignment = xlVAlignCenter
    .Range("W6:X6").Font.Bold = True
    .Range("W7:X" & 5 + k).InsertIndent 1
    .Range("W6:X" & 5 + k).Borders.Weight = xlThin
    'applicatiuon d'une couleur aux impayés
    For Each C In .Range("X7:X" & 5 + k)
      Couleur = Application.Index(Range("Retard"), Application.Match(Cells(C.Row, 24), Range("Factures"), 0))
      Select Case Couleur
      Case 1: C.Interior.ColorIndex = 50 '14
      Case 2: C.Interior.ColorIndex = 44
      Case 3: C.Interior.ColorIndex = 3
      End Select
    Next C
  End With

End If
Application.ScreenUpdating = True
End Sub
Tu peux fermer toutes les fenêtres VBA
Enregistre ton classeur



Cordialement
 
Dernière édition:

Seydina

XLDnaute Occasionnel
Re : Factures Fournisseurs

Bonsoir FRED,

J’ai présenté votre grille à mon responsable, et me confirme le niveau de votre travail.

Juste une dernière requête svp : est-ce qu’on peut rajouter une colonne sur feuille "Analyse Fournisseurs". La colonne à rajouter est le montant de la facture NP ?

soit :

Fournisseur / Facture non Réglée / Montant de la fac


Merci
 

fred65200

XLDnaute Impliqué
Re : Factures Fournisseurs

Re:
Dernière version

avec les modifications demandées, la correction d'une erreur dans l'édition précédente (que fait le testeur?) et un petit bonus.

Si tu as déjà saisi dans la version précédente, copie et colle le code de chaque module (code et feuilles) du nouveau vers l'ancien.

je supprime les classeurs déposés précédemment pour ne pas dépasser mon quota.

Cordialement



fred
 

Pièces jointes

  • Seydina5.zip
    32.6 KB · Affichages: 137
  • Seydina5.zip
    32.6 KB · Affichages: 137
  • Seydina5.zip
    32.6 KB · Affichages: 138
Dernière édition:

Seydina

XLDnaute Occasionnel
Re : Factures Fournisseurs

Bonsoir FRED,

Je n'ai pas pu tester. A l'ouverture du fichier j'ai un message erreur relatif au code : " ERREUR D'EXECUTION 13"
Incompatibilité Type
J'ai poursuivi et noté qu'il y'a aussi un message d'erreur ds la colonne "Retard" avec le message suivant : #NOM?

Le reste ne fonctionne pas

Au secours please
 

fred65200

XLDnaute Impliqué
Re : Factures Fournisseurs

re

essaies de remplacer par
Code:
If Not Application.WorksheetFunction.Sum(F1.Range("Retard").Value) = 0 Then ListeRetard
tu as quelle version d'excel?

j'ai trituré dans tous les sens. Rien trouvé.

Désolé
Quand tu est en Déboguage, si tu places ta souris dans la zone surlignée qu'est ce qui s'affiche?

cordialement

je change le classeur par acquis de conscience ( avec des virgules comme séparateur décimal pour la tva)
Est ce que quelqu'un d'autre à des erreurs ou il n'y a que sur mon poste que ça fonctionne. il peut y avoir une erreur d'affichage avec des #VALEUR. si c'est le cas dans la colonne TVA, Donnée / Validation, changez le séparateur décimal.
@+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane