| ||||||||
Nouvel astucien | Bonjour, Ci-joint les 2 fichiers sur lequels je travail pour le moment (les autres sont en fait le model devis-facture en plusieurs pages)
Je bloque sur la base de données, je ne sais comment extraire les données et mettre la numerotation automatique.
| |||||||
Publicité | ||||||||
| ||||||||
![]() ![]() | Salut, Si j'ai bien compris (mais n'en suis pas vraiment sûr), on sert la facture ou devis. Lorsqu'on sélectionne facture ou devis, il faut donc qu'une procédure aille chercher dans BDD la fin de liste en colonne B, remonte pour trouver le dernier devis ou la dernière facture selon le cas, prélève son numéro en colonne A, l'incrémente et le porte en F4. La procédure de recherche ne pose pas de pb particulier (penser à lui faire ouvrir la BDD au cas où elle ne l'est pas), et son lancement peut être lié à la sélection devis ou facture (évènement Change de la feuille affectant la cellule F1), et également à l'ouverture du classeur (de façon que la sélection en cours soit prise en compte si elle n'a pas besoin d'être modifiée). Ensuite, une fois la facture ou devis rempli, il faut qu'au clic sur le bouton Enregistre une procédure prélève les données à inscrire dans la BDD, sans oublier le numéro (on peut constituer un tableau de ces données dans l'ordre voulu), et procède à l'inscription sur la BDD (la ligne d'inscription ayant été déterminée par la procédure de recherche précédente, on peut prévoir de la conserver pour la réutiliser ou bien la rechercher à nouveau, ou bien une fonction utilisée par ces deux procédures pourrait la renvoyer). Si j'ai bien compris, voilà comment je procèderai. Bonne fin de nuit. | |||||||
![]() ![]() |
| |||||||
![]() ![]() | ||||||||
Petit astucien | Bonjour w36xb2w, Ferrand, Pour w36xb2w, il vaut mieux se taire plutôt que de dire des bétises. Le forum de PCASTUCES est très bon, notamment avec Ferrand, Galopin, Gilbert etc... Excel-downloads est très bon mais ce n'est pas le seul. Yaloo
| |||||||
Petit astucien | ||||||||
Nouvel astucien | ferrand a écrit : Bonsoir ferrand, et merci de ta reponse En effet bien que je ne sois pas expert, je crois que ta solution est celle que je cherche. Pourrais tu essyaer de me fournir 1 exemple ou bien un article qui explique depuis le debut comment proceder. Je t'en serai gré, merci par avance.
Cordialement | |||||||
Nouvel astucien | ferrand a écrit : je m'excuse j'ai voulu modifier mon texte et je ne sais pas comment je me suis debrouiller mais j'ai fait une betise Toutes mes excuses
| |||||||
Nouvel astucien | bruce68 a écrit : Bonsoir Bruce68, Je suis sous le choc de ton fichier, je suis impressionné Quelques questions : - Puis je l'adapter pour mon systeme de fichier a moi (car j'ai 10 models qui changent juste sur le nombre de pages) De plus dans le BTP nous avons 2 TVA donc c'est galere a gerer, si tu as regarde mon fichier il est exactement tel que nous en avons besoin En revanche sans ton travail derrier, qu'en penses tu ???
| |||||||
![]() ![]() | Salut, Si tu décides de t'inspirer du fichier de bruce68, il te faut repenser ton organisation : utilisation de formulaires de saisie, bases matériaux et clients, enregistrement séparé des devis et factures... Cela présente des avantages indéniables, mais à toi de voir comment tu peux l'adapter. Si tu choisis d'en rester à tes fichiers actuels, je peux concrétiser plus précisément les conseils que j'avais sommairement formulés. 1) Numérotation : ajustée automatiquement, à l'ouverture du classeur et au changement devis/facture dans la cellule F1. Pour ce faire, une procédure Numéroter lancée par les évènements ouverture du classeur et modification de la cellule F1 : Dans le module ThisWorkbook : Private Sub Workbook_Open() Dans le module de Feuil1 : Private Sub Worksheet_Change(ByVal Target As Range) Dans un module standard (Module1) : Sub Numéroter() Cette procédure utilise une fonction (NumListe) pour rechercher le numéro en lui fournissant comme argument le contenu de F1 (soit : DEVIS ou FACTURE) et affecte ce numéro à F4. Accessoirement elle repositionne le curseur en I4 (mais tu peux bien sûr lui faire faire autre chose). Function NumListe(Optional df As String) As Long NB: surlignage jaune = modifier pour mettre nom du fichier de base de données (que j'ai appelé BDD) éventuellement précédé du chemin. En ce qui concerne le fichier de BDD, éviter les lignes vides (susceptibles de provoquer des erreurs dans une base de données), donc commencer à la ligne 2 (et non 3). Inutile d'initialiser un numéro 1, la fonction renverra 1 si elle ne trouve pas de DEVIS ou FACTURE (selon le cas) inscrite. Cette fonction sera également utilisée par la procédure d'inscription dans la base de données : appelée sans argument elle renverra le numéro de la ligne à servir. (à suivre) | |||||||
![]() ![]() | 2) Inscription dans la base de donnée : opéré par le bouton d'enregistrement (qui lancera l'inscription et l'enregistrement) Dans le module de Feuil1 : Private Sub CommandButton1_Click() Ce n'est que ta procédure existante allégée : elle lance les procédures d'inscription et enregistrement qu'il est plus rationnel d'avoir dans Module1. Dans Module1 : Sub InscrireBDD() NB: surlignage jaune à remplacer par nom du fichier de base de données. La procédure récupère les informations à inscrire dans un tableau (dliste) et met à jour la base. 3) Enregistrement : Dans Module1 : Sub Enregistrer() NB: je n'ai pas modifié ta procédure (n'ayant pas les informations nécessaires). Juste essayé de la raccourcir et expurger des éléments inutilisés. Modifié 'ChDir' qui est une instruction VBA et ne doit pas être utilisé comme nom de variable. Je n'ai testé (en gros) que la numérotation. Me signaler si anomalies...
| |||||||
![]() ![]() | Je te renvoie ton fichier, pour une meilleure lisibilité des macros : http://cjoint.com/?BKzfj7cH7lC Si tu as plusieurs fichiers de saisie des devis et factures, tu pourras y introduire les macros de ce dernier (en modifiant s'il y a lieu les adresses de cellules où prélever les infos). Si tu ne t'orientes pas vers une adaptation du fichier de bruce68, il me semble que tu devrais au moins t'en inspirer pour compléter ton système par une base de données matériaux ou prestations, et une base clients, ce qui faciliterait la réalisation des devis et factures.
(Entre parenthèses, revenant un peu sur le forum après une longue absence, je note que c'est devenu galère d'insérer du code dans les messages : si quelqu'un sait comment on peut le faire facilement, je suis preneur...) Bonne journée à tous. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|