FOR une seule fois pour une condition vraie

Fermé
Pathe1980 Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 23 novembre 2017 - Modifié le 21 nov. 2017 à 08:58
 Pathe1980 - 29 nov. 2017 à 19:45
Bonjour.
J'ai un classeur de 75000 lignes.
Chaque ligne contient les détails d'un article d'un magasin.
Il y a au total 24 magasins.
Bon but est récupérer pour chaque magasin les articles.
Je veux utiliser une boucle for puis if :

For i = 0 to 74999
If Cells (i, 2) = Mag1 then
...
End if
Next

Serait-il possible d'éviter de parcourir les 75000 ligne ?
De faire une seule itération pour un magasin ?
Merci pour votre aide.

6 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
20 nov. 2017 à 22:43
Bonjour,

Si j'ai bien compris.....
Tu veux trouver à quelle(s) ligne(s) se trouve(ent) le(s) magasin(s) cherché(s) ?
Dans ce cas il suffit d'utiliser la méthode FIND (si un seul) ou FINDALL si plusieurs
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
21 nov. 2017 à 08:20
Salut,
d’un autre côté, Excel est souvent t utlisé comme une base de données, mais ça n’en est pas une.
Avec quelques centaines, voire quelques milliers d’entrées, ça peut donner le change.
Mais 75 000, c’est trop, je pense.
Accès est livré avec office (en supposant que tu aies acheté office complet), sinon il y en a des gratuites.
Un import de données depuis Excel est généralement implémenté.
Ensuite pour les recherches, une petite requête et tu as tout ce que tu veux rapidement.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
21 nov. 2017 à 11:37
Perso, je suis comme vous... je n'aime pas utiliser excel comme une bdd ... et je conseille également l'utilisation des outils qui ont déjà fait leurs preuves....

Mais..... La dernière fois que j'ai dis un truc comme ça... je me suis fait envoyé bouler.. ^^

Si on relit la définition....Une Base de données ... peut n'être qu'un simple fichier texte........
Access, Mysql, oracle .... sont des SGBD (Systèmes de Gestion de Base de données)....donc oui... des outils prévus (et optimisés) pour gérer des bases de données.

Si il ne cherche pas les "performances" et qu'il souhaite redévelopper la roue.... rien ne l’empêche de créer et de "gérer" une base de donnée en Excel....
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
21 nov. 2017 à 16:22
75 000 produits, répartis dans N magasins, à raison de 6000 à 7000 produits par magasin (donc y’a au moins 11 magasins) un bon sgbd bien pensé sera 100 fois plus efficace qu’excel.
Ok une bdd peut être un simple fichier texte (pour des petits trucs je sers de xml), mais Excel c’est un tableur.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024
Modifié le 22 nov. 2017 à 07:54
avec Excel et ADO on peut très bien exécuter des requêtes soit dans notre cas 24 requêtes dans le même classeur
comme je l'ai écris, Access est + adapté pour ce problème,mais la plupart des TPE ne possèdent pas Access bien qu'on puisse générer la structure d'une base Access avec excel sans posséder office pro...

L'important dans la recherche d'une solution est d'énumérer les différentes possibilités et de ne pas être intégriste de telle ou telle méthode.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
22 nov. 2017 à 08:40
C’est pas une question d’integrisme, juste de performances.
Dès mon premier message, j’ai parlé d’access en supposant office complet, et précisé qu’il existe d’autre sgbd gratuits.
Le second problème avec Excel est que si ça crache, on peut tout perdre.
Je n’ai jamais vu une bdd cassée au point de ne rien pouvoir récupérer, avec Excel si.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 nov. 2017 à 11:23
Bonjour

Whismeril a raison : il vaut mieux passer par accès ou autres qu'Excel

toutefois tout dépend de ce que tu nommes magasin: magasin de stockage ou magasin de vente ?

selon le cas:


1/ peut on avoir le m^me article dans plusieurs magasins

2/ peut avoir plusieurs fois un article dans le m^me magasin ?

ou
un magasin est il spécialisé dans une liste spécialisée et exclusive d'articles

tout d
0
Pathe1980 Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 23 novembre 2017
21 nov. 2017 à 14:02
Merci à tous.
Je vais essayer Access pour voir ce que va donner.
Pour répondre à Michel.
Ceux sont des magasins de vente.
1/ Oui, le même article peut être dans plusieurs magasins. En moyenne a 3000 à 7000 articles.

2/ Chaque article est unique dans un magasin.
0
Pathe1980 Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 23 novembre 2017
21 nov. 2017 à 14:03
1/ En moyenne chaque magasin a 3000 à 7000 articles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 21 nov. 2017 à 16:01
OK, j'essaie un truc avec Excel mais, pas sûr d'y arriver :o/

sois patient, je te fais signe demain si OK ou pas; dis le si tu tu arrives à une solution avec Access (apparemment ce serait +facile)

 Michel
0
Pathe1980 Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 23 novembre 2017
23 nov. 2017 à 20:45
Hello Michel_m.
Aurais-tu pu trouvé une solution via Excel ?
L'option Access est compliqué pour moi.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Pathe1980 Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 23 novembre 2017
24 nov. 2017 à 08:48
Bonjour,

Non, j'avais laissé tomber suite à mes échanges avec whismeril.

Vu la météo ici, je vais m'y mettre mais venant d'^tre opéré des yeux, je ne supporte pas très longtemps l'éclat de l'écran :-(

ce que je propose:
le tri serait effectué sur un classeur cible pour ne pas toucher ni ouvrir la base de données (sensible avec 75000 lignes.)
la technologie employée serait ADO-SQL
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 nov. 2017 à 11:52
Bonjour

Désolé pour le retard mais je ne peux pas rester longtemps devant l'écran

les 75000 lignes sont traitées en 5 à 6 secondes...

la solution par Access serait certainement + rapide et facile mais comme tu as du mal avec Access, allons y avec XL

https://mon-partage.fr/f/A8C1Vt8x/
tu dis...

les macros se trouvent dans le classeur1.xslm "pathe.xlsx" doit rester fermé ( au cas où la procédure plante avec pathe ouvert me faire signe)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 nov. 2017 à 07:56
MERCI !!!

de rien....

de quoi décourager le bénévolat....;-((
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
29 nov. 2017 à 08:18
Et si seulement c’etait un cas isolé....
0
Pathe1980 > Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024
29 nov. 2017 à 19:45
Sorry mes amis !
J'étais débordé cette semaine.
Merci infiniment pour vos suggestions.
Je vais opter pour la solution ADO avec VBA Excel vs Access.
0