XL 2010 Executer le macro dans un classeur protegé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Eric kankonde

XLDnaute Nouveau
BONJOUR À TOUS. POUVEZ-VOUS M'AIDER SVP? J'AI UN PROBLÈME AVEC LES MACROS.
Ci-joint mon fichier Excel

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 » de la feuille "facture".Stock : de la cellule « j10 :j19 » de la feuille « facture »
CI-JOINT MON CLASSEUR
MERCI
 

Pièces jointes

Bonjour.
Essayez comme ça :
VB:
Sub SAVEFACTURE()
Dim TDF(), TH(1 To 1, 1 To 5), L&, LOt As ListObject
TDF = Sheet1.[A1:J23].Value
For L = 10 To Sheet1.[I21].End(xlUp).Row
   If TDF(L, 9) > TDF(L, 10) Then
      Application.Goto Sheet1.Cells(L, "I")
      MsgBox ActiveCell.Address & ": Qté " & TDF(L, 9) & " dépasse de " & TDF(L, 9) - TDF(L, 10) _
         & " stock " & TDF(L, 10), vbExclamation, "Sauvegarde"
      Exit Sub: End If: Next L
Set LOt = Sheet4.ListObjects(1)
TH(1, 1) = WorksheetFunction.Max(LOt.ListColumns("N° Facture").DataBodyRange) + 1
TH(1, 2) = TDF(1, 1)
TH(1, 3) = TDF(1, 4)
TH(1, 4) = TDF(23, 7)
TH(1,5)= ? ' pas compris ce que vous vouliez y mettre
LOt.ListRows.Add(1).Range.Value = TH
LOt.ListRows(1).Range.Interior.ColorIndex = xlNone
End Sub
Supprimez les ligne vide dans l'historique: elles ne servent à rien.
 
Merci
Bonjour.
Essayez comme ça :
VB:
Sub SAVEFACTURE()
Dim TDF(), TH(1 To 1, 1 To 5), L&, LOt As ListObject
TDF = Sheet1.[A1:J23].Value
For L = 10 To Sheet1.[I21].End(xlUp).Row
   If TDF(L, 9) > TDF(L, 10) Then
      Application.Goto Sheet1.Cells(L, "I")
      MsgBox ActiveCell.Address & ": Qté " & TDF(L, 9) & " dépasse de " & TDF(L, 9) - TDF(L, 10) _
         & " stock " & TDF(L, 10), vbExclamation, "Sauvegarde"
      Exit Sub: End If: Next L
Set LOt = Sheet4.ListObjects(1)
TH(1, 1) = WorksheetFunction.Max(LOt.ListColumns("N° Facture").DataBodyRange) + 1
TH(1, 2) = TDF(1, 1)
TH(1, 3) = TDF(1, 4)
TH(1, 4) = TDF(23, 7)
TH(1,5)= ? ' pas compris ce que vous vouliez y mettre
LOt.ListRows.Add(1).Range.Value = TH
LOt.ListRows(1).Range.Interior.ColorIndex = xlNone
End Sub
Supprimez les ligne vide dans l'historique: elles ne servent à rien.
Merci beaucoup ce a bien marché.
 
Merci

Merci beaucoup ce a bien marché.
Merci une autre question
Posez votre question Lien supprimé


Voici ci-joint mon fichier. Il a un bouton login et logout pour masquer et afficher des feuilles. Mais moi je veux protéger mon classeur puis, appuyer sur logout sans enlever la protection sans qu'il y ait erreur. J'ai essayé mais en vain. Quelqu'un peut-il m'aider ? (Nom d'utilisateur : "ERIC". Mot de passe: " 123") utilisez le même mot de passe pour protéger mon classeur.
Aidez-moi svp.

https://www.cjoint.com/c/IDtfnaL2g1r
 
Bonjour en attendant la réponse d'un pro en vba je t'ai bricolé une solution pour que tu puisses travailler si besoin
Bonjour
Posez votre question Lien supprimé


Voici ci-joint mon fichier. Il a un bouton login et logout pour masquer et afficher des feuilles. Mais moi je veux protéger mon classeur puis, appuyer sur logout sans enlever la protection sans qu'il y ait erreur. J'ai essayé mais en vain. Quelqu'un peut-il m'aider ? (Nom d'utilisateur : "ERIC". Mot de passe: " 123") utilisez le même mot de passe pour protéger mon classeur.
Aidez-moi svp.

https://www.cjoint.com/c/IDtfnaL2g1r
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
113
Retour