Affichage avec deux type de recherche listbox1 et Listbox2

bonjour le forum,

Actuellement sur un projet plus abouti

1e Problème:

J'aimerai pouvoir dans une listbox2 récupérer toutes les valeurs des colonnes E, F, G de' l'onglet BD lors de l'initialisation en fonction des critères de la date et Esv de l'userform1

Le top serait qu'il les trouve par son numéro de sillon avec seulement une partie du numéro de sillon

et de pouvoir cliquer sur les résultats qui s'afficheront dans la listbox2, pour les ouvrir dans le webbrowser1

Tous les sillons sont dans un dossier C:\Loc Ng 23\06-Sillons au format pdf

Je ne sais pas si c'est réalisable d'utiliser un webrowser pour deux fonction d'affichage recherche RT et sillons.

Aujourd'hui, ca fonctionne mais lorsque que je clique sur un nouveau pdf de la liste.

je ne peux plus rouvrir le précédant.

il y a peut être un rajout de code fin de pouvoir le faire

Sinon, si ce n'est pas possible, les afficher dans un autre userform avec la recherche de l'userform2 "recherche sillons"

2-ème Problème:

J'aimerai afficher le numéro de tournée dans le label11 qui se trouve dans la colonne D de la feuille BD

J'aimerai afficher le lieu de Garage dans le label69 qui se trouve dans la colonne P de la feuille BD en dernier ligne

et les calculs différentiés par de type: "mesure "et "Ach en bleu" total "colonne O" en fonction de la colonne uic

5esv3.zip (588.25 Ko)

bonjour le forum,

j'aimerai savoir s'il y a une possibilité ou pas afin de poursuivre mon projet ou l'abandonner

merci de votre aide par avance

cordialement

Bonjour Pelerin65,

Les explications et souhaits ne me semblent pas très clairs du moins pour moi. Il faudrait à minima repréciser les points suivants et le fonctionnement général attendu.

- 1er problème : "Le top serait qu'il les trouve par son numéro de sillon avec seulement une partie du numéro de sillon" puisque juste au-dessus tu dis que la récup des donnée se fait en fonction des critères saisis (ESV et DATE) dans le formulaire 1 ... tu ne veux afficher dans ListBox2 que les enregistrements où le n° de sillon est renseigné ?

- 2ème problème :

  • de quel formulaire s'agit-il ? dans le UserForm1, le label de la tournée est le Label69 et celui du garage est Label52 alors que dans le post il est question des Label11 (je ne l'ai pas trouvé) et Label69 (concerne le garage) ...
  • "et les calculs différentiés par de type: "mesure "et "Ach en bleu" total "colonne O" en fonction de la colonne uic" : données à rapatrier où calcul à faire (à préciser)

J'ai essayé de faire quelques tests mais j'obtiens des erreurs qui referment le formulaire. Il faudrait également fournir :

  • Un jeu d'essai (onglets BD et RT) beaucoup plus réduit mais cohérent et accompagné des pdf associés à ce jeu.
  • Fichiers pdf banalisés (peu importe le contenu où si c'est le même pour tous les fichiers)
  • Les explications pour l'installer car là j'ai fait des essais et ...

Cdlt,

Cylfo

Bonjour Cylfo,

- 1er problème : "Le top serait qu'il les trouve par son numéro de sillon avec seulement une partie du numéro de sillon" puisque juste au-dessus tu dis que la récup des donnée se fait en fonction des critères saisis (ESV et DATE) dans le formulaire 1 ... tu ne veux afficher dans ListBox2 que les enregistrements où le n° de sillon est renseigné ?

lors de ma préparation, je recherche par engin et journée.

capture d ecran 2023 11 12 070157

en validant, ca n'ouvres le deuxième userform2

Dans cette vu, la colonne sillon dans la listview les trois numéros surlignés

capture d ecran 2023 11 12 071153

Dans la partie sillons du jour, lors de la validation avec la bouton "Recherche" dans la listbox2

Toutes les marches de la semaine s'affiche dedans

avec le chemin complet:

"C:\Loc Ng 23\06-Sillons\detail_sillon_101173_20230402.pdf

"C:\Loc Ng 23\06-Sillons\detail_sillon_101171_20230402.pdf

"C:\Loc Ng 23\06-Sillons\detail_sillon_101174_20230402.pdf

capture d ecran 2023 11 12 071806

J'aimerais lors de l'initialisation de l'userform

J'aimerai savoir s'il est possible de trouver les sillons uniquement avec la partie des numéros des sillons

101173.pdf

101171.pdf

101174.pdf

Et les numéros s'affichent dans la listebox2 directement, sans utiliser le bouton "Recherche"

Petite remarques les sillons peuvent être utilisées pour plusieurs dates (passage toutes les 8 semaines en moyenne)

2-ème Problème:

J'aimerai afficher le numéro de tournée dans le label11 qui se trouve dans la colonne D de la feuille BD

J'aimerai afficher le lieu de Garage dans le label69 qui se trouve dans la colonne P de la feuille BD en dernier ligne

et les calculs différentiés par de type: "mesure "et "Ach en bleu" total "colonne O" en fonction de la colonne uic

pour le "label 11", c'est une erreur de ma part .

Le "Label52" est le N° tournée que est dans l'onglet BD

Le "Label69" est le garage qui est aussi dans la feuille BD

Le "Label21" est le total des lignes donc les critères à additionner sont "2à6 et 7à9 " dans la colonne H de l'onglet BD

Le "Label31" est le total des lignes donc le critère à additionner est "ACH" dans la colonne H de l'onglet BD

Je te joins les dossiers RT avec 3 RT 3 "Agen, Abancourt le Tréport" et Sillons pour la semaine du 06 au 12 novembre pour tes essais

J'espère que ce sera plus clair maintenant

Cordialement

C'est beaucoup plus clair , par contre je n'ai pas les 3 fichiers pdf ... mais je vais les créer.

Bonsoir Pelerin65,

Voir fichier ci-joint. Je te laisse tester et me dire si cela répond à tes demandes.

9esv3-2.zip (585.32 Ko)

Cdlt,

Cylfo

bonsoir Cylfo

oui, mais rien ne s'affiche dans la listbox sillons par rapport de la date du jour, peut être l adressage du dossier sillons que je dois changer

la date me s 'affiche plus

capture d ecran 2023 11 12 204638

la date ne s 'affiche plus

et je comprends pas le résultat de la mesure et ach

capture d ecran 2023 11 12 205038

les résultats que j'avais avec du Excel ou les calculs se faisait sur une extraction

me donnent ces résultats suivant

capture d ecran 2023 11 12 204755

Peut-être que c'est impossible de trouver les mêmes résultats qui sont l adition des "2à6 +7à9 "pour la mesure avec un format " 000;000"

et pour ach c4est l'addition de toute les lignes ACH de la tournée du jour avec un format " 000;000"

Je te suis reconnaissant de m'apporte une aide sur le projet, j'ai lu un peu ton code, la je suis perdu.

Cordialement

rebonsoir Cylfo,

6bureau.zip (865.29 Ko)

je te remets le dossier des sillons de la semaine 45

cordialement

Bonjour Pelerin65,

Merci de ne pas transmettre des données non banalisées (données, logo, etc.).

Je te joins un nouveau fichier :

  • Pour le chemin : Je t'ai remis l'ancien chemin "C:\...". Il est modifiable via la constante CHEMIN qui est définie au début du module associé à UserForm2.
  • Pour les résultats "Mesure" et "ACH" : c'est corrigé (je comptais le nombre de lignes concernées ...)
  • Pour la date : dans le fichier que tu as transmis la date ne s'affichait pas (le Label41 n'est présent dans aucune ligne de code). Je l'ai rajoutée.
14esv3-3.zip (574.38 Ko)

Cdlt,

Cylfo

Bonjour Cylfo,

t'es trop fort, c'est génial.

je me pose la question, je peux enlever la colonne sillon dans l'userform du haut.

capture d ecran 2023 11 13 183208

Cordialement

rebonsoir,

J'aimerai juste savoir ou est le dossier des sillons car forcement j ai mis les sillons de la semaine qui arrive (S46)

C'est bien dans le dossier: "C:\Loc NG 23\6-Sillons\"

capture d ecran 2023 11 13 191438

Je lance une recherche sur la tournée du jour, je valide

et ça me donne ça

capture d ecran 2023 11 13 191506

Je mets ou ca bogue,

capture d ecran 2023 11 13 191537

Désolé de demander autant d aide

Cordialement

Bonjour Pelerin65,

Tu peux ôter la colonne "Sillon" mais attention, il faudra renuméroter tous les indices des .ListSubItems car du fait de la suppression il y a un décalage de 1.

Je te conseillerai plutôt de ne pas afficher la colonne en modifiant la ligne ".Add , , "Sillon", 0, lvwColumnCenter" (0 au lieu de 50) dans la procédure "UserForm_Initialize". Comme cela, le reste du code ne bouge pas et si demain, tu veux réafficher la colonne il te suffira de re remplacer le 0 par 50 (ou autre valeur).

Le dossier est en dur dans le module associé au UserForm2, constante "CHEMIN" définie à la 4ème ligne à vérifier et à modifier si le chemin n'est pas le bon.

Une précision toutefois : je vois que tu fais référence à la semaine "S46", cette référence est elle à inclure dans le chemin de recherche des pdf ? Si oui, ce n'était pas mentionné dans ta demande ni dans le code mais c'est facile à rectifier.

Par contre pour localiser la ligne réellement en cause de l'erreur, il faudrait avant d'appuyer sur le bouton "FORMULAIRE" que :

  • Tu ouvres le code associé à UserForm2
  • Dans la procédure "UserForm_Initialize"
    • tu te positionnes sur la ligne "Me.ListView1.CheckBoxes = True" et tu mets un point d'arrêt (F9).
    • tu te positionnes sur la ligne "On Error Goto Suite" et tu la mets en commentaire. Je n'y avais pas prêté attention mais intercepter une erreur sans la traiter, ce n'est vraiment pas recommandé. Si tu veux on corrigera après.
  • Tu appuis sur le bouton "FORMULAIRE", tu sélectionnes les paramètres et tu valides
  • Dans l'éditeur, tu exécutes le code en mode pas à pas (F8) jusqu'à obtenir l'erreur que tu me communiques (copie d'écran).

Cdlt,

Cylfo

bonjour Cyflo,

Désolé de te répondre tard à ta procédure, concernant l'erreur 440 ERREUR d'automation

mais je n'arrive pas à comprendre pour la mettre en pratique.

je ne sais plus comment faire pour trouve le problème et ca m attriste beaucoup de bloquer sur ça

je suis un boulet je crois évoluer en vba mais ce n'est pas vrai hélas

cordialement

Bonjour Pelerin65,

Ce n'est pas parce l'on bloque sur un point que l'on évolue pas !

Je vais te guider :

  • Après ouverture du fichier et, si nécessaire (message "AVERTISSEMENT DE SECURITE" sur bandeau jaune), activation des macros, appuis sur les touches ALT + F11 (cela ouvre l'éditeur VB).
  • Appuis sur CTRL + R pour afficher la fenêtre "Projet - VBA Project" si celle-ci n'est pas affiché
  • Dans cette fenêtre, tu ouvres le dossier "Feuilles"
  • Tu fais un clic droit sur "UserForm2" et tu sélectionnes "Code" dans le menu contextuel qui s'affiche
  • Dans la fenêtre de droite, le code s'affiche
  • image
  • Dans la rubrique "(Général)" (surlignée en jaune ci-dessus), tu ouvres la liste déroulante et tu sélectionnes "UserForm", tu seras directement positionné sur la procédure "UserForm_Initialize"
  • Tu te positionnes sur la ligne "Me.ListView1.CheckBoxes = True" et tu mets un point d'arrêt (touche F9) image
  • Un peu plus bas dans le code (surligné ci-dessous en jaune, tu mets une apostrophe devant On Error GoTo Suite image
  • Tu retournes dans le fichier Excel sur la feuille "RECHERCHE", tu appuis sur le bouton "FORMULAIRE", tu sélectionnes les paramètres et tu appuis sur le bouton "VALIDER"
  • Tu vas être immédiatement repositionné sur la ligne "Me.ListView1.CheckBoxes = True" où tu as mis un point d'arrêt dans le code du formulaire "UserForm2" image
  • La ligne où le code est arrêté est matérialisée par une petite flèche jaune à gauche et la ligne est en jaune
  • A partir de là, tu appuis sur F8 pour exécuter le code ligne par ligne (mode pas à pas). La ligne prête a être exécutée est en jaune avec la flèche sur le côté gauche
    image
  • Tu exécutes le code ligne à ligne en appuyant sur F8 à chaque nouvelle ligne en jaune jusqu'à ce tu obtiennes le message d'erreur que tu me transmets

Cdlt,

Cylfo

Re,

je viens de remarquer

lorsque que j essaies les dates avant ou apres la date du jour, ça s'ouvres correctement

mais la date du jour aujourd'hui ca me fait erreur d'automation

capture d ecran 2023 11 22 090757 capture d ecran 2023 11 22 090828

Ok. Mais il faut que effectues les manips que je t'ai indiquées car là l'erreur n'est pas interceptée. L'erreur n'étant pas traitée dans la procédure "UserForm_Initialize", elle est juste remontée à la procédure appelante mais on ne connaît pas la ligne qui a provoqué l'erreur.

re Cyflo,

donc j ai réussi ta procédure de recherche

je l'ai fait avec la date du jour ou l'erreur se produit

il me donne aucune erreur. ???????

Cordialement

Bonjour Cyflo,

Voilà les captures d'écrans

Pour les journées qui ne fonctionne pas

Il y a un décalage dans la date de référence

2 3

C'est surement et peut être que ca beugle

Cordialement

Bonjour Pelerin65,

J'ai identifié l'erreur. Elles est liée à l'instruction "cFichier = Dir(CHEMIN & "*" & acFMask(nIFM) & "*.pdf")" car la variable "acFMask(nIFM)" contient dans certains cas un masque de nom de fichier contenant le caractère "/" qui est interdit dans les noms de fichier.

Pour constituer le masque de recherche, j'ai épuré du nom du sillon tout ce qui suit le caractère "[" (par exemple le sillon "101001[1]" donnera le masque de fichier "*101001*.pdf". Je peux aussi éliminer tout ce qui suit le caractère "/" mais je vois que certaines références semblent comporter 2 références par exemples "100022/100023[1]" ou peut-être aussi "101008/09[1]" donc il faut que tu me donnes une règle précise pour déterminer les références à prendre en compte.

Cdlt,

Cylfo

Re Cyflo,

Les références qui comportent 2 références par exemples "100022/100023[1]" ou peut-être aussi "101008/09[1]" indiquent juste le sens de marche

Donc en affichant la référence "100022" ou "101008"

ça devrait pas poser de problème vu que dans la listview ouvrira le fichier concerné

Cordialement JLuc

Rechercher des sujets similaires à "affichage deux type recherche listbox1 listbox2"