Listview etc. pour les maîtres Yoda

mygaspider

XLDnaute Nouveau
Bonjour,

Je suis novice dans le vba excel. Je m'aide beaucoup des profs dans le domaine.

Je vous explique mon projet. J'essaye d'améliorer les conditions de travail de mes collègues de boulot.

Ma collègue remplit une fiche usager sheet (DEMARRAGE)> CommandButton.1>userform 1
Ces éléments sont enregistrés dans un tableau de suivi sheet (ASSAI)
Premier problème : userform 1 ne se ferme pas et n'ouvre pas le tableur de la feuille ASSAI.

Deuxième problème : je n'arrive pas à créer un textbox dans l'userform 1 créant un n° de devis automatique fonction du dernier numéro de devis dans le tableur ASSAI.

La page sheet (DEMARRAGE) contient les CommandButton afin de créer un devis puis un bon de commande.

3ème problème : Je souhaiterais réaliser une listview comprenant les données de la feuille BPU. Ce tableau sera mis à jour par ma collègue tous les 6 mois par un copier/coller. Elle sélectionnerait une 10aine de ligne qui serait renvoyée vers la feuille DEVIS. La feuille devis comprendrait un combobox permettant de choisir et de copier sur le devis le NOM Prénom adresse et numéro de devis.

Je n'y arrive pas help...
 

Pièces jointes

  • demande branchement 2012 essai internet.zip
    196.5 KB · Affichages: 35

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

Bonjour,
bon, a vrai dire je remarque qu'il y a un peu de désordre par ci par là.
Pour commencer l'utilisation des modules de classes n'est apparemment pas nécessaire dans ton cas,
2° le commandbutton1, n'ouvre pas pas la bonne forme tout simplement car tu fait appel a la deuxième voir code:
Code:
'feuile 14 "demarrage"
Private Sub CommandButton1_Click()
 Call UserForm2.Show
End Sub
tu as également des problèmes de taille userform qui ne sont pas adapter à tout les écrans (et oui j'ai un 17")
je veux bien passé un peu de temps sur le projet mais il faudra être patient et y aller petit à petit pour obtenir un projet plus clair.
je te laisse la dessus et je reviendrai certainement te proposer une petite correction de code à la suite de ta réponse bien évidement.

Au plaisir.
 

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Bonjour,

tu as également des problèmes de taille userform qui ne sont pas adapter à tout les écrans (et oui j'ai un 17")
je veux bien passé un peu de temps sur le projet mais il faudra être patient et y aller petit à petit pour obtenir un projet plus clair.
je te laisse la dessus et je reviendrai certainement te proposer une petite correction de code à la suite de ta réponse bien évidement.

Au plaisir.

J'ai essayé d'être plus explicite sur mes questions. A ce titre, je vous joins la nouvelle version du fichier comprenant un scrollbar car je n'arrive pas à renvoyer les éléments de l'userform n°1 relié au bouton recherche sur 2 colonnes et permettre de réduire sa taille. J'ai aussi supprimé le moduleclass

Cordialement

Laurent
 

Pièces jointes

  • Copie de demande branchement 2012 essai internet 2.zip
    197.6 KB · Affichages: 48

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

J'ai essayé d'être plus explicite sur mes questions.
Bonsoir,
Trés bien mais le commandbutton 1 ouvre bien l'userform que tu souhaites je suis entièrement d'accord mais je persiste à dire qu'il ouvre le N°2 et pas le 1.
Pas bien grave tu t'en apercevras plus tard.
voilà le code a mettre pour ton bouton annulé:
Code:
Private Sub CommandButton2_Click()
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then c.Text = ""
If TypeName(c) = "ComboBox" Then c.Value = ""
Next
choix_OK = False
'Unload Me
End Sub
Pour le problème N°2
Code:
Private Sub CommandButton1_Click()
Sheets("ASSAI").Activate
Range("C9").Value = UserForm2.ComboBox9.Value
Range("D9").Value = UserForm2.TextBox1.Value
Range("e9").Value = UserForm2.TextBox2.Value
Range("f9").Value = UserForm2.numero & " " & UserForm2.ComboBox7 & "" & UserForm2.ComboBox8.Value
Range("g9").Value = UserForm2.TextBox4 & " " & UserForm2.TextBox5.Value
Range("H9").Value = UserForm2.TextBox6 & " " & UserForm2.TextBox8.Value
Me.Hide
End Sub

Tu remarqueras que j'ai volontairement laissé Userform2 dans le code (pour te montrer qu'il s'agit bien du userform2 et non du userform1 bien sur ,tu peux enlever tout les "userform2." de ton code pour autant que tu te trouve dans celui ci et non dans un module)

Pour la question N° 3 comment et quel N° de devis doit on avoir es ce une incrémentation du numéro précédent + 1 ou autre chose ??

A+
 
Dernière édition:

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Pour la question N° 3 comment et quel N° de devis doit on avoir es ce une incrémentation du numéro précédent + 1 ou autre chose ??

A+

Vous aviez raison pour les userforms... Respect !!!

Pour la question N°3 : on serait sur une incrémentation à partir du numéro précédent n vers n+1 dans le cas d'une validation de la fiche usager
 

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

Bonjour,
voici ce que je te propose pour le moment:
A toi de voir si cela te convient:

A+
 

Pièces jointes

  • demande branchement 2012 essai internet_fhoest.zip
    196.2 KB · Affichages: 23
  • demande branchement 2012 essai internet_fhoest.zip
    196.2 KB · Affichages: 22
  • demande branchement 2012 essai internet_fhoest.zip
    196.2 KB · Affichages: 22

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Bonjour,
voici ce que je te propose pour le moment:
A toi de voir si cela te convient:

A+

Merci de ton aide...j'ai rajouté à ta version un textbox avec la date d'aujoudhui.

Après validation la date s'inscrira dans le tableur. De même pour le N° de devis qui a été crée.

J'ai essayé en bricolant d'élaborer une incrémentation par rapport au numéro précédent. J'essayerais de le rajouter à ta version demain.

Sur un autre sujet...j'ai essayé adobe acrobat Pro 9 car je devais réaliser un protocole de sécurité. C'est vraiment bien et simple d'utilisation. D'un fichier word tu passes à un pdf avec champ en 3s. C'est dommage que la licence soit aussi chère....

Bonne soirée

Laurent
 

Pièces jointes

  • demande branchement 2012 VERSION 11092012.zip
    184.4 KB · Affichages: 31

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Bonjour, Fhoest

J'ai essayé de faire la boucle mais cela déconne... il boucle indéfiniment

' Selectionne la cellule 3 dans la colonne N° DE DEVIS

Range("A3").Select

' Boucle tant que la cellule n'est pas vide
Do While Not (IsEmpty(ActiveCell))
' Inscrit une formule dans la cellule ayant pour référence
' la ligne active et la colonne A (colonne a)
Cells(ActiveCell.Row, 1).value = TextBox9.value 'je voudrais à cet endroit qu'il recopie non pas le textbox9 mais l'ensemble des données de l'userform sur la ligne n° devis, nom, prenom adresse etc par ordre
'Je pense que je dois supprimer la 2ème partie
' Passe à la ligne suivante
Selection.Offset(1, 0).Select
Loop
 

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

Bonjour,
il n'est pas intéressant d'utiliser des sélections cela ralenti énormément le code.

je vais te donner un exemple bientôt avec la listview.
mais j'ai besoins d'un complément d'information:
Tu dis dans ta demande :
Lorsque j'appuye sur créer un devis, cela me renvoie vers un Userform comprenant une listview comprenant l'ensemble des données du BPU et une liste déroulante me permettant soit de retrouver le n° de devis et les info qui y st liées soit par le nom de l'usager. Toutes ces info st validés par un bouton vers un devis type.

Ce que je ne comprend pas c'est que la feuille BPU ne contient aucune information ou relation avec le N° de devis et nom de l'usager.
ne faudrait-il pas le remplir dans la base de donnée avant pour pouvoir y trouver une relation ?

voici un exemple sans select
Code:
dim c as range
dim drligne as long

drligne=sheets("BPU").range("b65000").end(xlup).row
for each c in sheets("BPU").range("b2:b"&drligne)
if c<>"" then msgbox c
next

Voila un exemple de boucle sans selection
si tu veux remplir les lignes pour tous les objets il faut boucler sur les objets utiliser un pointeur de lignes et un offset.
si tu n'y arrive pas renvoi le fichier avec des explications,je t'aiderai.

A+
 
Dernière édition:

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Désolé, je n'ai pu te répondre avant...je me tapé une rage de dent...J'espère que pour toi le weekend a été agréable.

Concernant tes questions :


Bonjour,
il n'est pas intéressant d'utiliser des sélections cela ralenti énormément le code.

je vais te donner un exemple bientôt avec la listview.
mais j'ai besoins d'un complément d'information:
Tu dis dans ta demande :
Lorsque j'appuye sur créer un devis, cela me renvoie vers un Userform comprenant une listview comprenant l'ensemble des données du BPU et une liste déroulante me permettant soit de retrouver le n° de devis et les info qui y st liées soit par le nom de l'usager. Toutes ces info st validés par un bouton vers un devis type.

Ce que je ne comprend pas c'est que la feuille BPU ne contient aucune information ou relation avec le N° de devis et nom de l'usager.
ne faudrait-il pas le remplir dans la base de donnée avant pour pouvoir y trouver une relation ?

La création du BPU est indépendante de l'userform 1 et de la création d'une fiche usager. Celle-ci se fera surement quelques semaines après la création de la fiche. A ce titre, j'aimerais créer un CommandButton sur la page démarrage qui me renvoie vers une listview comprenant : Désignation n° Prix Unité "PU HT
SLD TP". Je choisis les lignes de prix qui n'ont pas de relation directe pour le moment avec un usager.

Par contre, dès que ces données sont renvoyées vers le devis. Je serais nécessaire d'indiquer les coordonnées de l'usager Nom Prénom Adresse en haut à droite du devis et le n° de devis au milieu à gauche ainsi que les lignes de prix en dessous.



voici un exemple sans select
Code:
dim c as range
dim drligne as long

drligne=sheets("BPU").range("b65000").end(xlup).row
for each c in sheets("BPU").range("b2:b"&drligne)
if c<>"" then msgbox c
next

Voila un exemple de boucle sans selection
si tu veux remplir les lignes pour tous les objets il faut boucler sur les objets utiliser un pointeur de lignes et un offset.
si tu n'y arrive pas renvoi le fichier avec des explications,je t'aiderai.

A+
 

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

Bonjour,
Donc voici ton fichier en retour avec la listview et la form que j'avais déjà préparé:
A+ et bon courage pour la santé.:D
 

Pièces jointes

  • demande branchement 2012 essai internet_fhoest.zip
    206.1 KB · Affichages: 49
  • demande branchement 2012 essai internet_fhoest.zip
    206.1 KB · Affichages: 52
  • demande branchement 2012 essai internet_fhoest.zip
    206.1 KB · Affichages: 49

fhoest

XLDnaute Accro
Re : Listview etc. pour les maîtres Yoda

Bonjour, oui je pense que tu devrais aller dans le projets vba et coché la référence manquante si il y en a une,
si pas il faut avoir mscomctl.ocx sur ton pc.
Regarde et tiens moi informer.
A bientôt.
 

mygaspider

XLDnaute Nouveau
Re : Listview etc. pour les maîtres Yoda

Bonjour, oui je pense que tu devrais aller dans le projets vba et coché la référence manquante si il y en a une,
si pas il faut avoir mscomctl.ocx sur ton pc.
Regarde et tiens moi informer.
A bientôt.

J'ai tapé sur invite : regsvr32 mscomctl.ocx
La version est de 2005 mais elle existe.


Par contre, je ne comprends pas où aller "aller dans le projets vba et coché la référence manquante" !!! il faut aller dans quel onglet peux tu détailler le lien.

J'ai essayé avec excel 2010 sur l'ordi de mon voisin et cela marque la même chose.

J'ai vu sur des forums que des gens sont dans le même cas que moi. J'ai déjà ouvert des exemples de listview avec excel 2003 sans problème...

J'attends ta réponse avant d'essayer d'installer une nouvelle version de mscomctl.ocx.

Merci d'avance pour ta paissance

Laurent
 

Discussions similaires

Réponses
8
Affichages
462

Statistiques des forums

Discussions
312 231
Messages
2 086 447
Membres
103 213
dernier inscrit
Poupoule