Tableau récapitulatif d'offres
Fermé
Max29
-
14 août 2009 à 15:54
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 - 19 août 2009 à 20:01
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 - 19 août 2009 à 20:01
A voir également:
- Tableau récapitulatif d'offres
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
30 réponses
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 16:26
18 août 2009 à 16:26
Ah, je crois avoir trouvé !
vous avez fait la même erreur qu'avec le prix, sauf que cette fois la probabilité pour que le prix soit exactement trouvé est faible, enfin bref :
Une nouvelle fois, on cherche l'entête, au cas où on rajouterais des colonnes dans la base ;)
vous avez fait la même erreur qu'avec le prix, sauf que cette fois la probabilité pour que le prix soit exactement trouvé est faible, enfin bref :
If (prix_rech <> "") Then Cells.Find(what:="prix", after:=ActiveCell, LookIn:=xlFormulas, lookat _ :=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:= _ False, searchformat:=False).Activate colonne_prix_unitaire = ActiveCell.Column While (j < 150)
Une nouvelle fois, on cherche l'entête, au cas où on rajouterais des colonnes dans la base ;)
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 16:41
18 août 2009 à 16:41
remplacer :
table_resultat(j) = 0 par table_resultat(j) = 1 et voir le résultat, normalement, on doit voir copier dans la zone de résultat le nombre d'offre correspondant à la marque
table_resultat(j) = 0 par table_resultat(j) = 1 et voir le résultat, normalement, on doit voir copier dans la zone de résultat le nombre d'offre correspondant à la marque
Toujours rien avec ce changement !
J'ai remodifié le code en remplaçant "cells.find(what:="marque")" par "cells.find(what:="marque_rech"), idem pour le prix (même si vous m'avait dit de modifier précédemment). Avec cette modif, le curseur se déplace dans ma feuille "base" en respectant les critères de marque et de prix de ma feuille "dimensionnement".
Par contre, la macro refuse de sélectionner (aucun message d'erreur). Le curseur se déplace uniquement sur les bonnes références mais ne les copie pas !
J'ai remodifié le code en remplaçant "cells.find(what:="marque")" par "cells.find(what:="marque_rech"), idem pour le prix (même si vous m'avait dit de modifier précédemment). Avec cette modif, le curseur se déplace dans ma feuille "base" en respectant les critères de marque et de prix de ma feuille "dimensionnement".
Par contre, la macro refuse de sélectionner (aucun message d'erreur). Le curseur se déplace uniquement sur les bonnes références mais ne les copie pas !
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 17:12
18 août 2009 à 17:12
désolé, je n'ai plus du tout d'idées! normalement, cela devrait fonctionner, je ne comprend pas
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 18:35
18 août 2009 à 18:35
vous pouvez m'envoyer le lien en mp :) ! sinon mon adresse mail c'est https://www.cjoint.com/?issMK7rRSK
Après une bonne demie heure de pause, j'ai réessayé la macro mais cette fois-ci avec le fichier que je vous avais préparé (cad uniquement les 2 feuilles concernées).
Et là magique, la macro fonctionne !!!
Maintenant la question est : pourquoi ne marche-t-elle pas sur le fichier qui comporte 11 feuilles ?
Et là magique, la macro fonctionne !!!
Maintenant la question est : pourquoi ne marche-t-elle pas sur le fichier qui comporte 11 feuilles ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 18:52
18 août 2009 à 18:52
ahah ! mdr ! vérifiez l'intitulé exact des feuilles (attention accents, espaces, majuscules ?) ! je ne vois que cela !
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 19:33
18 août 2009 à 19:33
et bien il marche : https://www.cjoint.com/?istFFrZjpH
c'était, comme je l'ai déjà dit, la recherche : si vous mettez la variable prix_unitaire au lieu de l'intitulé de la colonne "prix unitaire", alors il définit la colonne 20 (avec la recherche"4") ... et alors il exclut tout !
maintenant cela fonctionne...
si vous voulez, on peut maintenant l'améliorer ?
c'était, comme je l'ai déjà dit, la recherche : si vous mettez la variable prix_unitaire au lieu de l'intitulé de la colonne "prix unitaire", alors il définit la colonne 20 (avec la recherche"4") ... et alors il exclut tout !
maintenant cela fonctionne...
si vous voulez, on peut maintenant l'améliorer ?
Maintenant que la macro fonctionne, je constate quand même un petit problème : elle sélectionne l'ensemble des références d'une marque sans prendre en compte le critère "prix".
Sinon que me proposez-vous pour l'améliorer ?
- Peut-on créer une boîte de message avec une barre de progression pendant que la macro fait une recherche ?
- Comment faire pour que la macro remplisse uniquement les renseignements utiles pour la table résultat de la feuille "dimensionnement"?
En tout cas, merci beaucoup pour votre aide, elle m'est bien précieuse !
Sinon que me proposez-vous pour l'améliorer ?
- Peut-on créer une boîte de message avec une barre de progression pendant que la macro fait une recherche ?
- Comment faire pour que la macro remplisse uniquement les renseignements utiles pour la table résultat de la feuille "dimensionnement"?
En tout cas, merci beaucoup pour votre aide, elle m'est bien précieuse !
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 20:57
18 août 2009 à 20:57
Je vais y travailler, pour la barre de progression, je sais en faire une intéressante, mais je n'ai plus le code sous la main. Mais, elle n'est utile que si votre macro mais plusieurs dizaines de secondes à s'exécuter.
Je vous redis demain ;)
Je vous redis demain ;)
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
18 août 2009 à 21:15
18 août 2009 à 21:15
Trouvé! Quel idiot je suis !
J'avais mis "And" au départ, bien sûr, le prix ne peut pas à la fois être en dessous de celui recherché et au dessus... donc le If n'était jamais vérifié...
Par ailleurs, attention au 0.5 et 1.5, ils correspondent à des zones trop grandes.
Ex: si vous entrez 4 € dans la recherche
Il prendra les offres de 0.5*4 = 2 € à 1.5 *4 = 6 € ... ce qui correspond peut-être à beaucoup d'offre ;)
Si vous avez des prix de 0.5 en 0.5 et que vous voulez associez le triplet (3.5,4,4.5) à la recherche... alors remplacez les * par des + et mettez 0.5 € de chaque côté ;)
bonne soirée
If (table_resultat(j) <> 0) Then prix_unitaire = Cells(table_resultat(j), colonne_prix_unitaire) If ((prix_unitaire < (prix_rech * 0.5) Or prix_unitaire > (prix_rech * 1.5)) Or prix_unitaire = "") Then table_resultat(j) = 0 End If End If
J'avais mis "And" au départ, bien sûr, le prix ne peut pas à la fois être en dessous de celui recherché et au dessus... donc le If n'était jamais vérifié...
Par ailleurs, attention au 0.5 et 1.5, ils correspondent à des zones trop grandes.
Ex: si vous entrez 4 € dans la recherche
Il prendra les offres de 0.5*4 = 2 € à 1.5 *4 = 6 € ... ce qui correspond peut-être à beaucoup d'offre ;)
Si vous avez des prix de 0.5 en 0.5 et que vous voulez associez le triplet (3.5,4,4.5) à la recherche... alors remplacez les * par des + et mettez 0.5 € de chaque côté ;)
bonne soirée
bouket
Messages postés
143
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
16 octobre 2011
22
19 août 2009 à 20:01
19 août 2009 à 20:01
Mais, de rien, si vous avez des demandes plus précises, n'hésitez pas !!
18 août 2009 à 16:33
If (prix_rech <> "") Then
Cells.Find(what:="prix unitaire", after:=ActiveCell, LookIn:=xlFormulas, lookat _
:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:= _
False, searchformat:=False).Activate
colonne_prix_unitaire = ActiveCell.Column
While (j < 150)
If (table_resultat(j) <> 0) Then
prix_unitaire = Cells(table_resultat(j), colonne_prix_unitaire)
If ((prix_unitaire < (prix_rech * 0.9) And prix_unitaire > (prix_rech * 1.1)) Or prix_unitaire = "") Then
table_resultat(j) = 0
End If
End If
j = j + 1
Wend
End If