Recuperation valeurs

  • Initiateur de la discussion paul
  • Date de début
P

paul

Guest
Bonsoir,

Voila j'ai cree un fichier pour gerer un budget dans lesquel j'ai un UserForm avec des listbox. Je voudrais recuperer les valeurs des champs saisis et les inscrire dans la feuille "Data" à la ligne suivante (la prochaine ligne vide).

Merci de votre aide.

Je suis au debut de mes lignes de code en VBA et promis si qq'un me montre comment faire pour mon cas - j'arreterais avec mes questions stupides ;)

J'ai regarde pas mal des exemples notament celles de Thierry mais comme je suis newbie je ne comprends pas tout.

Paul
 

Pièces jointes

  • budget2004.zip
    20.9 KB · Affichages: 28
  • budget2004.zip
    20.9 KB · Affichages: 30
  • budget2004.zip
    20.9 KB · Affichages: 29
M

mDF

Guest
Bonsoir Paul,

Tu trouveras ci-joint ton exemple modifié en conséquence.

A noter toutefois, que j'ai du mettre en remarque ta ligne :
Range("A3:B3", Cells(ComboBoxImputation.ListCount, 4)).Clear
de l'évènement Initialize du USF.

N'hésite pas à continuer ce fil si tu as besoins d'explications supplémentaires...

Cordialement.
Didier
 

Pièces jointes

  • budget2004.zip
    23.5 KB · Affichages: 36
  • budget2004.zip
    23.5 KB · Affichages: 35
  • budget2004.zip
    23.5 KB · Affichages: 35
P

paul

Guest
Merci beaucoup Didier,

Je me suis creusé la tête jusqu'a maintenant (00:26) et j'ai fait une version qui est pas mal aussi - mais la tienne est quand même "BEAUCOUP MIEUX" (on voit l'experience ;o)) et plus intéressante (avec l'utilisation du tableau).

Cependant j'ai une question ? Comment récupérer la description du compte d'imputation est l'inclure dans ma feuille Excel dans la colonne "Description" ?

NB : Ma listbox récupère la valeur de la feuille "Charges_2004" et affiche les deux colonnes dans la listbox mais je ne sait pas comment récupérer la valeur de la deuxième colonne et l'inscrire dans la colonne "Description" de ma feuille "Data".

Merci d'avance

Paul
 
M

mDF

Guest
Pour récupérer la valeur stockée dans une colonne d'un ComboBox, il te faut utiliser :

ComboBox.List(ComboBox.ListIndex,Col)

- ListIndex pointe sur le numéro d'index de l'élément sélectionné.
- Col est le numéro de colonne que tu souhaites (0 = première colonne, 1 = deuxième colonne, etc...)


Autrement dit, dans l'exemple précédent, il faudra mettre :

Donnees(1, 3) = ComboBoxImputation.List(ComboBoxImputation.ListIndex, 1)


J'espère que mon explication te conviendra.

Didier
 
M

mDF

Guest
Pour mettre les champs à zéro, il convient de définir la propriété Text des Textbox et ComboBox = ""

En lieu et place des lignes suivantes (procédure Click du bouton "Valider") :

'Fermeture USF
Unload Me

Tu peux mettre pour chaque control la propriété Text = "" ou plus rapidement mettre :

Dim Ctrl As Control
For Each Ctrl In UserForm1.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox Then
Ctrl.Text = ""
End If
Next Ctrl
TxtDate.Value = Format(Now, "DD/MM/YYYY")

Didier
 
P

paul

Guest
DIDIER,

Tous ce que je peut de dire c'est que J'AI TOUT COMPRIS et en + CAAAAAAAAAA MAAAAAAAAAAAAAAARCHE.

C'est du BONHEUR.

Merci encore et ce soir je vais attaquer les calculs pour les statistique d'utilisation - donc je me permettrais de poser encore des questions sur ce meme fil

Thx encore

@+ Paul
 
P

paul

Guest
Ben decidement ca ce complique un peut - pour moi :((

Dans la meme lancée je voudrais savoir comment on recupère une information (budgets allouées correspondans au compte - voir feuille "Charges_2004") pour un compte saisis dans l'USF combo "Compte Imputation" et l'afficher dans le champ "Moins de six ans - CCPS" du frame recapitulatif des charges 2004

merci d'avance

Paul
 
M

mDF

Guest
Bonsoir Paul,

Grâce au "ComboBoxImputation.ListIndex", on connait l'index de la ligne correspondant aux données à récupérer dans la feuille "Charges_2004". On peut donc s'en servir pour réaffecter ses données dans les Textbox souhaités.

Dans le code du USF, tu peux donc mettre :

Private Sub ComboBoxImputation_Change()
Dim PremiereLigneCharge As Byte
Dim L As Long
'Les données commencent en ligne 3 dans l'onglet "Charges_2004"
PremiereLigneCharge = 3
'L'index de la sélection dans le ComboBoxImputation est :
L = ComboBoxImputation.ListIndex
'Récupère les valeurs souhaitées de la feuille
TextBox3.Text = Sheets("Charges_2004").Cells(PremiereLigneCharge + L, 5).Value
TextBox7.Text = Sheets("Charges_2004").Cells(PremiereLigneCharge + L, 6).Value
End Sub

Cette exemple est détaillé pour te permettre de comprendre la démarche, mais tu peux, bien sûr le réduire à son strict minimum en supprimant les variables intermédiaires "PremiereLigneCharge" et "L".

Cela dit, je pense que la solution la plus simple aurait consisté à affecter l'ensemble des données des colonnes A à H dans le ComboBoxImputation à l'initiatialisation du USF (en masquant au besoin les colonnes C à H de ce combo). Il est ensuite très facile de récupérer se que l'on souhaite grâce à "ComboBox.List(ComboBox.ListIndex,Col)" comme expliqué plus haut dans ce fil.

Cordialement.
Didier
 
P

paul

Guest
Encore une petite aide SVP - Didier

Je suis en train de faire les statistiques pour voir le budget utilisé par compte pour ensuite voir le disponible a depenser (pour le meme compte quand on le selectionne dans la ComboBoxImputation) - mais je n'y arrive pas - comment faire

Merci d'avance

V
 

Pièces jointes

  • budget2004v1a.zip
    36.9 KB · Affichages: 25
  • budget2004v1a.zip
    36.9 KB · Affichages: 27
  • budget2004v1a.zip
    36.9 KB · Affichages: 25
M

mDF

Guest
Bonsoir Paul,

Si j'ai bien compris ce que tu voulais, je pense que ton exemple modifié ci-joint devrait faire l'affaire...

J'ai créé une feuille "Stats Dépenses" supplémentaire ainsi qu'un module VBA et ai apporté quelques modifications au code du USF.

Bon courage.
Didier
 

Pièces jointes

  • budget2004v1a.zip
    46.4 KB · Affichages: 32
  • budget2004v1a.zip
    46.4 KB · Affichages: 33
  • budget2004v1a.zip
    46.4 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
314 179
Messages
2 106 898
Membres
109 720
dernier inscrit
tistou