Formulaire user form

Bonjour le forum,

Je sollicite votre aide par rapport à un formulaire que j'ai créé.

Le but de ce formulaire est de remplir pour chaque rayon et chaque magasin, un nombre d'éléments, une unité, le nombre de portants et son unité, le nombre de meubles et son unité pour ensuite calculer une rentabilité du rayon par rapport au nombre total d’éléments.

J'ai créé une combo box qui est le code magasin. J'ai ensuite renommé à la mano chaque text box pour les associer à mon code.

Je me rends rends compte que je dois rajouter pour chaque rayon, au moins 4 text box !

La question que je me pose : Suis-je parti dans la bonne direction ? Dois-je continuer ma méthode pour continuer à coder ? Ou puis-je jouer avec des boucles ou autres ?

Je vous joins mon fichier travaillé je suis à votre dispo pour répondre à toutes questions !

Ps : mon niveau de vba est passable, je progresse mais doucement

Bonjour,

Pour ouvrir le débat je dirais qu'Excel n'est pas adapté à ce genre de travail.

Voire plutôt du coté d'ACCESS.

Coté VBA moi je ne peux rien faire avec ça :

Des noms de contrôles comme ça, ça ne devrait pas exister ! (A partir de 5 digits je commence à trouver ça un peu long !)

D'ailleurs vu le contexte, si je voulais me hasarder dans une entreprise comme ça, je ne chercherai pas même pas à faire de rapprochement lexicaux...

tx1, tx2, tx3... pour les TextBox iraient très bien (pour faire des boucles)

cb1, cb2, cb3 pour les Combos idem...

Vu que l'utilisateur final ne devrait pas avoir à intervenir dans le bouzin et que c'est le Module de Classe qui va sous-traiter la gestion du truc, moi je commencerai par là. Mébon...

Après... Moi je voudrais pas être à ta place !

A+

Bonjour,

Je comprends que tu dises qu'ACCESS est plus approprié qu'Excel dans ce genre de cas.

J'ai pu créé des boules et améliorer grandement (je pense) le code !

Il me reste un point de blocage cependant :

La macro bug lorsque i n'est pas égale à 1. Autrement dit, lorsque je sélectionne le deuxième magasin de la liste par exemple (i=2) pour le calcul de la rentabilité ( Me.Controls("G_" & I). )

'Pour la liste déroulante affichage des données
Private Sub ComboBox1_Change()
    Dim Ligne As Long
    Dim I As Integer
    Dim Nb_elts As Integer
    Dim Unité As Integer
    Dim portant As Integer
    Dim Uportant As Integer
    Dim meuble As Integer
    Dim Umeuble As Integer
    Dim renta As Integer
    Dim compteur As Integer

    If Me.ComboBox1.ListIndex = -1 Then Exit Sub

  Ligne = Me.ComboBox1.ListIndex + 9
 compteur = 10
  Nb_elts = 50
  Unité = 51
  portant = 52
  Uportant = 53
  meuble = 54
  Umeuble = 55
  renta = 56

'essai

For I = 1 To 4

        Me.Controls("A_" & I) = Cells(Ligne, Nb_elts + 7 * I)
        Me.Controls("B_" & I) = Cells(Ligne, Unité + 7 * I)
        Me.Controls("C_" & I) = Cells(Ligne, portant + 7 * I)
        Me.Controls("D_" & I) = Cells(Ligne, Uportant + 7 * I)
        Me.Controls("E_" & I) = Cells(Ligne, meuble + 7 * I)
        Me.Controls("F_" & I) = Cells(Ligne, Umeuble + 7 * I)
        'Me.Controls("G_" & I) = Cells(Ligne, renta + 7 * I)
        Me.Controls("G_" & I).Value = (Cells(Ligne, compteur + 1 * I)) / (Me.Controls("A_" & I).Value * Me.Controls("B_" & I).Value + Me.Controls("C_" & I).Value * Me.Controls("D_" & I).Value + Me.Controls("E_" & I).Value * Me.Controls("F_" & I).Value)

Next I

End Sub

Je n'arrive pas à comprendre pourquoi cela fonctionne quand i=1 seulement.

Merci pour vos réponses

Je n'ai pas forcément compris (je n'ai pas trop cherché non plus...) mais je pense que quand B_2 = "" ça ne passe pas.

"" n'est pas évalué comme zéro donc tu ne peux pas multiplier par ""

A minima tu devrais écrire :

Me.Controls("G_" & I).Value = (Cells(Ligne, compteur + 1 * I)) / (Me.Controls("A_" & I).Value * Val(Me.Controls("B_" & I).Value) + Me. 'la suite sans changement

Remarque : Sans préjudice de ce qui se passera si d'autres contrôles sont = ""

A+

Effectivement c'est à cause des "".

J'ai mis toutes les données à 0 par défaut.

Rechercher des sujets similaires à "formulaire user form"