Extraction de données d'un tableau excel

Fermé
VBA_novice - 6 janv. 2009 à 17:57
 VBA-novice - 9 janv. 2009 à 18:24
Bonjour,

J'ai déjà fait un tour sur le forum et pas encore trouvé de réponse à ma question... Je pense d'ailleurs qu'elle n'est probablement pas très difficile, mais je bloque depuis cet après-midi. Toute aide serait réellement appréciée !

Voici le problème. J’ai un tableau excel avec dans un onglet une base de données, qui contient en gros une centaine de ligne avec des informations pour des produits x, y z... Parmi les champs, chaque produit appartient à une catégorie donnée (A, B, C, D … H). Je retravaille le fichier en créant un premier onglet qui me permet de faire un certain nombre d'opérations en cliquant sur des boutons. Parmi ces opérations, j'aimerait avoir un bouton qui mepermette d'afficher, dans un nouvel onglet, l'ensemble des produits d'une catégorie donnée. Je sais que le plus simple est de le faire manuellement, mais l'objectif est qu'ensuite ces informations me permettent de tirer des statistiques etc... d'où l'intérêt d'automatiser tout ça.

J’aimerais donc avoir une fonction/macro qui me permette d’afficher dans un nouvel onglet uniquement les produits de catégorie n, sachant que l’utilisateur du fichier excel doit entrer cette lettre dans une case donnée. Pour info, je souhaite passer par un onglet intermédiaire, pour ne pas risquer de modifier la base de données elle-même.

Est-ce que quelqu’un aurait une idée comment faire ?

Merci d'avance !
VBA-novice
A voir également:

10 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 janv. 2009 à 18:11
Bonjour,
Si tu pouvais mettre un fichier exemple avec des données et dans une autre feuille le résultat souhaiér ont pourraient peut-être t'aidé.
A mettre sur Cjoint.com
et pas oublier de mettre le lien sur un poste suivant.
A+
0
Bonjour lermite222

Merci pour ta réponse rapide ! Voici le lien : https://www.cjoint.com/?bgtDMGIlkC La base de données est moins importante mais le mécanisme reste le même. J'ai mis le résultat recherché dans la première page.

Merci !
VBA-Novice
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 janv. 2009 à 19:20
1°) tu a ajouter un point au lien, c'est bon que j'ai l'habitude sinon il n'y a pas moyen de l'ouvrir.
2°) Tu est en excel 2007 et moi je suis en 2000/2003 pour le moment.
3°) Ton classeur est en Xlm
Désoler, peut-être un autre intervenant pour t'aider ?
A+
0
Bonjour,

J'ai converti le fichier en excel 97-03, il est disponible ici : https://www.cjoint.com/?bhpEv6DoF8

Et cette fois-ci il ne devrait pas y avoir de point :-).

Par contre, je ne comprends pas ta remarque sur le xlm ? Que faut-il que je modifie ?

Merci pour ton aide,
VBA-novice
0

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

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 janv. 2009 à 17:39
Regarde si la solution te convient.
J'ai mis sur la 1ère feuille mais ont peut facillement mettre le résultat sur une autre.
Lien Cjoint
Tu dit...
0
Ca a l'air de fonctionner ! Je me doutais qu'il fallait une formule du style for i=1 to ..., mais je ne m'y connais pas très bien en langage VBA. Merci pour ton aide !

Est-ce que tu saurais m'indiquer un site avec des tutoriels de VBA bien faits ? J'ai trouvé quelques réponses sur Google, rien de super jusqu'à maintenant.

Merci encore !
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 janv. 2009 à 16:20
Ca a l'air de fonctionner , ou bien ça fonctionne ?
Faudrait que tu t'insrive sur CCM.
A+
0
Salut lermite,

Ca fonctionne très bien. J'ai simplement remplacé dans

'Vide la plage de copie
LigFin = FL1.Range("B65536").End(xlUp).Row + 1
FL1.Range(Cells(24, 2), Cells(LigFin, 7)).ClearContents

.delete par .ClearContents

pour éviter que les cellules se décalent vers la gauche (mon tableau s'insère dans un plus grand tableau). J'ai aussi ajouté un code pour que la base de donnée soit à nouveau triée. Mais sinon, nickel, merci pour ton aide !!

Du coup, j'en arrive à une deuxième phase sur laquelle j'ai un travaillé mais qui me pose problème :

J'ai ajouté à droite de la liste de produits des case à cocher. La première macro (celle que tu m'as envoyée) permet d'afficher tous les produits de catégorie X dispos. Je veux en créer une deuxième qui permette à l'utilisateur de sélectionner les produits qui l'intéressent, avec un maximum de 5. Pour ca, je pensais utiliser une case à cocher, en créant une macro pour que lorsqu'on coche une case, le nom du produit apparaisse dans un tableau à cinq lignes max (les cinq produits max), et si le tableau est déjà rempli, alors un message d'erreur apparaît ("vous ne pouvez sélectionner que 5 produits). Le problème, c'est que je n'arrive pas à "lier" la case à cocher avec une ligne donnée. Les cases ont l'air de "flotter", en quelque sorte ! Voici le code que j'avais pensé appliquer :

Sub Clic_case()
Dim Nom_produit As Long, i As Integer
Dim FL1 As Worksheet
Set FL1 = Sheets("Infos produit")
Sheets("Infos produit").Select
'Copie titre dans case
For i = 23 To 38
If Cells(i, 27) = "" Then
'copie le titre du film
Cells(i,27).Copy FL1.Cells(???)
End If
End Sub

Le fichier est ici : https://www.cjoint.com/?bisXrwgbSF

Comme tu t'en doutes, les ??? arrivent là où je bloque.

Si tu as des idées, je suis preneur. C'est amusant, je me rends compte maintenant que mes cours de Turbopascal ont finalement servi à quelque chose :-). Pas exactement pareil, mais pas loin non plus.

A+ et merci
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 janv. 2009 à 08:03
Question : Les 5 produits sont-il tous de la même catégorie ou il peuvent êtres de catégorie différente ?
0
Les 5 produits sont de même catégorie. L'outil permet d'une part d'avoir des statistiques sur l'ensemble des produits d'une catégorie donnée, et des infos détaillées sur 5 produits choisis par l'utilisateur... d'où les cases à cocher et le code que j'aimerais mettre en place.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 janv. 2009 à 09:51
Voir si ça te convient.
https://www.cjoint.com/?bjkMevqJAK
A+
Edit:
Comme j'ai pas attendu ta réponse, la sélection sur différent produit est disponnible mais je ne crois pas que ça dérangerra.
0
Hello
Je suis sur mac toute la journée, et comme par hasard, pas moyen de faire marcher (même avec OpenOffice)... J'ai quand même regardé le code et ce que tu as appliqué comme codes, ça m'a l'air super ! Je vais essayer de faire un test sur PC demain, et je te tiens au courant.
Merci !
0