(resolu)envoyer lignes de listbox dans classeurs sur C:merci lone-wolf et si...

grisan29

XLDnaute Accro
bonjour a tous et toutes
je cherche a faire un peu comme un carnet de commandes mais avec un classeur exel, avec un userform et une listbox ,mais c'est la que ça vas plus car je ne sais comment envoyer les lignes sélectionnées dans le classeur qui est déterminer par le choix du combobox , de plus ces classeurs au nom de fournisseurs se trouvent dans un dossier sur C:\fournisseurs
comme mon explication n'est peut être pas clair, je vous joints des exempes
le dossier"fournisseurs" est mettre sous C: et le test commande listbox est le classeur test

j'ai mis un code qui envoie correctement les lignes sur la feuille
il vaux mieux que je donne plus d'explication
donc quand l'userform s'initialise la listbox se charge du contenu de la feuille et comme un devis ne concerne pas qu'un seul fournisseurs, je sélectionne les lignes correspond a tel fournisseurs
et je voudrais pouvoir désélectionnée les lignes après dès l'appui sur le bouton "transfert" qui lui envoie les lignes sélectionnées dans la feuille choisi dans la combobox, afin de continuer les commandes

merci par avance a celui que ça tente
 

Pièces jointes

  • test fournisseurs.zip
    98.5 KB · Affichages: 48
Dernière édition:

grisan29

XLDnaute Accro
bonjour Jecherche, Lone-wolf, si.... et le forum
la nuit porte conseil, je n'ai pas encore ouvert vos classeurs mais je suis sur qu'il fonctionne chez vous
seulement la configuration réelle est toute autre et je n'y ai pas réfléchi même en créant le post
avec mes plus plates excuses
j'ai dit plusieurs fois qu'il n'y avais que la colonne d'articles d'afficher dans la listbox et enfin j'ai compris pourquoi
lors de l'établissement du devis mes lignes d'article se mettent bien en colonne D:M
la seule chose est que D:H est fusionné pour les articles et aussi "wrap.text"
I = le prix unitaire
J = Unité
K = quantité
L= Pu*quantité

donc je suis sur et certain que le souci viens du fusionnage
et comme l'as bien dit lone-wolf le rowsource pose problème même écrit comme ceci
Code:
.RowSource = "D20:M255"
les colonnes de la listbox s'affichent bien
ca y est il faut juste augmenter le nombre de colonne et mettre a 0 les 4 premières enfin de 2 a 5
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Pascal

Désolé de ne pas avoir dit tout de suite que le RowSource étai mal écrit; en faite il faut écrire comme ceci: = "Feuil1!D20:M255". De plus, il faudrait ajouter deux boutons; 1 pour éffacer les champs en cas d'erreur et l'autre en cas de modification ou d'ajout d'un produit.
 
Dernière édition:

Si...

XLDnaute Barbatruc
re

Dernière* proposition avec un test de plus pour éviter d'accumuler les sélections dans le même fichier.

Le RowSource ne pose pas de problème quand on définit bien les caractéristiques, donc les propriétés, du contrôle ListBox (nombre de colonnes et leur largeur, certaines à 0 pour les masquer).

Ici, j’ai plutôt choisi de créer le Tableau des noms des Fichiers à atteindre pour une mise à jour sans toucher à la macro.

Nota :
- il est toujours très important de décrire, dès le départ, la situation
- *en général, pour les compléments qui ne cessent de s'accumuler, je ne les traite pas.
- j'ai supprimé les fichiers que j'avais proposés
 

Pièces jointes

  • ListboxMultiselect.xlsm
    25.3 KB · Affichages: 39

grisan29

XLDnaute Accro
bonjour Lone-wolf, si.....
si.... merci pour ce fichier qui fonctionne bien mais j'ai essayer mais pas réussi a avoir le visu des 3 colonnes qui sont a coté de celle des articles
peut importe ce que je fais je n'ai qu'une colonne, même modifiant la propriété de la listbox en dure
voici un aperçu et je l'ai mis le bon classeur pour voir les 3 colonnes voisines

si j'ai vu que tu as créer un autre onglet pour la liste des fournisseurs
 

Pièces jointes

  • visu1colseule.jpg
    visu1colseule.jpg
    182.6 KB · Affichages: 45

Lone-wolf

XLDnaute Barbatruc
Re Pascal, Si..., le Forum.

Voici le fichier avec boutons Ajouter + Modifier+Supprimer. Fait le test sur le Classeur "Bravo". Double clique sur la feuille source pour afficher le formulaire. Utilisation:

Sélectionne le fichier avec la combo Fichiers.
Pour ajouter 1 produit, selectionne celui-ci dans la ListBox, puis clique sur Ajouter.
Pour modifier : sélectionne le produit avec la combo Designation, puis clique sur Modifier.
Pour supprimer : sélectionne le produit avec la combo Designation, puis clique sur Supprimer.
 

Pièces jointes

  • Transfert Données.zip
    66.2 KB · Affichages: 34
Dernière édition:

grisan29

XLDnaute Accro
bonjour Lone-wolf
je ne comprends pas bien l'utilisation de ton fichier,
a chaque essai il se ferme donc je sais pas ce qui c'est fait
j'ai mis en commentaire tous les ' ActiveWorkbook.Close True
je clic sur la combo "fichiers "et voila le classeur qui s'ouvre ?
je clic sur désignation et j'ajoute dans la feuille= pas intéressant pour ce que je veux
je clic sur modifier = bug vers .Cells(rw, 2) = ComboBox2
je clic sur transfert après sélection de lignes et J'attends patiemment la fin du transfert qui ne viens pas sauf si on ouvre le classeur adéquate dans le dossiers "fichiers
ce classeur est a réorganiser pour que je l'adapte

dans la feuille d'ou je veux transférer des lignes dans des classeurs sur c: ,
je n'ai pas besoin de toucher au ligne de la feuille juste les envoyer dans les classeurs
surtout pas d'intervention sur la feuille source
 

Si...

XLDnaute Barbatruc
re

La copie pure et simple du code ne suffit pas*.

Je vois souvent une accumulation de lignes de code pour initialiser les contrôles avec des propriétés invariables. Cela peut compliquer l'écriture, l’analyse de longues procédures et même provoquer des erreurs !

Quand je sais ce que je, je préfère passer par la fenêtre de leurs propriétés.

*Pour le visu, tu dois avoir :
upload_2016-11-13_15-33-1.png
 

Lone-wolf

XLDnaute Barbatruc
Re Pascal

Tu n'as pa lu correctement ce que j'ai écrit. Utilise une ligne de la ListBox pour AJOUTER - ComboBox pour MODIFIER. Je remet le dossier suite à certaines modifications. Et Pourquoi inutile?? Tu en ai vraiment sur ??

Alors maintenant ouvre ton fichier, moi client, je te téléphone après coup, je ne veux plus cet article mais celui-ci oubien, je ne veux plus 2 articles mais 5. Dis-mois comment tu vas procéder pour modifier le bon.
 

Pièces jointes

  • Transfert Données.zip
    64.3 KB · Affichages: 31

grisan29

XLDnaute Accro
bonsoir Lone-wolf
merci je regarde ton fichier après, tu dits
Et Pourquoi inutile?? Tu en ai vraiment sur ??
oui j'en sur car le devis est déja fait avec le classeur de facturation et si je veux le modifier ou ajouter/supprimer des lignes il le fait déjà,
ce qu'il me faut, grâce a la listbox qui sera intégré a mon classeur de facturation plus tard,
donc via cette listbox quand je sélectionne des lignes et que je choisi mon fournisseur dans la combobox, que je puisse envoyer les lignes sélectionnées dans le classeur du fournisseur , afin de pouvoir le lui envoyer par mail après,
mais quand je fais un devis je peux avoir plusieurs fournisseurs

un fournisseur de SDB ne fourni pas de placos, de portes ...

le fournisseur de placos lui ne fourni pas de SDB ....
si un fournisseurs vendait de tout ce serai plus facile
etc...
c'est pour cela que j'ai besoin de choisir le où les fournisseurs qui doivent recevoir les lignes respectivement et chacun leur tour
je n'ai nullement besoin de modifier/ajouter/supprimer sur le devis
ce devis ne dois pas être modifier avec ce que j'essaie de faire
s'il doit l'être ce sera le classeur de facturation qui le fera
 

Lone-wolf

XLDnaute Barbatruc
Re

Et bien, vu de cette façon, c'est claire. Comme tu n'as pas expliqué ceci dès le début, j'ai pensé que ce serait utile. Dans le cas où tu devrait envoyer le bon à plusieurs fournisseurs, mieux vaux integrer une nouvelle listbox pour un choix multiple; et opter pour une solution ADO pour envoyer les données sur les différents classeurs. Plus rapide et moins contraignante que workbook.open.
 

grisan29

XLDnaute Accro
bonsoir lone-wolf
et pourtant le titre du post le disait bien a mon avis et précisé classeurs au pluriel
la solution ADO est une grande inconnue pour moi
ce qui est trompeur sur de nombreux forums c'est le nombre d'étoile qui n'est pas conforme a la connaissance de la personne mais au nombre de ses réponses
situ veux enjoliver l'ouverture d'un classeur, voir l'userform tu peux mettre ceci et le classeur vas parler
Code:
Private Sub Workbook_Open()
Application.Speech.Speak ">bonjour à vous!", True
End Sub
 
Dernière édition:

Discussions similaires

Réponses
25
Affichages
603
Réponses
18
Affichages
505

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib