Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Problemes

GCFRG

XLDnaute Occasionnel
Bonsoir à tous, décidement, je ne peux me passer de vous.
J'ai des problèmes l'ors de la récupération d'une listbox dans mon classeur.

Je donnes toutes les explications "du moins je le penses " dans le USF de mon fichier joint.

Je galère depuis ce matin là dessus et je ne vois pas comment m'en sortir sans votre aide.

Alors un immense merci à celle ou celui qui pourra m'aider, et surtout n'hésiter pas à émettre des critiques sur ma manière de procéder des lors que ces dernières sont constructives c'est tous bénef pour mon apprentissage du VBA

voilà voilà
Gilbert
 

Fichiers joints

G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonsoir GC,

rien de bien grave apparement. Il suffit de remplacer partout les

ComboBoxN.Value="" par des comboboxN.Text="" (Où N est le numéro de la combobox)

En Effet la propriété Value des Combobox est en lecture seule. Dans ce cas là.


A bientôt
 
G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Re bonsoir,

Dans ces lignes
Code:
Private Sub ComboBox1_Change()
If Me.CheckBox4.Value = False And Me.CheckBox3.Value = False Then
    MsgBox MessageMat
    Me.ComboBox1.Text = ""
Dans l'évènement Change d'un objet si tu donnes une nouvelle valeur à l'objet, l'évènement est rappelé (appel récursif) ici :Me.ComboBox1.Text = "". Il vaut mieux éviter cette façon de procéder.

Par contre si tu ne veux pas que l'utilisateur puisse choisir dans ta combobox tu peux agir sur sa propriété Enabled en fonction de tes cases à cocher ou d'une autre valeur.

Ci joint quelques changements.
Vois si cela convient.

A bientôt

A demain tout le monde.
 
Dernière édition par un modérateur:

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Re bonsoir,

Dans ces lignes
Code:
Private Sub ComboBox1_Change()
If Me.CheckBox4.Value = False And Me.CheckBox3.Value = False Then
    MsgBox MessageMat
    Me.ComboBox1.Text = ""
Dans l'évènement Change d'un objet si tu donnes une nouvelle valeur à l'objet, l'évènement est rappelé (appel récursif) ici :Me.ComboBox1.Text = "". Il vaut mieux éviter cette façon de procéder.

Par contre si tu ne veux pas que l'utilisateur puisse choisir dans ta combobox tu peux agir sur sa propriété Enabled en fonction de tes cases à cocher ou d'une autre valeur.

Ci joint quelques changements.
Vois si cela convient.

A bientôt

A demain tout le monde.
bonsoir HASCO, merci pour ton aide, cepandant, lors de l'initialisation du USF, cette partie du code génère le message avant même d'avoir sélectionné quoi que se soit.

Private Sub ComboBox1_Enter()
If Me.TextBox7.Value = "" Then
MsgBox "Veuillez inscrire le nom de la pièce"
TextBox7.SetFocus
End If
End Sub

normal car textbox7 est vide au démarage du USF
et si je déplace dans combobox1 cette partie du code le message d'erreur est le même que j'avais initialement
d'autre part, quelque soit le choix effectué, "alu ou pvc" le reste du code doit s'exécuter , ma combobox largeur n'est plus alimenté et ma listbox ne s'alimente plus non plus

je vais voir si je peux arranger celà
ou si quelq'un a 1 idée

merci
Gilbert

Ps je remet le fichier avec une petite correction dans l'explication située dans le USF
 

Fichiers joints

Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

bonsoir Cgfrg,Hasco
regarde dans les combobox ,mettre value="" dans évènement change ???
initialise et calcul(changer en partie)
à bientôt
 

Fichiers joints

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

salut bebere, en fait, ça ne change pas grand chose, apres le message "veuillez sélectionné le matériau" quand la checkbox alu ou pvc est coché et que le textbox "piece"est été renseigné il faudrais que ma combobox1 se vide pour que la textbox1 prenne sa valeur lors de la nouvelle sélection, d'autre part, j'ai toujours le message "valeur de propriété non valide" qui apparais après avoir cliquer sur "enregistrer" si je clic sur la combobox1.
j'en perd mon latin.
merci quand même d'avoir passez du temps à essayé de comprendre ce que je veux
mais peut-être ne suis-je pas assez clair dans mes explications.
merci encore
à bientôt j'espère.

Gilbert "la galère":confused:
 

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Salut bebere, merci pour ton aide précieuse, super boulot, ça marche bien, j’ai fait quelques modif, notatemment pour remettre le combobox 1 à vide après un oubli sur le checkbox4 ou sur le textbox7.
Serait il possible de n’avoir que 2 chiffres après la virgule dans les textbox des volets roulants ?
Et de quelle manière je pourrais afficher les données de ces textbox dans la listbox1 si par exemple on décide pour 1 pièce d’ajouter 1 volet roulant.

Type piece désignation dimension Quantité Pu TTC Pt TTC
Fenetre cuisine fixe 600X850 1 276,50€ 276,50€
Volet roulant cuisine 700X850 1 000,00€ 000,00€

Et ansi de suite.
Puis vider la listbox1 après enregistrement dans la feuille 3

Sans vouloir abusé de ta patience, pourrais tu documenter un peu les modifs que tu as fais, pour que je puissent comprendre tous l’intérêt de ses dernières

Je sais, pour toi ça coule de source, mais je suis novice et j’aime bien comprendre comment ça fonctionne.
Encore 1 grand merci pour ta patience et l’intérêt que tu portes à mon travail

Bien cordialement
gilbert
 

Fichiers joints

G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonjour GC, (Tiens! on a les même initiales)
bonjour Le Forum,

Voici une nouvelle mouture qui fonctionne avec plusieurs changement.

Les cases à cocher Alu et Pvc ont été changées en bouton d'option
La fenêtre s'ouvre avec l'option Alu par défaut.
Les controles ont été renommés(pas tous, je te laisse le soin de le faire)
pour plus de lisibilités dans le programme.



Personnellement j'applique la règle de nommage suivante:
Les noms de textBox commencent par tb (tbPiece)​
Les noms de Combobox commencent par cb (cbType, cbLargeur)​
Les boutons d'options par opt (optAlu, optPVC)​
Etc...​
Ce qui qui permet un codage beaucoup plus clair pour le débogage, car on sait immédiatement de quoi l'on parle.

De plus il y a un outil util, 'L'ordre de tabulation' (Menu affichage)
Sélectionner un des frames, afficher l'ordre de tabulation. Qui permet de contrôler dans quel ordre les objets vont recevoir le focus (s'activer).

Ainsi, le userform s'ouvre sur les bouton d'option, puis le tbPiece, cbType, cbLargeur, cbHauteur.

Ce qui a permis de faire un contrôle dans l'évènement Enter de cbType. Si tbPiece est vide on retourne à tbPiece.

Et encore une fois: attention aux appels récursifs évènementiels, dès qu'on change les propriété value ou text d'un contrôle, l'évènement correspondant est appelé.

Bon voici le résultat de ce travail qui n'est pas fini.

A bientôt

EDITION: j'ai enlevé le fichier qui n'était plus valable. Pour alleger le serveur.
 
Dernière édition par un modérateur:

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonsoir, bebere, hasco, j'ai modifier mon code et j'y ai apporter les modifs sugéré par HASCO, concernant les controles. mais j'ai conserver les checkbox.
concernant les volets roulants, j'avais initialement arrondi les chiffres, je peux savoir pourquoi bebere à choisi de calculé les prix d'une nouvelle manière?
je vous remercie tous les deux pour l'aide que vous m'apportez.
j'ai joint mon nouveau fichier avec les quelques problème qui subsiste.
notament quand je clic sur enregitrer, si je reviens sur la combo type, j'ai le message suivant "valeur de propriété non valide"
je nai toujours pas trouvé de quelle manière pouvoir supprimer une ligne dans ma listbox
comme je l'indique dans le USF
au plaisir de vous lire

A bientôt gilbert "qui galère un peu moins":)
 

Fichiers joints

G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Re bonjour GC,

Allons doucement:
A l'affichage du userform, le message "Veuillez inscrire le nom de la pièce s'affiche" avant même que le userform soit visible.

Pour corriger cela, sélectionne la Frame1 et affiche l'ordre de tabulation comme dit précédement pour avoir un ordre de saisie des contrôles:CHKALU, CHKPVC, TbPiece etc...etc...

De plus les lignes dans cbType_Change() :

'ElseIf Me.TBpiece = "" Then
' MsgBox "Veuillez inscrire le nom de la pièce"
' ' Me.CBtype.Value = ""
' Me.TBpiece.SetFocus
' Exit Sub

Sont devenues inutiles puisque c'est lévènement cbType_Enter qui gère la validité de TBpiece.

Dans TBpiece_Change()

tu peux rajouter des lignes du genre:
cbType.enabled=tbPiece<>""
cbLargF.enabled=cbType.enabled
cbHautF.enabled=cbType.enabled

ce qui interdira toute saisie dans les combobox nsi tbpiece="" ou l' autorisera dans le cas contraire
tu peux mettre leur propriété enabled à false à l'initialisation du userform
et le l'autoriser que si tbPiece est <>"".

voili

Pour le reste on verra après.

A bientôt
 
G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Re bonsoir,

Voici ton fichier quelque peu modifié.

Ce qui a changé:

Dans l'évènement initialize du Userform: on empêche de commencer la saisie dans les combo et tbPiece du Frame1 seules les case à cocher sont atteignables.

Quand l'une ou l'autre change d'état on autorise la saisie de tbPiece.

Pour autoriser la selection d'un choix, il faut valider la saisie dans tbPiece pas Enter ou touche Tabulation.

Attention: dans l'évènement change des case à cocher tu fais des appels récursifs aux évènements change de ces même cases. C'est pour cela que j'avais proposé les boutons d'option qui sont exclusifs et plus facile à gérer dans ton cas.

Les combobox ont leur propriété .RowSource renseignée, c'est pour cela que les autres propriétés sont plus délicates à manier( propiétés Value et Text). J'ai remplacés tous (enfin je crois) les CBXXXX.text = "" par des CBXXXX.ListIndex=-1 ce qui revient au même et est préférable dans le contexte.

Voir également ce qui à changer dans l'évènement Click du bouton 'Enregistrer'.

Pour le calcul du prix, je ne me suis pas penché sur le problème.

En espérant t'avoir aidé, je te souhaite de passer une bonne soirée.

A bientôt

[EDITION] Voir fichier plus loin
 
Dernière édition par un modérateur:

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

houps!!! désolé hasco, trop pressé de quitter le taf, j'ai pas pris le temps de contrôler si çà fonctionnait je me suis contenté de faire les modifs:confused:

décidément, tu as un coup d'oeil d'enfer pour avoir repérer si rapidement toutes ces anomalies, j'ai suivit ton conseil concernant les tabulations, j'ai également rajouté les lignes de code que tu préconisaisdans TBpiece, j'en ai profité pour faire la même chose pour les volets roulants.
jusqu'à là ça semble fonctionner

je joins à nouveau le fichier avec les modifs

a bientôt j'espère :)
voili voilà quoi
au fait YE HE MAD c'est breton non? a ta santé je crois ?


Gilbert "qui galère de moins en moins"
 

Fichiers joints

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

salut hasco, on c'est croisé je crois, je suis désolé, mais je vais étudié les modif que tu as apporté, je ne doute pas 1 instant que je vais encore en apprendre.

Vraiment merci infiniment, grace à toi et à bébère j'ai vraiment avancé, et cet USF n'est qu'une partie emrergée de l'iceberg , il s'agit d'une application de chiffrage rapide pour contructions de maisons individuelles donc du pain sur la planche.
@ bientôt j'espère.
Gilbert
 

Bebere

XLDnaute Barbatruc
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

bonjour Cgfrg,Hasco
si tu sais attendre, je n'ai plus que jeudi
tu es entre de bonnes mains
à bientôt
 

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonsoir le forum,
Salut bebere, hasco, Voici la dernière mouture de cet USF, j'y ai rajouté une feuille pour les fenêtres PVC, et modifier le code en ce sens, je voudrais savoir comment conservé les entêtes de colonne dans la listbox, en effet on la vide par un "listbox.clear", il doit être possible je suppose de ne supprimé que les lignes en dessous de la 1ère?
d'autre part, il faut valider TBpiece par "entrée", pour activer CBtype, ce qui peut être problématique pour un utilisateur lamda:).

Alors une fois de plus je vous appelles à mon secours.

gilbert "qui galère encore un peu"
 

Fichiers joints

G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonjour le forum,
Bonjour GC:)


d'autre part, il faut valider TBpiece par "entrée", pour activer CBtype, ce qui peut être problématique pour un utilisateur lamda
Je pense qu'il vaut mieux laisser cela en l'état. Ce qui oblige l'utilisateur à faire les chose consciement et non mécaniquement(ce qui toujours source d'erreur). Mais pour améliorer la chose j'ai rajouté une étiquette qui lui demande de valider la saisie par Entrer et qui disparait lorsque il quitte le controle.

L'activation des combobox se fait maintenant sur l'évènement AfterUpDate de tbPiece.

Pour la listeBox, c'est fait, regarde la petite modification apportée à la boucle qui enregistre les données dans la feuille.

Le bouton Enregitrer quant à lui est désactivé à l'initialisation du userform et réactiver sur changement de la listbox si celle-ci contient plus d'un ligne( Ligne d'entête plus une commande).

Essai d'imaginer une chose identique pour le bouton Validation qui ne pourrait-être activer que si la quantité et les trois zones de texte de prix sont renseigné.

A bientôt
 
Dernière édition par un modérateur:

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonsoir le forum, salut Hasco, journée très chargée aujourd'hui,
pas eu beaucoup de temps à consacré à mon projet, merci HASCO encore une fois tu as trouvé la solution à mon problème, j'ai modifier le code comme tu me le suggérais ce matin, ma solution va sans doute te paraitre fastudieuse mais bon, elle fonctionne aussi je reposte le fichier pour avoir ton avis.
je travaille actuellement sur un autre USF, concernant le choix d'une maison en fontion d'un certain nombre de critère, quand il seras suffisament "étoffé" je le mettrais en ligne, j'aimerais avoir ton avis, et celui de toute autre personne qui voudra bien y jeté un oeil,
ton expérience en le domaine m'est d'un grand secours.
Merci encore et à bientôt j'espère.

Gilbert
 

Fichiers joints

GCFRG

XLDnaute Occasionnel
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Bonjour le forum, salut hasco, bebere,
une question en suspend, comment peut on suprimer une ligne dans ma lisbox avant de l'enregister dans le classeur, si par exemple, on se rend compte qu'on c'est trompé dans une dimention ou dans l'attribution d'une fenêtre ou d'un volet à une pièce, sans être obligée de fermer le USF et de tous reprendre depuis le début.
si quelqu'un à une solution?

merci d'avance.
"le fichier est dans mon message précédent, menuiserie extérieure 19-06-2008.zip "
gilbert
 
G

Guest

Guest
Re : Probleme Pour Copier Une Listebox Dans Une Feuille De Mon Classeur + Autres Prob

Re bonjour,

voici le fichier modifié pour suppression de ligne dans la listbox1 avec demande de confirmation.

A bientôt
 

Discussions similaires


Haut Bas