Multipage ,combobox et textbox

photoechange

XLDnaute Junior
Sur un mutipage 3 feuilles
'page1', 2 nom'janvier' et 3 'février'
Sur la page1, 3 textbox ou j'additionne 2 textbox le résultat sur le 3 en validant avec un button.
Jusqu’à là pas de prob, j'ai ajouté un combobox et je souhaite pouvoir sélectionner le mois et écrire la valeur dans un textbox au mois voulu

Si je sélectionne janvier le total des salaires sera écrit dans un textbox à la page janvier et si c'est février alors février

J'ai attaché un fichier en espérant là qu'il passe désolé de polluer dernier essai
Merci encore [file name=multipage.zip size=13020]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/multipage.zip[/file]
 

Pièces jointes

  • multipage.zip
    7.4 KB · Affichages: 44
  • multipage.zip
    7.4 KB · Affichages: 41
  • multipage.zip
    7.4 KB · Affichages: 43
M

Mytå

Guest
Salut Photoechange,

Pour éviter le doublon de post utilise éditer

Une idée de base

Private Sub CommandButton1_Click()
TextBox3.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
If ComboBox1 = 'janvier' Then TextBox4 = TextBox3
If ComboBox1 = 'fevrier' Then TextBox5 = TextBox3
End Sub

Mytå
 

Hellboy

XLDnaute Accro
Bonsoir a tous

Voici le code et le fichier:


Private Sub TextBox1_Change()
Call Calcul_Salaire(TextBox1)
End Sub

Private Sub
TextBox2_Change()
Call Calcul_Salaire(TextBox2)
End Sub

Private Sub UserForm_Initialize()
With ComboBox1
    .AddItem 'janvier'
    .AddItem 'fevrier'
End With

End Sub


Public Sub Calcul_Salaire(objCombobox As Object)
With objCombobox
   
If IsNumeric(.Value) Then
     
If Not ComboBox1.Value = Empty Then
          resultat = Val(.Value)
          TextBox3.Value = Val(.Value) + Val(TextBox2.Value)
          Me.MultiPage1.Pages(Me.ComboBox1.Value).Controls(Me.ComboBox1.Value).Value = Val(.Value) + Val(TextBox2.Value)
     
Else
            MsgBox 'Vous n'avez pas fait de choix pour le mois'
            .Value = Empty
     
End If
 
End If

End With

End Sub


Ce fichier Zip contient un ou plusieurs fichier Module. Voici la procédure d'utilisation:
Premièrement, dé-zipper le fichier et extraire le ou les fichiers Module sur votre Disque dur.
Deuxièmement, dans Excel(chiffrier) taper les touches Alt+F11 pour ouvrir la fenêtre du Visual Basic Editor
Troisièmement, sélectionner le bon VBAProject dans la fenêtre de l'explorateur de projet.
Quatrièmement, du click droit de la souris, sélectionné l'option: Importer un fichier...
Cinquièmement, choisir un par un le ou les fichiers a l'endroit ou vous les avez extrait.
Finalement, vous pouvez supprimer les anciens Module(click droit de la souris), mais
assurer vous avant que le ou les nouveaux fonctionne bien.

Je dois dire que c'est curieux la façon dont tu enligne ton projet, mais c'est difficile de porter un jugement de valeur sans connaissance de cause.

a+

[file name=vbaproject_multipage.zip size=2865]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/vbaproject_multipage.zip[/file]
 

Pièces jointes

  • vbaproject_multipage.zip
    2.8 KB · Affichages: 70

photoechange

XLDnaute Junior
Bonjour,Hellboy

Merci pour ton code
Je l'ai testé ça fonctionne mais j'ai une petite question, si je rajoute un mois que dois je faire ?

Ou plutôt pourrait tu m'expliquer le code
J’ai compris une partie mais je bloque un peu pour, dire vrai j’ai un petit niveau sur le vba
Je travail uniquement avec mes livre et le net.
Donc j’essaye de comprendre le code pour pouvoir le réutiliser et pour ne pas faire que du copier coller

J’ai testé la version de myta ça fonctionne aussi peux tu me dire la différence des deux codes
Hors mis que dans ta formule le solde total se calcul automatiquement

Merci à Myta et hellboy
 

Hellboy

XLDnaute Accro
Bonjour a tous

Vérifie bien ce code, j'ai vue que j'avais fait une ou deux petites erreurs de logique. Alors il y a des changements. Pour ce qui est de la différente entre ce code et celui de Mytå, et bien ce n'est qu'une question de choix d'individu. Il n'y a pas de mieux ou pas mieux pour la personne qui programme, on le fait par rapport a ses expériences et a sont savoir faire et selon sont état d'âme de cette journée là.

' Le fais de faire le calcul automatique, ça créer une intervention en moins pour l'utilisateur. Le moins que l'utilisateur
' à Intervenir, plus il est heureux.

' Cette partie-ci, tu l'as comprise, elle sert au calcul. Ce que je fais, j'envois à la routine
' Calcul_Salaire l 'objet qui subit un changement. Le fait de faire appel a une routine
' externe, permet de ne pas faire une dupplication de code pour chacun des textbox.
Private Sub TextBox1_Change()
Call Calcul_Salaire(TextBox1)
End Sub

Private Sub
TextBox2_Change()
Call Calcul_Salaire(TextBox2)
End Sub

' Cette routine permet de préparer ta forme avant qu'elle n'apparaisse à l'écran.
' Donc ce cas-ci, on prépare la liste des énoncés qui feront partie du ComboBox1
Private Sub UserForm_Initialize()
With ComboBox1
    .AddItem 'janvier'
    .AddItem 'fevrier'
End With

End Sub


' Cette procédure est la procédure du calcul automatique des textbox. Mais aussi sert à inscrire au fur et a mesure
' le résultat dans la page nommée du même nom du choix du mois que l'utilisateur a fait. Ce choix doit être fait avant
' toute chose.

' Ici dans cette procédure, je déclare quel type de varialble doit être passé en paramètre par sont appel.
' Dans ce cas-ci, c'est un objet et cet objet est le textboxX avec tout sont bagage de propriété et méthode
Public Sub Calcul_Salaire(objCombobox As Object)
With objCombobox
 
' Ici, je m'assure avec la commande IsNumeric que la valeur inscrite par l'utilisateur est bien de type numerique
 
' C'est peut être a travailler, parce que si le nombre comporte des unités, la virgule ou le point pourrait être tolléré
   
If IsNumeric(.Value) Then
   
' Ici je m'assure que le choix du mois à été fait. Donc si le combobox1 n'est pas vide on continue
     
If Not ComboBox1.Value = Empty Then
       
' J'ai gardé ta variable ici, mais elle ne me ser pas
          resultat = Val(.Value)
       
' J'inscris directement le résultat des 2 textbox dans le troisième
          TextBox3.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
       
' Ici J'inscris directement le résultat du textbox3 dans la page qui porte EXACTEMENT le même nom du choix
       
' du mois de l'utilisateur du combox1
          Me.MultiPage1.Pages(Me.ComboBox1.Value).Controls(Me.ComboBox1.Value).Value = Val(Me.TextBox3.Value)
     
Else
            MsgBox 'Vous n'avez pas fait de choix pour le mois'
            .Value = Empty
     
End If
 
End If

End With

End Sub


Message édité par: Hellboy, à: 19/03/2006 17:30
 

Discussions similaires

Statistiques des forums

Discussions
312 564
Messages
2 089 707
Membres
104 266
dernier inscrit
christian Auletta