Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/07/2024, à 13:46

claudius723

[Résolu] Filtrer suivant critère

Bonjour à tous, je viens vous soumettre mon problème ; je souhaiterais extraire des données d’un tableau suivant un choix sélectionné en liste de valeur : Année
J’ai essayé avec « zBasic », de construire une macro « FiltrerVins », mais cela ne fonctionne qu’avec la déclaration de l’année exacte dans « zFiltre.Colonne », j’aimerais trouver une solution qui fonctionnerai suivant le choix sélectionné en liste, sur la feuille « RechercheVin ».
Ci joint le tableau « ListeVins » et la feuille « RechercheVin » avec le résultat souhaité. La macro est assignée au bouton "Recherche vins"
Dans la macro, j’ai remplacé l’année en « zFiltre.Colonne » par la cellule, soit « A1», qui est égale à la valeur de recherche en « E3 ».
Est ce réalisable ou alors avec une autre solution ?
Merci d’avance

Sub FiltrerVins
GlobalScope.BasicLibraries.loadLibrary ("zBasic")
Dim oFiltre as variant
   oFiltre=zFiltre.Demarre("ListeVins", "A3:E100")
   zFiltre.Parametre(oFiltre, "entete", "N")
   zFiltre.Colonne(oFiltre, 1, "", 12, "N", "A1")
   zFiltre.Execute(oFiltre, "RechercheVin", "A6")
End sub

Je voudrais bien joindre le fichier, mais je ne sais plus la démarche

Dernière modification par claudius723 (Le 19/07/2024, à 21:21)


Cordialement
Claudius723

En ligne

#2 Le 12/07/2024, à 14:40

claudius723

Re : [Résolu] Filtrer suivant critère

A l'aide, comment fait on pour poster un fichier ?
Merci

Dernière modification par claudius723 (Le 12/07/2024, à 21:43)


Cordialement
Claudius723

En ligne

#3 Le 14/07/2024, à 19:40

claudius723

Re : [Résolu] Filtrer suivant critère

Bonjour à tous, il n y a personne pour m'aider ?


Cordialement
Claudius723

En ligne

#4 Le 15/07/2024, à 14:06

LeoMajor

Re : [Résolu] Filtrer suivant critère

salut,
ex:poster un fichier par lien

le premier qui vient
https://share.hidrive.com/i/upload
lien valable 7 jours

wget -O target  https://get.hidrive.com/i/JLv....

Hors ligne

#5 Le 15/07/2024, à 16:20

Amiralgaby

Re : [Résolu] Filtrer suivant critère

Bonjour,

Commençons par savoir quel langage est-ce. Est-ce une contrainte de faire du BASIC ou Visual Basic ?
Sur un forum Ubuntu et donc de facto Linux, ça sera pas facile le visual basic. Et il y a plus simple que du BASIC.
Donc si possible choisir un langage plus adapté pour avoir un code dans un langage "moderne".

Je souhaiterais extraire des données d’un tableau

C'est un tableau excel ? donc un fichier excel ?
parce qu'il peut y avoir plusieurs type de tableau (c'est même le terme utilisé pour une structure en programmation)


Ce que tu fais, c'est rajouter à une colonne, une fonctionnalité de tri ?

La liste des années est dans le tableur/excel... ton premier commentaire manque de contexte


Vive la communauté du Libre !!!

Hors ligne

#6 Le 15/07/2024, à 16:46

claudius723

Re : [Résolu] Filtrer suivant critère

=https://get.hidrive.com/i/WYpkwk53
Voila, j’espère que vous allez pouvoir le lire, c'est un tableau sous LibreOffice calc


Cordialement
Claudius723

En ligne

#7 Le 15/07/2024, à 17:38

claudius723

Re : [Résolu] Filtrer suivant critère

https://get.hidrive.com/i/brV6ZgxJ
Ce sera mieux comme cela !


Cordialement
Claudius723

En ligne

#8 Le 15/07/2024, à 18:51

Rafbor

Re : [Résolu] Filtrer suivant critère

Bonjour, pas besoin de te compliquer la vie, tu mets un autofiltre sur la ligne d'entête de colonne de ton onglet ListeVins et c'est réglé.
=> sélectionne la ligne 2 puis clic sur le bouton AutoFiltre


Xubuntu 22.04 - Mes projets sur Github

En ligne

#9 Le 15/07/2024, à 19:51

claudius723

Re : [Résolu] Filtrer suivant critère

Oui, merci Rafbor, je connais, mais je souhaite automatiser. Après la sélection de l'année dans la feuille "RechercheVin", clic sur le bouton et le résultat s'affiche !!!!


Cordialement
Claudius723

En ligne

#10 Le 18/07/2024, à 14:57

LeoMajor

Re : [Résolu] Filtrer suivant critère

le plus petit point commun entre tableurs est le csv.   enregistrer sous *.csv

rfc csv 4180   -> headers (champs) la première ligne + data

cat *.csv

Année,N° casier,Appellation,Région,Type
2012,27,MOUTON CADET (ANNIVERSSAIRE),BORDEAUX,ROUGE
2016,29,CHATEAU LA FLEUR PEILHAN St EMILION,BORDEAUX,ROUGE
2017,10,CHATEAU MOULIN ROMPU,BORDEAUX,ROUGE
2017,8,LES HAUTS DU PETIT LAC,BERGERAC,ROUGE
2017,21,MAULIN PECHAUD,BORDEAUX,ROUGE
2018,20,CHEVALIER GRAND CLAUD,BERGERAC,ROUGE
2018,6,MOUTON CADET,BORDEAUX,ROUGE
2019,35,CHINON ,VAL DE LOIRE,ROUGE
2019,34,FITOU ST ESTEVE,LANGUEDOC,ROUGE
2019,45,VIEILLES VIGNES Côte du RHONE,RHÔNE,ROUGE
2020,7,Baron de Clarsac,BORDEAUX,ROUGE
2020,41,Baron de Clarsac,BORDEAUX,ROUGE
2021,4,Chateau Croix de Terrefort,BORDEAUX,ROUGE
2021,12,Chateau Croix de Terrefort,BORDEAUX,ROUGE
2021,58,CHATEAU de LA RIVIÈRE,BORDEAUX,ROUGE
2021,13,Chateau FAVEREAU,BORDEAUX,ROUGE

-> convertir sous sqlite3

$ sqlite3

> .mode csv

> .open vins-test.sql

> create table vins(Année integer, "N° casier" integer, Appellation text,Région text, Type text)

> .import data.csv vins

> .quit
sqlite3 -batch -cmd ".database" -cmd ".tables" -cmd ".fullschema" /home/toto/Documents/vins-test.sql "select * from vins order by Appellation asc, Année desc, N°_casier asc;"
...
seq  name file
---  --------------- ----------------------------------------------------------
0    main /home/toto/Documents/vins-test.sql
vins
CREATE TABLE vins(Année integer, N°_casier integer, Appellation text, Région text, Type text);
/* No STAT tables available */
Année|N° casier|Appellation|Région|Type
2020|7|Baron de Clarsac|BORDEAUX|ROUGE
2020|41|Baron de Clarsac|BORDEAUX|ROUGE
2016|29|CHATEAU LA FLEUR PEILHAN St EMILION|BORDEAUX|ROUGE
2017|10|CHATEAU MOULIN ROMPU|BORDEAUX|ROUGE
2021|58|CHATEAU de LA RIVIÈRE|BORDEAUX|ROUGE
2018|20|CHEVALIER GRAND CLAUD|BERGERAC|ROUGE
2019|35|CHINON |VAL DE LOIRE|ROUGE
2021|4|Chateau Croix de Terrefort|BORDEAUX|ROUGE
2021|12|Chateau Croix de Terrefort|BORDEAUX|ROUGE
2021|13|Chateau FAVEREAU|BORDEAUX|ROUGE
2019|34|FITOU ST ESTEVE|LANGUEDOC|ROUGE
2017|8|LES HAUTS DU PETIT LAC|BERGERAC|ROUGE
2017|21|MAULIN PECHAUD|BORDEAUX|ROUGE
2018|6|MOUTON CADET|BORDEAUX|ROUGE
2012|27|MOUTON CADET (ANNIVERSSAIRE)|BORDEAUX|ROUGE
2019|45|VIEILLES VIGNES Côte du RHONE|RHÔNE|ROUGE

------------
A/  en utilisant libreoffice base

sqlite3 indirect  via odbc   /libreoffice/isql

aptitude search '~i odbc' -F %p | xargs
libodbc1 libsqliteodbc odbc-mdbtools odbcinst odbcinst1debian2 unixodbc
..
dpkg -L unixodbc

...

/usr/bin/iusql
/usr/bin/isql

cat /etc/odbcinst.ini

[sqlite]
Description=SQLite ODBC Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libsqliteodbc.so
Usagecount=1

[sqlite3]
Description=SQLite3 ODBC Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libsqlite3odbc.so
Usagecount=1

[mdb]
Description=MDBTools Access Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so
UsageCount=1
FileUsage = 1

$ cat ~/.odbc.ini      ou /etc/odbc.ini

[vins]
Description=SQLite3 database
Driver=sqlite3
Database=/home/toto/Documents/vins-test.sql

cat /etc/odbc.ini
[testsql]
Description=SQLite3 test database
Driver=sqlite3
Database=/home/toto/sql/personnes

[testmdb]
Description=MDB Access test database
Driver=mdb
Database=/home/toto/sql/Contacts_Demo_V1.01.mdb
-------

libreoffice base te demandera [le nom odbc de la database]

isql -b vins  <<<"select * from vins order by Appellation asc, Année desc, N°_casier asc;"

B/sqlite3 direct

sqlite3 -batch -cmd ".database" -cmd ".tables" -cmd ".fullschema" /home/toto/Documents/vins-test.sql "select * from vins order by Appellation asc, Année desc, N°_casier asc;"

C/ macro de type Shell() levé par event (fichier est activé)

avec libreoffice calc /affichage/bare outils/personnaliser  -> ajouter menu

dans le nouveau menu, ajouter event quand le fichier untel est activé. Cela fonctionne mais bof ... -> utiliser plutôt libreoffice base

Dernière modification par LeoMajor (Le 18/07/2024, à 15:20)

Hors ligne

#11 Le 18/07/2024, à 17:55

claudius723

Re : [Résolu] Filtrer suivant critère

Bonjour LeoMajor, je dois reconnaître que c'est du beau travail, je n'en demandais pas tant ! c'est bien trop poussé pour moi ! je ne suis pas suffisamment instruit (en langage VBA ou autre) pour mettre en place tout ce beau travail.
Entre temps, j'ai bricolé ma macro de base, et dupliqué autant de fois que j'ai d'année, en spécifiant à chaque ligne "zFiltre.Colonne" 2012 à 2024, ce n'est certes pas la meilleure solution mais cela marche. Néanmoins je garde en réserve la solution de LeoMajor, pour calc, je vais tenter de la mettre en pratique.
Donc, je remercie tous ceux qui ont travaillé sur le sujet, je vais clôturer et marquer "Résolu"


Cordialement
Claudius723

En ligne

#12 Le 18/07/2024, à 18:11

claudius723

Re : [Résolu] Filtrer suivant critère

Je reviens vers vous pour remercier encore une fois LeoMajor, qui m'a conseillé de passer sur Dbase, ce que je vais essayer, en créant des tables et des formulaires.
Je ne manquerais pas de vous tenir au courant sur la suite de cette affaire.
Bonne soirée.


Cordialement
Claudius723

En ligne