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.
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.
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.
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
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
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 ??
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....
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
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.
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.
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.
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.