Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

guiguisbc

XLDnaute Junior
Bonjour à tous, petit soucie que je ne sais pas résoudre :
J'ai fait un petit logiciel sous Excel 2003 pour gérer les entrées et les sortis de blocs dans l'usine mais je ne sais pas programmer ma macro pour sortir un certain volume de blocs correspondant à sa référence.(voir PJ)

Je veut que quand j’appuie sur le bouton "SORTIR DU STOCK" il me trouve tout seul la cellule concernée située dans la feuille "Stock" puis me soustrait le volume que je saisie pour qu'il ne reste que le volume restant.

Mais il me faut ces conditions :
*Si le volume soustrait et supérieur à 0 alors je garde ma ligne
*Si le volume soustrait et égal à 0 alors j’efface la ligne de la cellule recherchée.

Merci d'essayer de résoudre ce problemme complexe :confused:
 

Pièces jointes

  • Gestion Du Stock.xls
    244 KB · Affichages: 2 708
  • Gestion Du Stock.xls
    244 KB · Affichages: 3 052
  • Gestion Du Stock.xls
    244 KB · Affichages: 3 067

JNP

XLDnaute Barbatruc
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Bonjour Guiguisbc :),
A tester
Code:
Sub Sortir()
Dim Cellule As Range
With Sheets("Stock")
Set Cellule = .Columns(1).Find(Sheets("Nouveau").Range("E17"), lookat:=xlWhole)
If Not Cellule Is Nothing Then
Cellule.Offset(0, 10) = Cellule.Offset(0, 10) - Sheets("Nouveau").Range("E19")
If Cellule.Offset(0, 10) = 0 Then Cellule.EntireRow.Delete
End If
End With
End Sub
Bonne fin de journée :cool:
 

guiguisbc

XLDnaute Junior
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Bonjour et merci pour votre réponse !! :)
Je suis débutant je ne sais pas quoi faire le la ligne de code que vous m'avez proposé :confused:? je suppose que je doit le coller à quelque part mais ou ? merci :eek:
 

JNP

XLDnaute Barbatruc
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Re :),
L'explication du code
Code:
Sub Sortir()
Dim Cellule As Range
' Déclare une variable type Range
With Sheets("Stock")
' Avec la feuille Stock : un . suffira à lui faire réference
Set Cellule = .Columns(1).Find(Sheets("Nouveau").Range("E17"), lookat:=xlWhole)
' Mets dans la cellule ce que tu trouve dans la colonne 1 en cherchant
' E17 de Nouveau avec tout le contenu de la cellule
If Not Cellule Is Nothing Then
' Si Cellule n'est pas vide
Cellule.Offset(0, 10) = Cellule.Offset(0, 10) - Sheets("Nouveau").Range("E19")
' Cellule décalé de 10 colonnes est égal à ... etc.
If Cellule.Offset(0, 10) = 0 Then Cellule.EntireRow.Delete
' Si Cellule décalé de 10 colonnes égal 0, supprimer la ligne entière de Cellule
End If
' Fin de test
End With
' Fin de référence à la feuille Stock
End Sub
pour les cellules bleues
Code:
With Sheets("Nouveau")
If .Range("E4") = "" Or .Range("F4") = "" Then
MsgBox "Toutes les cases...", vbCritical + vbOKOnly, "Attention !"
Exit Sub
End If
End With
à complèter avec des Or et les 4 Range en plus :p
Bon courage :cool:
 

guiguisbc

XLDnaute Junior
Enregistrer les sorties ?

C'est bon sa marche vous êtes un dieux de Excel !;)

Dans ma macro "Sortir du stock" c'est possible d'enregistrer les sorties dans l'onglet Consultation ?
Pour établir une sorte d'historique des sorties de stock à telle dates

Promis je vous laisse tranquille après :)) :rolleyes:

Merci :p
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Re :),
Dommage que tu ait modifié ton post avec la question sur les Or Range bleues, je t'aurais répondu que c'était très "mode" avec la sortie de Tintin :p...
Vu que tu as su faire la macro Ajouter au stock (bon, c'est sûr, elle n'est pas optimisée, mais tu peux aussi t'inspirer de mon code pour l'optimiser :rolleyes:), il te suffit de faire la même chose vers l'onglet consultation ;)...
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Re :),
Pourquoi il n'est pas optimisé?:(
Parce qu'il devrait ressembler à ça :p
Code:
Sub AjouterStock2()
' Optimisée
With Sheets("Stock")
    With Rows("2:2")
        .Insert Shift:=xlDown
        .ClearFormats
    End With
    Sheets("Nouveau").Range("A2:N2").Copy
    With .Range("A2")
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        .FormulaR1C1 = "=Nouveau!RC*1"
        .Copy
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
    End With
End With
Range("E4:G4,E6:G6,E8:F8").ClearContents
Range("E4").Select
End Sub
par contre, comme tu as des cellules fusionnées, il ne tourne pas de toute façon :rolleyes:
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : Rechercher et (soustraire une cellule ou effacer sa ligne) selont un code REF

Re :),
Il faut simplement que tu envoies les valeurs d'une feuille vers l'autre, type
Code:
Sheets("Feuil1").Range("A1") = Sheets("Feuil2").Range("B12")
Bon courage :cool:
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88