Vba

David44800

XLDnaute Nouveau
Bonjour a tous

j essaye de créer un suivi et une feuille de devis qui se remplis en automatique en vba mes connaissance son tres tres limite.

j ai commencé
bien sur rencontré plusieurs problème je ne suis pas un programmateur de VBA
j'ai mis le fichier ce que j ai deja fais j aimerais avoir de l'aide de cette communauté.

premier souci
dans ma base j ai vernis si on coche sa me m'est oui Ok
si je fais idem dans Dorure ou argent sa bug je comprend pas
j aimerais aussi qu'il remplse ma feuille base comme elle est et qui remplisse certain champs dans la feuille devis
si quelle qu'un peu m aider
 

Pièces jointes

  • 02112016.xls
    58.5 KB · Affichages: 69

David44800

XLDnaute Nouveau
Bonjour Dranred

comme t'ai dit je ne suis pas programmeur je ne comprend pas "Parce qu'elles font double emploi avec les G: P"???
j essais de faire cella en regardant a droite et gauche j ai regarder ce que tu m a dit mes c trop compliquer pour moi
ce que j ai mis en place je sais que c pas top mes je comprend en gros ce qu il y a dedans


Presque impossible avec ce genre d'organisation horizontale de retrouver une commande à partir d'un article qu'elle comporte.
moi elle me demande une liste avec le nom prenon du client la date de la commande l adresse le code postal et un lien vers un numero de devis

Ça ne me dit toujours pas pourquoi les devis de cette patronne ont une présentation aussi inhabituelle…
pour la forme je suis d accord c pas terible mes elle m'a fais cella sur un papier comment elle voulais sa presentation

Pourquoi ne s'adresse-t-elle pas directement à Excel-Downloads ?
elle cape rien en informatique

(Ne le ferait elle pas déjà d'ailleurs ? J'ai retrouvé des traces de vos trucs chez une certaine Lydie)
Lydie ???? mon amie s appel celine la je ne comprend pas

je suis venu ici pour trouver de l aide et essayer de comprendre un peu c pas mon travail je veux simplement aider une amie
merci d 'avance
 

Dranreb

XLDnaute Barbatruc
Bonjour.

Ah oui, là c'est beaucoup mieux.
Encore qu'il n'y a pas lieu d'utiliser plusieurs lignes de la feuille pour chaque produit. (sauf s'il y a quelque chose que je n'ai pas compris ? Pourquoi seulement certaines cellules sont elles fusionnées ?)

Qu'est ce qu'elle en pense ?

J'aimerais bien savoir si ces caractéristiques pouvaient être associées à l'article plutôt qu'à la commande ?

Pour l'instant j'envisage de baser les liens sur les dates et heures de création des enregistrements dans les différentes listes. C'est la seule information dont on sera toujours sûr qu'elle sera unique.

Pour l'histoire de Lydie, des bouts de codes ont été incontestablement repris de chez vous par la demanderesse de cette discussion, alors forcément je me suis posé des questions…
 
Dernière édition:

David44800

XLDnaute Nouveau
Bonjour.

Ah oui, là c'est beaucoup mieux.
Encore qu'il n'y a pas lieu d'utiliser plusieurs lignes de la feuille pour chaque produit. (sauf s'il y a quelque chose que je n'ai pas compris ? Pourquoi seulement certaines cellules sont elles fusionnées ?)

Qu'est ce qu'elle en pense ?

J'aimerais bien savoir si ces caractéristiques pouvaient être associées à l'article plutôt qu'à la commande ?

Pour l'instant j'envisage de baser les liens sur les dates et heures de création des enregistrements dans les différentes listes. C'est la seule information dont on sera toujours sûr qu'elle sera unique.

Pour l'histoire de Lydie, des bouts de codes ont été incontestablement repris de chez vous par la demanderesse de cette discussion, alors forcément je me suis posé des questions…

Re bonjour
pour les ligne c elle qui ma demandais cella car elle ma dit pour la lecture et la fabrication c plus claire pour elle

J'aimerais bien savoir si ces caractéristiques pouvaient être associées à l'article plutôt qu'à la commande ?
ben non car un produit peu avoir 1000 facon être fais donc pour la lecture c plus facile

pour les cellules fusionner c étais pas normale

je lui avais fais le premier devis dans le style que j ai refais elle avais pas aimer et la a lui montre nos conversations elle aime lol
merci a toi de m'aider

j ai pas tout compris hier ce que du me disais dans ma programmation
pour moi ce que je fais je comprend ce qu il y a dedans
pas tout mes je comprend lol

après j ai regarder combobox liees c trop complexe pour moi comme tu m'a dit j ai essayer quand on est as de la partis c dur

je veux que cella reste simple aussi pour la dépanner si il y a un bug

je vais finir ce que j ai modifier et me permettre de te remvoyer mon fichier
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Qu'est ce qui vous paraît compliqué dans l'utilisation de l'objet ComboBoxLiées ? Le module de classe est pourtant bien documenté ! Et il permet de n'avoir plus aucune programmation dans l'UserForm pour la gestion des choix.
Bien sûr qu'il en aura, peut être plusieurs même, dans votre application. Au moins un pour les devis, un autre pour les clients, un troisième, souhaitable, pour les articles. Il y aura aussi des Dictionary pour gérer les liens entre tout ça.
 

David44800

XLDnaute Nouveau
Qu'est ce qui vous paraît compliqué dans l'utilisation de l'objet ComboBoxLiées ? Le module de classe est pourtant bien documenté ! Et il permet de n'avoir plus aucune programmation dans l'UserForm pour la gestion des choix.
Bien sûr qu'il en aura, peut être plusieurs même, dans votre application. Au moins un pour les devis, un autre pour les clients, un troisième, souhaitable, pour les articles. Il y aura aussi des Dictionary pour gérer les liens entre tout ça.

bonjour
ben la programmation
je vais éditer (imprimer) pour mieux comprendre
merci je revient vers toi
 

David44800

XLDnaute Nouveau
BOnjour
Dranreb

a ta question quesqui est compliqué

ben c peu etre car il y a trop d infos d 'un coup

pour moi pour comprendre dans celui que j ai pris il y a trois ComboBox

le mieux
si tu veux bien
si tu peu me créer un user forme avec 1 combobox et 1 texBox
la je pense que se serra plus facile pour comprendre
merci d avance
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Vu coté programmation, à part le nombre d'instructions d'initialisation CL.Add ComboBoxX dans la Sub UserForm_Initialize, ça ne change rien à la programmation du reste qu'il ait 10 ComboBox ou seulement 3.
Aussi le mieux c'est d'en mettre pour toute information dont on soupçonne qu'elle pourrait faire l'objet d'une recherche, mais de préférence si elle ne risque plus de changer après la création.
 

David44800

XLDnaute Nouveau
Bonsoir.
Vu coté programmation, à part le nombre d'instructions d'initialisation CL.Add ComboBoxX dans la Sub UserForm_Initialize, ça ne change rien à la programmation du reste qu'il ait 10 ComboBox ou seulement 3.
Aussi le mieux c'est d'en mettre pour toute information dont on soupçonne qu'elle pourrait faire l'objet d'une recherche, mais de préférence si elle ne risque plus de changer après la création.


bonsoir
le problème inverse pourquoi mettre 3 ou dix combobox
en sachant que le trie restera que par le client

exemple

1er usuform
un bouton creation client
un bouton ajouter pour creation du devis
non client lier a adresse code postal et ville

pourquoi mettre plusieur conbofix ?
 

Dranreb

XLDnaute Barbatruc
Pour retrouver plus facilement l'information.
Je me ferais fort, avec juste 2 ou 3 caractères au début d'une adresse E-Mail d'un client, de retrouver toute sa commande, si toutefois il n'y en a qu'une. S'il y en a plusieurs on précise en choisissant la date, voire un article qui en faisait partie.
À l'inverse, imaginons qu'un article soit prêt. Pour qui c'était déjà ? On consulte, on retrouve les commandes avec les dates et les noms prénoms des clients. Plus il y aura de ComboBox plus ce sera souple pour y retrouver quelque chose.
Ce serait une bonne chose qu'il y ait un fichier articles, même s'il y a pas mal de variantes fixées lors de la commande. Ça permettrait de ne pas ressaisir chaque fois toute la désignation et surtout ça ramènerait un prix unitaire de base.
Ce que j'envisage: Un seul UserForm pour ajouter, modifier ou supprimer une ligne d'une commande.
3 volet, 1 pour le client, 1 pour l'article, 1 pour la ligne de commande.
Peut être un 4ième volet pour la commande elle même, je ne sais pas encore.
J'envisage aussi pour l'instant l'affichage en parallèle dans la feuille devis de l'ensemble de la commande dont une ligne est en cours de mise à jour ou de consultation. Mais si vous voulez un grand UserForm qui risquerait de trop la recouvrir, une ListBox serait peut être mieux.
Le nom du client ne me paraît pas une bonne information de liaison entre les commandes et le fichier des clients: il peut y avoir des homonymes. Un numéro de client serait mieux.
Pour information, j'ai écrit ces jours ci deux fonctions permettant de transformer une date/heure en un identifiant à 6 caractères composé de lettres et de chiffres, si on ne souhaite pas utiliser directement l'heure de création de l'élément comme identifiant de liaison.
La récupération des détails d'un élément d'après son identifiant de liaison se fera au moyen de Dictionary, pas au moyen de ComboBox parce qu'une ComboBox ne peut être gérée que par un seul objet ComboBoxLiées.
 
Dernière édition:

David44800

XLDnaute Nouveau
Pour retrouver plus facilement l'information.
Je me ferais fort, avec juste 2 ou 3 caractères au début d'une adresse E-Mail d'un client, de retrouver toute sa commande, si toutefois il n'y en a qu'une. S'il y en a plusieurs on précise en choisissant la date, voire un article qui en faisait partie.
À l'inverse, imaginons qu'un article soit prêt. Pour qui c'était déjà ? On consulte, on retrouve les commandes avec les dates et les noms prénoms des clients. Plus il y aura de ComboBox plus ce sera souple pour y retrouver quelque chose.
Ce serait une bonne chose qu'il y ait un fichier articles, même s'il y a pas mal de variantes fixées lors de la commande. Ça permettrait de ne pas ressaisir chaque fois toute la désignation et surtout ça ramènerait un prix unitaire de base.
Ce que j'envisage: Un seul UserForm pour ajouter, modifier ou supprimer une ligne d'une commande.
3 volet, 1 pour le client, 1 pour l'article, 1 pour la ligne de commande.
Peut être un 4ième volet pour la commande elle même, je ne sais pas encore.
J'envisage aussi pour l'instant l'affichage en parallèle dans la feuille devis de l'ensemble de la commande dont une ligne est en cours de mise à jour ou de consultation. Mais si vous voulez un grand UserForm qui risquerait de trop la recouvrir, une ListBox serait peut être mieux.
Le nom du client ne me paraît pas une bonne information de liaison entre les commandes et le fichier des clients: il peut y avoir des homonymes. Un numéro de client serait mieux.
Pour information, j'ai écrit ces jours ci deux fonctions permettant de transformer une date/heure en un identifiant à 6 caractères composé de lettres et de chiffres, si on ne souhaite pas utiliser directement l'heure de création de l'élément comme identifiant de liaison.
La récupération des détails d'un élément d'après son identifiant de liaison se fera au moyen de Dictionary, pas au moyen de ComboBox parce qu'une ComboBox ne peut être gérée que par un seul objet ComboBoxLiées.


bonjour

j ai peur que se soit un peu compliquer pour elle et pour moi si cella bug.
pour la liste d'article c vraiment des produit personnalise il ne peux n y avoir aucun produit similaire.
après j’étais partis sur un truc très basique
pour que cela reste facile
 

Dranreb

XLDnaute Barbatruc
Soit, pas de fichier articles.
Avec quand même une conservation des différentes commandes, et la possibilité de les retrouver, et de reconstituer la présentation sous forme de devis ?
Remarque: Un objet ComboBoxLiées ne bogue pas.
Quand on tape ou choisis suffisamment d'information pour aboutir à une ligne unique de la liste clients il complète toutes les ComboBox non renseignées selon ce qu'il y a trouvé et renvoie ce numéro de ligne à l'UserForm, dans une procédure évènement Résultat, Bingo ou BingoUn, c'est tout. Quand on tape quelque chose qui n'existe pas il le dit aussi, dans une procédure évènement Change ou Défait.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Crainte complètement infondée.
C'est ce que vous feriez d'autre de votre cru, programmé trop sommairement, qui serait considérablement plus difficile à mettre au point, plus lourd à utiliser et à maintenir.
Sans cette programmation de service, ça vous obligerait à mettre dans l'UserForm beaucoup plus de programmation applicative tant à l'initialisation que dans une ou plusieurs Sub ComboBox_Change que vous seriez obligé d'écrire vous même, tandis que la programmation de l'utilisation de son résultat, une fois que vous auriez réussi à obtenir le numéro dans la liste de la ligne du client désiré, si écrite correctement, serait exactement la même.
On peut faire l'essai si vous en doutez. Mettez juste une seule ComboBox pour le nom (ce qui ne sera pas très pratique à l'utilisation), ensuite moi j'y remplacerai simplement la partie choix du client par ce qu'il faut pour pouvoir le retrouver aussi bien par le prénom que par le nom. Le jour où elle vous dira tient ça serait bien de pouvoir cerner aussi le client à partir de son adresse E-Mail, ce sera juste une seule ligne à ajouter dans l'UserForm_Initialize pour une ComboBox supplémentaire pour l'E-Mail et absolument rien d'autre de plus ailleurs. (même plutôt une instruction à supprimer: celle qui écrivait l'E-Mail depuis une TextBox lors de la création ou d'une modification du client)

Edit: Vous pourriez avoir intérêt à mettre la base clients sous forme de tableau.
Ça crée un objet ListObject bien pratique.
Ça permettrait notamment, pour l'essai évoqué ci dessus, d'écrire :
CBxNom.List = FeuiCli.ListObjects(1).ListColumns("Nom").DataBodyRange.Value
et ailleurs :
TValLigneClient = FeuiCli.ListObjects(1).ListRows(CBxNoms.ListIndex + 1).Range.Value
FeuiCli étant le nom de l'objet WorkSheet représentant la feuille, et qu'on peut aussi connaître par son CodeName, lequel en est une propriété String.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 945
Membres
103 989
dernier inscrit
jralonso