Une question SVP

  • Initiateur de la discussion lolo
  • Date de début
L

lolo

Guest
Bonjour forumeur, voilà ma question :

J'ai un fichier excel avec 4 feuilles :

-Commandes
-Archives
-Achats
-Stocks Restants


Ma feuille stock restant additionne les achats du produit X et soustrait à celui-ci le total des produits X achetés dans les feuilles Archives et commandes.

Maintenant quand j'efface mes archives mon stock repars du total d'achat X pourrait-on faire pour que le stok me garde le dernier résultat du stock avant l'effacement des archives ?

Je vous ai mi un exemple ;)

Merci beaucoup à tous
Bonne soirée @+ [file name=exemple_20060301182820.zip size=2468]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20060301182820.zip[/file]
 

Pièces jointes

  • exemple_20060301182820.zip
    2.4 KB · Affichages: 14

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lolo, le Forum

Une approche rapide par VBA, par contre ta formule me semble fausse :

=Achats!E2-Commandes!D2-Archives!C2

Pour moi ce devrait être :
=Achats!E2-Commandes!C2-Archives!C2

En effet en D2 de commande c'est le Prix Unitaire...

Regarde le fichier joint si ce bouton peut faire l'affaire... (NB sans gestion d'erreur si non numérique dans les plage de quantités...)

Bonne Soirée
[ol]@+Thierry[/ol] [file name=XLD_Calcul_Stock_MultiSheets.zip size=13852]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_Calcul_Stock_MultiSheets.zip[/file]


EDITION !!!

PS tu peux suppimer les 3 ligneS dans le Module1 :
Debug.Print Counter

C'était juste pour une vérification en cours de développement... J'ai zappé de les effacer !

Message édité par: _Thierry, à: 01/03/2006 19:13
 

Pièces jointes

  • XLD_Calcul_Stock_MultiSheets.zip
    13.5 KB · Affichages: 17
L

lolo

Guest
Merci d'avoir pris le temsp de me répondre :

1) En effet je me suis trompé dans la formules c'est parce que je l'ai fait rapidement

2) Je crois que tu n'as pas bien compris mon probleme parce quand j'efface mes archives le stock se remet comme si les archives n'avait jamais existéés...

en espérant que tu est compris mais la solution à mon probleme ma l'air impossible mais on ne sait jamais !


Merci
Bonne soirée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lolo, le Forum

J'avoue que je ne comprends pas, mais alors pas du tout, ta demande !

Je te propose une variante du code, mais sans aucune conviction d'atteindre l'objectif de ce que tu souhaites obtenir !!!

Option Explicit
Option Compare Text

Sub StockCalculator()
Dim PlageCible As Range, PlageSource As Range, CellCible As Range, CellSource As Range
Dim WS As Worksheet
Dim Counter As Integer
Dim ArchiveCounter As Integer


With Worksheets('Stocks')
Set PlageCible = .Range(.Range('A2'), .Range('A5000').End(xlUp))
End With


For Each CellCible In PlageCible

   
For Each WS In ThisWorkbook.Worksheets
           
Select Case WS.Name
           
Case 'Achats'
               
With WS
                   
Set PlageSource = .Range(.Range('A2'), .Range('A5000').End(xlUp))
               
End With
                   
For Each CellSource In PlageSource
                       
If CellCible = CellSource Then
                        Counter = Counter + CellSource.Offset(0, 4)
                       
End If
                   
Next
           
Case 'Commandes'
               
With WS
                   
Set PlageSource = .Range(.Range('B2'), .Range('B5000').End(xlUp))
               
End With
                   
For Each CellSource In PlageSource
                       
If CellCible = CellSource Then
                        Counter = Counter - CellSource.Offset(0, 1)
                       
End If
                   
Next
           
Case 'Archives'
               
With WS
                   
Set PlageSource = .Range(.Range('B2'), .Range('B5000').End(xlUp))
               
End With
                   
For Each CellSource In PlageSource
                       
If CellCible = CellSource Then
                        ArchiveCounter = ArchiveCounter - CellSource.Offset(0, 1)
                       
End If
                   
Next


           
End Select
           
       
Next WS
       
With CellCible
        .Offset(0, .End(xlToRight).Column) = ArchiveCounter
        .Offset(0, 1) = Counter + Application.WorksheetFunction.Sum(Range(.Offset(0, 2), .Offset(0, 254)))
       
End With
        Counter = 0
        ArchiveCounter = 0
Next CellCible

End Sub

Mais je ne sais pas si ta feuille Stock finale va apprécier de recevoir une incrémentation de tes archives par colonnes successives générées à chaque click sur le bouton...

Bonne Soirée
[ol]@+Thierry[/ol]
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lolo, le Forum

Ah c'est étonnant, quel est le message d'erreur exactement ?

Par la même occasion, quel est ton OS et la Version d'Excel ?

Car comme tu pourrais t'en douter, le code que je t'ai fourni ci-dessus fonctionne chez moi puisque je l'ai rééllement écrit et testé (Tu as même de la chance car j'ai une armada qui me permet de tester sous XL 2000,2002 et 2003, Version US et FR)

Bonne Soirée
[ol]@+Thierry[/ol]
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour lolo, le Forum

Pas eu le temps de repasser plus tôt.

Ci-joint une version que je viens de faire tourner sous Excel 2003.

Tu noteras que c'est exactement le code que j'ai fourni hier...

Bonne Soirée
[ol]@+Thierry[/ol] [file name=XLD_Calcul_Stock_MultiSheets_V01.zip size=14243]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_Calcul_Stock_MultiSheets_V01.zip[/file]
 

Pièces jointes

  • XLD_Calcul_Stock_MultiSheets_V01.zip
    13.9 KB · Affichages: 20

Statistiques des forums

Discussions
312 329
Messages
2 087 329
Membres
103 517
dernier inscrit
hbenaoun63