Menu

Problème de macros mais avec condition .

Messages postés
9
Date d'inscription
jeudi 11 avril 2019
Statut
Membre
Dernière intervention
21 avril 2019
-
BONJOUR

Vous trouverez dans la feuille facture de mon classeur un bouton sauvegarder. Ce bouton me sert à enregistrer le montant au bas de la facture (il enregistre dans la feuille historique des factures). Mais le problème est qu’il le fait même si la quantité saisie dépasse le stock. Quelqu’un peut-il m’aider ? J’aimerai sauvegarder le montant seulement si la quantité demandée est inférieure au stock. Sinon un message d’alerte s’affiche. (Quantité : de la cellule « I10 :I19 » stock : de la cellule « j10 :j19 » de la feuille « facture »
CI-JOINT MON CLASSEUR
MERCI
Afficher la suite 

Votre réponse

2 réponses

Messages postés
4490
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
19 avril 2019
229
0
Merci
Bonjour Éric, bonjour le forum,

Visiblement tu as oublié le lien vers le classeur... Mais ça devrait donner un code du style :

Sub Macro1()
If Range("I10:I19").Value > Range("J10:J19").Value Then
    MsgBox "Dépassement du Stock ! Opération annulée."
    Exit Sub
Else
    'ton code
End If
End Sub

Eric_3280
Messages postés
9
Date d'inscription
jeudi 11 avril 2019
Statut
Membre
Dernière intervention
21 avril 2019
-
BONJOUR THAUTHEME. BONJOUR FORUM

Merci pour ta réponse. mais le code que vous m'avez envoyer doit faire allusion à la feuille "facture" (le classeur c "apk kkr facture"), moi je ne sais pas comment faire pour que le code fasse allusion à la feuille facture. POUVEZ-VOUS M'AIDER SVP? ou encore, comment faire pour vous envoyer mon classeur? j'ai envoyé quand même le code.



Private Sub SAUVEGARDER_MONTANT_Click()
Range("I8").Select
    Sheets("historique factures").Select
    ActiveSheet.Unprotect Password:="54628"
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown
    Selection.ClearFormats
    Range("A3").Select
    Sheets("facture").Select
ActiveSheet.Unprotect Password:="54628"
    Range("F4:G4").Select
    Selection.Copy
    Sheets("historique factures").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("facture").Select
    Range("D1:G1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("historique factures").Select
    Range("C2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "m/d/yyyy"
    Sheets("facture").Select
    ActiveWindow.SmallScroll Down:=42
    Range("G23").Select
    Selection.Copy
    Sheets("historique factures").Select
    Range("D2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "#,##0.00 $"
    Range("E1").Select
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    Range("U1").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("facture").Select

    ActiveWindow.SmallScroll Down:=-54
    Range("C7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C7").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Sheets("historique factures").Select
    ActiveSheet.Protect Password:="54628", Contents:=True, Scenarios:=True
    Selection.Copy
    Sheets("facture").Select
    Range("C7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1:C1").Select
ActiveSheet.Protect Password:="54628", Contents:=True, Scenarios:=True

End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Commenter la réponse de ThauTheme
Messages postés
4490
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
19 avril 2019
229
0
Merci
Re,

La règle d'or en VBA s'est d'éviter autant que tu le peux les Select et autres Activate. Ça ne fait que ralentir le code et c'est souvent source de plantage.
Tu n'as toujours pas daigné mettre ton fichier ce qui rend la compréhension beaucoup plus difficile.
Ton code corrigé mais que tu devras vérifier :

Private Sub SAUVEGARDER_MONTANT_Click()
Dim HF As Worksheet
Dim F As Worksheet

Set HF = Worksheets("historique factures")
Set F = Worksheets("facture")
If F.Range("I10:I19").Value > F.Range("J10:J19").Value Then
    MsgBox "Dépassement du Stock ! Opération annulée."
    Exit Sub
Else
    HF.Unprotect Password:="54628"
    HF.Rows("2:2").Insert Shift:=xlDown
    HF.Rows("2:2").ClearFormats
    F.Unprotect Password:="54628"
    F.Range("F4:G4").Copy
    HF.Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    F.Range("D1:G1").Copy
    HF.Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    HF.Range("C2:F2").NumberFormat = "m/d/yyyy"
    F.Range("G23").Copy
    HF.Range("D2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    HF.Range("D2").NumberFormat = "#,##0.00 $"
    HF.Range("U1").Copy
    HF.Range("A2").Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    HF.Protect Password:="54628", Contents:=True, Scenarios:=True
    
    '************** partie à revoir
    'là j'ai rien compris à ton code. Tu copies puis tu effaces ?!....
    F.Range("C7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    '**************
    
    HF.Protect Password:="54628", Contents:=True, Scenarios:=True
    F.Protect Password:="54628", Contents:=True, Scenarios:=True
End If
End Sub

Eric_3280
Messages postés
9
Date d'inscription
jeudi 11 avril 2019
Statut
Membre
Dernière intervention
21 avril 2019
-
Merci pour le code. Mais jusque là il ne marche pas encore. Et moi, je ne sais comment vous envoyer mon fichier. Pouvez-vous me donner votre adresse e-mail ou votre numéro WhatsApp? Si Oui j'envoie immédiatement. Car j'ai vraiment besoin de ce code. Merci pour tes efforts jusque-là.
Cordialement.
Commenter la réponse de ThauTheme