Macro de recherche dans BD puis recupération valeurs

Bonjour à tous,

une fois de plus, je cherche une solution pour faire avancer un gros programme (gros pour moi !).

le but de cette macro :

au clic sur un bouton, ouvre une input-box pour demander un numéro de facture qui sera le dernier à être récupéré sur ce bordereau et qui apparaitra en B5.

ensuite, la macro recherche dans la colonne A (toujours la même) de la BD tous les n° de facture entre le premier numéro donné en G5 (+1 pour éviter le doublon) et celui donné dans l’input-box et copie dans la feuille recap le n° facture, la date de la facture, le nom, et les 4 montants qui suivent sur la même ligne.

selon le nombre de factures à récupérer, le nombre de lignes peut varier de 1 à une cinquantaine.

la macro indique en G5 le dernier numéro récupéré pour le prochain relevé.

et bien sur, en fin de page, les montants totaux (mais ça, c'est facile à faire).

je joins un fichier simplifié pour exemple

merci d'avance pour votre aide, j'ai déjà eu beaucoup d'aide sur ce forum, notamment de E1000lio qui je pense est submergé de travail en ce moment mais que je remercie beaucoup pour toute son aide.

Bonjour

Pourquoi passer par un inputbox ?

Une proposition plus simple. A tester.

Te convient-elle ?

Bye !

merci pour la réponse rapide

j'ai téléchargé et testé, mais j'ai un souci : alors que je rentre 30 comme numéro maxi, ça me donne jusqu'à 35.

par contre, le 35 (numéro le plus élevé de la BD) se met bien en G5 (l'erreur est juste comme on dit chez moi) et le reste semble répondre à mes besoins.

j'ai indiqué une inputbox car le bouton de lancement de cette opération se fait à partir d'une page d'accueil, l'opérateur n'ayant pas accès aux pages en question car il n'est pas souhaitable qu'il manipule des données sensibles, étant donné son niveau informatique.

mais la macro fait appel à de nombreuses nouveautés pour moi, que je vais tenter de déchiffrer, car le but est de comprendre tout ce que j'insère dans mon programme (de gestion d'un petit camping).

à bientot

PS : je vais essayer de voir par moi-même pourquoi ce bug

Je ne voudrais pas être envahissant mais à la lecture de ton dernier message, je crains ne l’on ne se soit pas très bien compris.

J’avais pour ma part compris que tu voulais mettre à jour le recap en complétant les données manquantes qu’il fallait aller chercher sur la BD

La macro cherche donc le numéro le plus élevé sur le récap et complète la liste avec les données qui, dans BD ont un numéro plus grand. Et le numéro le plus élevé dans BD devient le dernier numéro utilisé.

Pas besoin de saisir quoi que ce soit.

Mais j’ai un doute : est-ce bien ce que tu veux faire ?

Pour ce qui est de déclencher la macro à partir d’une autre feuille, voici une nouvelle proposition.

Bye !

effectivement, je ne me suis pas bien expliqué.

Je suis depuis plusieurs semaines sur ce programme et j'ai tout en tête, mais ce n'est pas évident pour un extérieur.

Voici donc exactement ce que je souhaite :

la BD recense toutes les factures faites depuis le début de la saison.

elle ne sera vidée que l'an prochain. Elle va donc comporter plusieurs centaines de lignes en fin de saison.

Par contre, la gestionnaire doit rendre à la compta un état en principe hebdomadaire (dont la fréquence n'est pas fixe, mais en fonction du nombre de factures).

Elle va donc imprimer régulièrement un état (la récap) qu'elle va remplir automatiquement par un bouton (situé sur la page d'accueil) avec les factures qui ont été faites depuis le dernier état (d’où G5+1 qui donne le début de la liste pour éviter de compter 2 fois la même facture) jusqu'à un numéro de facture qu'elle rentre manuellement (dans l’input box) et qu'on appellera dernière facture du bordereau.

Exemple :

le dernier état comprenait les factures jusqu'au numéro 22.

Le nouvel état doit partir automatiquement de la facture 23 jusqu’à par exemple la facture 36 si c'est la dernière faite avant de lancer la récap.

Cet état est envoyé à la compta avec les règlements effectués.

Je n'ai pas prévu de l'archiver informatiquement mais pourquoi pas ?

IL est donc nécessaire de vider la récap avant toute nouvelle utilisation (sauf G5 bien sur), mais ça ne devrait pas me poser de problème.

Pour info, le numéro des factures est automatique, donc suivi.

voila, avec ces explications beaucoup plus précises, le besoin.

désolé de ne pas avoir été plus clair la première fois, j'ai remarqué que c'était souvent le cas sur ce forum (et dans les autres aussi), il est toujours difficile d'expliquer exactement les choses.

En tout cas, merci de t’intéresser à mon programme.

Si tu veux, quand il sera fini, je te le passerai (les codes sont remplis d'explications que j'ai mises à chaque fois que ça me paraissait nécessaire pour la compréhension par un tiers.

De toute manière, j'ai, prévu de le mettre sur le forum quand il sera terminé en indiquant résolu.

à bientôt.

Et, si je puis me permettre, n'as tu pas pensé à recourir aux dates plutôt qu'à ces numéros de début ou de fin qu'il faut saisir et sont donc une source d'erreur potentielle ?

Ma nouvelle proposition :

Bye !

ça semble tellement facile quand on connait !

ta proposition est intéressante car elle répond au problème du stockage des factures sur la saison.

avant de l'intégrer dans mon programme, je dois demander à la gestionnaire et à la compta si le découpage par semaine pose problème ou pas.

C'est vrai que ça supprime le doute sur les numéros de factures lors de la saisie.

Mais ça oblige à faire un bordereau par semaine (voir si ça pose problème aux intervenants)

je vais demander demain (on pourrait en profiter pour régulariser les versements de caisse à la semaine)

j'ai commencé à analyser le fonctionnement des codes que tu as utilisés car je dois les maitriser pour les intégrer dans mon programme.

il est possible que je te demande quelques explications si je plante à un moment car la transposition n'est pas toujours aussi facile qu'on le pense.

Une question : dans tes codes, tu mets un message d'erreur si la date saisie n'est pas un lundi

mais je ne vois pas comment on ferait puisqu'on ne rentre plus de date, mais la semaine.

est-ce un oubli suite à une modification de la recherche ou bien que je suis plus nul que je pensais !

amicalement

Tu écris :

dans tes codes, tu mets un message d'erreur si la date saisie n'est pas un lundi

mais je ne vois pas comment on ferait puisqu'on ne rentre plus de date, mais la semaine.

C’est pour gérer le cas où l’utilisateur entrerait la date au clavier, sans se servir de la liste déroulante.

S’il tape du texte, il a un message d’erreur.

S’il tape 6/1/2015, il ne pourra pas : dès qu’il aura tapé le 6 il aura un autre message d’erreur car il n’y a (en 2015) aucun mois avec un lundi 6.

Mais je me suis aperçu que la validation directe par clic sur ce contrôle pouvait avoir un effet pervers.

Si on veut taper au clavier 16/2/2015, qui est bien un lundi, on n’a pas le temps. Dès le ‘’1’’ tapé, on a le résultat sur la feuille recap, mais c’est celui du 12/1/2015, c’est-à-dire celui de la première date de la liste déroulante qui commence par un ‘’1 ‘’

Je pense donc qu’il est préférable de passer par un bouton de validation qui a l'avantage de ne lancer la procédure que lorsque la date a été saisie en entier.

D’où une nouvelle version.

Bye !

formidable, gmb,

non seulement tu m'envoies des solutions à minuit, mais en plus, tu détectes des anomalies auxquelles je n'aurais pas pensé !

Donc, maintenant, plus de saisie au clavier (c'est beaucoup mieux) mais une sélection

pour une débutante en informatique, c'est beaucoup plus cool.

j'ai eu la compta qui m'a dit préférer une fréquence hebdomadaire. Même si le bordereau arrive le mardi, il sera obligatoirement du lundi au dimanche suivant (j'ai modifié le formulaire pour mettre du lundi au dimanche, le reste fonctionnait).

je vais donc aussi supprimer toutes les lignes que tu as mises en observation puisqu'elles ne servent plus à rien.

IL me restera à transférer le bouton sur la page d'accueil et surtout à adapter tout ça à mon programme.

(Des nuits blanches en perspective !)

je pense que je vais mettre résolu sur ce topic.

encore merci pour ton aide précieuse.

(bien que l'usage veuille qu'on ne remercie quelqu'un que lorsqu'on n'a plus besoin de lui !)

ce qui n'est pas encore certain.

le forum a une fois de plus tenu ses promesses.

mais c'est grâce aux membres, et j'espère un jour pouvoir dépanner un membre qui serait moins doué que moi (si, ça doit bien exister !)

le programme donné par gmb fonctionne à merveille, mais je souhaite le compléter

j'ai déjà automatisé les totaux, mais je souhaite, afin de rendre le bordereau plus lisible, encadrer les cellules qui indiquent les totaux.

or, je n'arrive pas à trouver le code qui me permettrait d'encadrer automatiquement ces cellules qui sont variables puisque le nombre de lignes du bordereau est variable

merci d'avance pour votre aide

Si gmb est en ligne, merci encore et j'essaie d’être un bon élève en complétant moi-même

Bonjour

Sur le fichier que tu joins, montre moi ce que tu veux que la macro te fasse.

bonjour, gmb,

comme tu as pu le voir, j'ai un peu amélioré ton programme avant d'envisager de l'intégrer dans le mien.

j'ai ajouté les totaux mais je bloque sur la présentation :

je souhaite tirer un trait sous les lignes des factures, avant les totaux pour bien marquer la fin de la liste.

éventuellement, mettre en gras les totaux.

pour la mise en page globale, comme c'est un document interne, pas besoin de déco.

j'ai cherché sur les forums, mais je n'ai rien trouvé qui s'adapte à mon programme

encore merci pour ton aide

Rien ne vaut un exemple.

Je me répète donc : montre moi sur un exemple ce que tu veux obtenir.

Bye !

désolé, voici l'exemple

si quelques demandes sont trop complexes, simplifie car ce n'est que visuel.

merci pour ta patience

bonsoir, gmb

en transcrivant vers mon programme, je me suis aperçu que dans le userform1, si je choisis une autre année que 2015, les semaines qui apparaissent dans la combobox2 sont toujours celles de 2015

Car j’ai essayé de mettre plus de 3 ans dans la combobox1, et je me retrouvais toujours avec les semaines de 2015.

Comment régler ce problème (qui n'en est pas un pour 2015 mais pour la suite) ?

Un problème pousse l'autre !

mais je ne désespère pas d'y arriver, je m'approche de la version finale (qui doit être opérationnelle à l'ouverture du camping le 1er avril)

Nouvel essai à tester.

Bye !

formidable !

et rapide en plus

merci, merci de réagir si rapidement

j'ai testé et modifié quelques infos (la somme prenait la date), j'ai modifié la bordure de quelques cellules (c'est si simple quand on sait comment faire !)

il ne me reste plus qu'à régler le problème des semaines 2014 ou 2016

mais je ne comprends pas les formules

pourrais-tu me mettre quelques explications au bout des lignes de codes, ce qui me permettrait peut être de modifier tout seul ce qui plante

year(date) je comprends

combobox listindex un peu moins

redim v(54, 1) pas du tout , pas plus que dateserial et weekday

tout ce qui touche les dates m'effraie un peu

mais j'aime comprendre ce que je fais

à bientot

gdaniel a écrit :

qui doit être opérationnelle à l'ouverture du camping le 1er avril)

On a donc encore un peu de temps.

Nouvelle version à tester.

J'y ai prévu un chevauchement des années, au cas où le camping serait ouvert pendant les fêtes de fin d'année !!!

Bye !

ça y est ! j'ai transcrit ton programme dans le mien, et ça fonctionne.

pour la dernière modif du bordereau, ça tourne aussi, mais avec un petit bug : dans l'année 2014, il y a les 2 premières semaines de 2015 et à la fin de 2015, il manque la dernière semaine.

Mais ce n'est pas important car le camping est fermé en hiver.

D'ailleurs, en regardant de plus près les codes avec tes explications, je me suis aperçu que l'année se mettait automatiquement, donc pas de soucis pour passer à 2016 !

désolé pour le travail supplémentaire.

Mais rien n'est jamais perdu.

Avec et1000lio, vous m'avez permis de construire ce logiciel tout en apprenant le VBA

Ce forum est vraiment le meilleur que j'ai visité.

ET les membres sont des cracks (non, je n'exagère pas).

Quand j'aurai fini, voudras-tu un exemplaire du programme ?

je pense que je le mettrai en ligne pour tous ceux qui seraient intéressés (j'ai mis beaucoup de commentaires sur les lignes de code)

je te souhaite une bonne nuit

Je pense que cette fois, je ne te demanderai plus rien (je l'espère).

Je vais maintenant essayer de masquer toutes les parties non utiles à l'affichage afin que ça ressemble à un logiciel pro. (!!)

Peut être qu'un jour, j'ajouterai le plan du camping en le rendant interactif avec le planning, mais ça c'est une autre histoire.

encore une fois, merci

Gérard

Bonjour à tous, et plus particulièrement à ceux qui m'ont aidé à mettre au point mon logiciel de gestion de camping.

IL fonctionne depuis 1 mois sans trop de problèmes (quelques ajustements).

Mais j'ai un gros souci :

je dois modifier 3 feuilles mais j'ai oublié le mot de passe.

toutes les autres feuilles sont protégées mais sans mot de passe, ce qui me permet de les verrouiller à chaque exécution (les personnes qui l'utilisent ne sont pas très douées en informatique)

par contre, le planning, la liste des pays et l'onglet des tarifs ne sont plus accessibles.

Je sais que c'est plutôt contraire à l'éthique, mais ceux qui m'ont aidé savent que j'ai les droits sur le logiciel

je joins à tout hazard le fichier purgé, si quelqu'un peut m'aider à faire sauter le mot de passe (qui est le même pour les 3 feuilles)

car j'ai tenté de nombreuses manipulations (avec 7zip, avec open office, avec des logiciels libres soit disant très efficaces, rien n'y fait

j'ai excel 2013

merci à l’avance pour votre aide


bien sur, j'ai oublié de joindre le classeur

le voici

Rechercher des sujets similaires à "macro recherche puis recuperation valeurs"