XL 2016 vba-code

Hamza21

XLDnaute Nouveau
Bonjour
je suis coincé aidez moi stp
j'ai un fichier Excel qui peut très bien m'aider sur mon travail .
j'ai met un fichier de saisie et de calcul mes données, j'ai réussie de mètre le Button saisie comme il faut et comme je veut, mais j'ai rien a comprendre pour le Button CALCUL, j'aime bien quand je clic sur calcul le fichier me calculer la quantité produite par client et la quantité non conforme, peut quelqu'un m'aider sur le code de ''CALCUL''

Merci d'avance
 

Pièces jointes

  • Controle Moulage 2023.xlsm
    382.7 KB · Affichages: 8

cp4

XLDnaute Barbatruc
Bonjour,

Je n'ai pas tout compris. Comme par rendre tes listes de la feuille cachée "Listes" dynamiques.
En adaptant la formule de la démo à ta feuille.
Liste_Dynamique.gif


A+

edit: utilises la touche F2 pour pouvoir facilement modifier la formule dans le champ "Fait référence à"
 

cp4

XLDnaute Barbatruc
Le code VBA que j'ai met ne correspond a ma demande au calcul
En fait, même ton code de l'userform1 n'est vraiment correct.
J'ai fait un essai, la ligne n'est ajoutée au bon endroit.

Si tu veux que l'on puisse t'aider, il faut nous expliquer ce que doit faire le calcul.
Je t'ai suggéré de rajouter une formule pour rendre tes listes dynamiques, pour la simple raison qu'en ajoutant par exemple un client. Ce dernier apparaitra bien dans ta combobox.

je suis prêt à t'aider, mais il faut que tu m'aides à t'aider.
Exemple pour améliorer tes codes
VB:
Private Sub ComboBox4_Change()'ton code'
   If ComboBox4.Value = "NIDECKER" Then
      ComboBox1.RowSource = "nidecker"
   ElseIf ComboBox4.Value = "WEST" Then
      ComboBox1.RowSource = "west"
   ElseIf ComboBox4.Value = "VERDAD" Then
      ComboBox1.RowSource = "verdad"
   ElseIf ComboBox4.Value = "EASY" Then
      ComboBox1.RowSource = "easy"
   ElseIf ComboBox4.Value = "ZAG" Then
      ComboBox1.RowSource = "zag"
   ElseIf ComboBox4.Value = "OGSO" Then
      ComboBox1.RowSource = "ogso"
   ElseIf ComboBox4.Value = "ALLOY" Then
      ComboBox1.RowSource = "alloy"
   ElseIf ComboBox4.Value = "FUNKY" Then
      ComboBox1.RowSource = "funky"
   ElseIf ComboBox4.Value = "SLASH" Then
      ComboBox1.RowSource = "slash"
   ElseIf ComboBox4.Value = "BOREALIS" Then
      ComboBox1.RowSource = "borealis"
   ElseIf ComboBox4.Value = "DECATHLON" Then
      ComboBox1.RowSource = "decathlon"
   ElseIf ComboBox4.Value = "FJELL" Then
      ComboBox1.RowSource = "fjell"
   ElseIf ComboBox4.Value = "CANARY" Then
      ComboBox1.RowSource = "canary"
   ElseIf ComboBox4.Value = "BEXTREME" Then
      ComboBox1.RowSource = "bextreme"
   ElseIf ComboBox4.Value = "AME" Then
      ComboBox1.RowSource = "ame"
   ElseIf ComboBox4.Value = "EXP" Then
      ComboBox1.RowSource = "exp"
   ElseIf ComboBox4.Value = "ZUMIEZ" Then
      ComboBox1.RowSource = "zumiez"
   ElseIf ComboBox4.Value = "COMMENCAL" Then
      ComboBox1.RowSource = "commencal"
   ElseIf ComboBox4.Value = "YAMA" Then
      ComboBox1.RowSource = "yama"
   ElseIf ComboBox4.Value = "NICHE" Then
      ComboBox1.RowSource = "niche"
   ElseIf ComboBox4.Value = "EVEDSEN" Then
      ComboBox1.RowSource = "evedsen"
   End If
End Sub
Et ce code, qui fait la même chose
Code:
Private Sub ComboBox4_Change()
ComboBox1.Clear
ComboBox1.List = Range(ComboBox4).Value
End Sub

A+

edit: pourquoi ton code copie les données 3 lignes plus bas du tableau? Est-ce une erreur de codage de ta part ou c'est voulu?
 
Dernière édition:

Hamza21

XLDnaute Nouveau
Merci pour ce solution, ou je doit mettre ce code la,est ce que au lieu de mon code ? En fait dans le Sheets calcul , j'ai besoin de calculer la quantité produite globale en colonne 2,la quantité non conforme en colonne 3 et les quantités produites par client du colonne 5 ,mais j'ai ne pas réussie de mettre le code nécessaire pour le Sheets CALCUL .Est ce que vous une solution concernant le besoin que j'ai expliquer STP.
 

Pièces jointes

  • 331212833_1605124149950476_1260499947492981206_n.jpg
    331212833_1605124149950476_1260499947492981206_n.jpg
    379.4 KB · Affichages: 12
  • 331234195_959461828795911_5086011592642673139_n.jpg
    331234195_959461828795911_5086011592642673139_n.jpg
    313.5 KB · Affichages: 14

cp4

XLDnaute Barbatruc
Bonjour,

ou je doit mettre ce code la,est ce que au lieu de mon code ?
Je pense que c'est évident, non? Il s'agit de la procédure Private Sub ComboBox4_Change().
Tu supprimes toutes tes lignes de codes et tu remplaces par celle du post#4, soit cette procédure
VB:
Private Sub ComboBox4_Change()
ComboBox1.Clear
ComboBox1.List = Range(ComboBox4).Value
End Sub
il y a beaucoup de choses à revoir sur ton userform1. Car actuellement, l'enregistrement ne se fait pas au bon endroit (ligne). Du coup, tes calculs seront faux.
Sans apporter toutes les corrections à ton 1er userform, il n'est pas nécessaires d'aller plus loin pour tes calculs.
Maintenant, si tu es persuadé que ton userform de saisie fait bien sont boulot et que tu veux absolument faire tes calculs, oriente-toi vers Somme.Si.Ens.

Je veux bien t'aider mais pas faire tout le travail à ta place. Je t'ai déjà montré comment faire pour avoir des listes dynamiques (elle s'ajuste dès que tu rajoutes par exemple un client). L'as-tu fait sur ton fichier?

A+

edit: fichier en retour, une petit partie traitée. Calcul non traité.
 

Pièces jointes

  • Controle Moulage 2023_v1.xlsm
    400.4 KB · Affichages: 2
Dernière édition:

cp4

XLDnaute Barbatruc
Okey merci pour tes réponses
Ok. Tu ne réponds à mes questions afin que je puisse t'aider. Moi aussi j'attends des réponses.

Pourquoi pour le bouton Valider:
1 - tu compares la date à celle qui est sur la dernière ligne de ton tableau de la feuille saisie
2- Pourquoi lorsque la date et celle de la dernière ligne, tu fais ligne = .Range("A456541").End(xlUp).row + 3
sinon ligne = .Range("A456541").End(xlUp).row + 1

Je n'ai pas compris, as-tu une bonne raison? Pour moi c'est illogique.

Maintenant, si tu as vraiment besoin d'aide, il faut réagir. Sinon, laisse-nous aider d'autres membres.

A+
 
Dernière édition:

Hamza21

XLDnaute Nouveau
Ok. Tu ne réponds à mes questions afin que je puisse t'aider. Moi aussi j'attends des réponses.

Pourquoi pour le bouton Valider:
1 - tu compares la date à celle qui est sur la dernière ligne de ton tableau de la feuille saisie
2- Pourquoi lorsque la date et celle de la dernière ligne, tu fais ligne = .Range("A456541").End(xlUp).row + 3
sinon ligne = .Range("A456541").End(xlUp).row + 1

Je n'ai pas compris, as-tu une bonne raison? Pour moi c'est illogique.

Maintenant, si tu as vraiment besoin d'aide, il faut réagir. Sinon, laisse-nous aider d'autres membres.

A+
Bonjour,

Pour le bouton ''Valider'' , je met la date du jour de la saisie et pour ce code la j'ai un ami qui m'aider pour mettre ce interface . Et pour ca que je met ce fichier ici pour que comprendre et corriger les erreurs trouver.
 

cp4

XLDnaute Barbatruc
Bonjour,

Pour le bouton ''Valider'' , je met la date du jour de la saisie et pour ce code la j'ai un ami qui m'aider pour mettre ce interface . Et pour ca que je met ce fichier ici pour que comprendre et corriger les erreurs trouver.
Bonjour,

Je comprends un mieux. C'est un ami qui t'aide. Est-ce qu'il a remarqué qu'en enregistrant avec le bouton valider, sur la feuille il y a inversion entre les jours et les mois.
Tu peux t'en rendre compte en utilisant ton fichier joint. Aujourd'hui on est le 16/02/2023, si tu fait un enregistrement, tu auras 02/16/2023.

Ce qui est clair pour toi (normal c'est ton projet) ne l'est pas pour moi.
Je t'avoue que je navigue un peu à l'aveugle. J'essaie de déduire ce que tu veux faire d'après ton code.
Comme les résultats ne sont pas ce que tu voudrais alors je risque de te donner une fausse solution.

Je constate que tu as du mal à t'exprimer en français. utilise Google traduction ça pourrait être plus clair pour moi.

à quoi servent les checkboxs?

A+
 

Hamza21

XLDnaute Nouveau
Bonjour,

Je comprends un mieux. C'est un ami qui t'aide. Est-ce qu'il a remarqué qu'en enregistrant avec le bouton valider, sur la feuille il y a inversion entre les jours et les mois.
Tu peux t'en rendre compte en utilisant ton fichier joint. Aujourd'hui on est le 16/02/2023, si tu fait un enregistrement, tu auras 02/16/2023.

Ce qui est clair pour toi (normal c'est ton projet) ne l'est pas pour moi.
Je t'avoue que je navigue un peu à l'aveugle. J'essaie de déduire ce que tu veux faire d'après ton code.
Comme les résultats ne sont pas ce que tu voudrais alors je risque de te donner une fausse solution.

Je constate que tu as du mal à t'exprimer en français. utilise Google traduction ça pourrait être plus clair pour moi.

à quoi servent les checkboxs?

A+
L'inversion du date est facile a changer et je la changerai.
Pour moi le checkbox ''Saisie'' est fonctionne correctement comme je veut, mais le problème est au checkbox "CALCUL".
Mon besoin c'est quand je clic sur calcul le fichier me calculer le nombre de quantité produit par client par exemple ( DECATHLON = Qté produite 759 et 18 pièces rebut, le taux de rebut sera 2.34%).
Et quand je fais un autre saisie la qté et le taux sera automatiquement changer par client .
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO