Gestion de vestiaires : filtrer des tableaux à partir usf

Bonjour à tous,

Tout d'abord , le contexte : je suis en stage dans une entreprise qui me demande de créer un fichier pour gérer les vestiaires et les vetements de travail . Mais voila : je suis debutante en vba : j'ai seulement quelques connaisances apprises durant les rares heures d'informatique que j'ai eu a l'école.

J'ai donc commencé à créer un fichier excel mais depuis une semaine : je n'avance pas ! Je bloque sur pleins de petites choses

Ensuite,mon probleme en ce moment : J'ai un Userform qui me permet de saisir un nouveau salarié , dans ce userform j'ai notamment une combobox : Taille . Je souhaiterais que quand je clique sur valider, mon utilisateur soit rentré dans un tableau ( Ouf , ça ça marche !! ) et qu'excel m'affiche les casiers disponibles et de la bonne taille .

Je cherche deja ceux de la bonne taille ( ça sera un bon debut ^^ )

Donc en bref , je cherche à filtrer un tableau avec en colonnes :

N°casier / Taille /Responsable / Utilisateur /Code casier /Statut /Historique

Selon la valeur d'un combobox.

Mon code " essai 1" :

'Dim LastLig As Long

'Application.ScreenUpdating = False
'On efface les données de la feuille résultat
'Worksheets("Resultat").UsedRange.ClearContents
'With Worksheets("Vetements de travail")
'    'On supprime l'éventuel filtre automatique
'    .AutoFilterMode = False
'    'Ligne de la dernière cellule remplie de la colonne A
'    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
'    With .Range("A1:B" & LastLig)
'        'Si un item est choisi dans ComboBox1 alors on filtre la colonne B sur cet item
'       If Me.ComboBox_Taille.ListIndex > -1 Then
'      '.AutoFilter Field:=2, Criteria1:=Me.ComboBox_Taille.Value ' Filtre ne fonctionne pas !!
'                Worksheets("Vetements de travail").ListObjects("Tableau1").Range.AutoFilter Field:=2, Criteria1:=ComboBox_Taille.Value
'                'On copie les ligne résultats du filtre vers A1 de feuille Resultat
'        .SpecialCells(xlCellTypeVisible).Copy Worksheets("Resultat").Range("A1")
'    End With
'    'On supprime notre filtre automatique
 ' .AutoFilterMode = False
'End With
'On décharge l'usf
'Unload Me
'End Sub

Mon deuxieme essai :

 'Private Sub UserForm1_Initialize()
  ' On Error Resume Next
  ' ActiveSheet.ShowAllData
  ' Set MonDico = CreateObject("Scripting.Dictionary")
  ' For Each c In Range([a2], [A65000].End(xlUp))
  '   If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
  ' Next c
  ' Me.ComboBox_Taille.List = MonDico.items
   'Me.ComboBox1.ListIndex = 0
' End Sub

'Private Sub ComboBox_Taille_Change()
'    [TailleVet].AutoFilter Field:=2, Criteria1:=Me.ComboBox_Taille
' End Sub

Mon premier code : ne filtre pas ....

Mon deuxieme code : j'ai un message d'erreur : Erreur 1004 : La methode autofilter de la classe range a échoué.

Si quelqu'un peut me sortir de cette impasse ca serait super ! Merci d'avance !

PS1 : Désolée pour les fautes d'orthographe , j'essaye de faire un effort pourtant !

PS2 : Je suis nouvelle sur le forum et debutante en VBA : soyez indulgent

Bonjour Opale, bonjour le forum,

Ce code a l'air, ma foi, fort bien écrit pour quelqu'un qui se dit débutante... Mais si tu pouvais joindre un fichier exemple (l'original ou un exemple avec la même structure et quelques données anonymes), ça serait tellement plus facile pour t'aider...

Bonjour

Dans 'Private Sub UserForm1_Initialize(), il ne faut pas mettre le numéro de l'user mais comme ceci

 Private Sub UserForm_Initialize()

le reste fonctionne

A voir

203opale.xlsm (21.60 Ko)

Bonjour ThauThème,

Merci de repondre aussi vite !

J'essaye de joindre un document j'espere que ca va marcher ! ( et que j'ai rien oublié de confidentiel dedans )


Bonjour BOB71AU,

Merci !

J'ai modifié (et j'ai corrigé une erreur du nom de comboBox) mais j'ai encore le meme message d'erreur


BOB71Au : Oups j'avais pas vu le fichier joint ! Je regarde ca de suite !


J'ai oublié de preciser : le fichier que j'ai joint est l'original que j'ai vidé mais je n'ai pas pris le temps de "trier" le code , donc il y a peut etre des commentaires et des remarques qui sont pour moi ... Bref mon code c'est un peu le bazar

Re

Tu ne peux pas avoir deux fois initialyse pour un même userform

tu dois également travailler sur la feuille affichée avec des filtres automatiques

Regarde le fichier

Wahou !! Ca fonctionnne parfaitement ! Merci beaucoup Bob !

Est ce que je peux encore vous demander un peu d'aide pour la suite de mon projet ?

Je ne sais pas s'il faut creer un nouveau sujet ou si je peux poser mes questions ici .... Si quelqu'un peut m'informer svp ca serait gentil

Je ferais un autre sujet si besoin mais voila mes questions :

- Ma feuille "resultat" n'est donc pas utilisée, on est d'accord ?

- Je ne comprends pas pourquoi , quand je clique sur valider : Mon tableau filtré s'efface ...

- Ce fichier sera utilisé par tous les services de la société, il doit donc etre simple et rapide à utiliser : mon idee de depart etait de mettre le resultat de mon filtre dans un userform/listbox ou autre , ce qui permettrait à l'utilisateur de cocher le casier qu'il veut.Et ainsi automatiquement la feuille "vetements de travail" serait rempli et le casier passerait de dispo a utilisé .... Ma question est donc : est ce reellement possible ou j'en demande un peu trop a notre ami excel ?

- DErniere question mais pas la moindre : comment faire pour ne prendre que les casiers dispo, je pensais faire : Pour la taille que l'on a choisi si la valeur de la colonne D est vide alors on l'affiche sinon non.

Mais ca me parait un peu "bancal" comme truc donc si quelqu'un a une meilleur idee je suis preneuse !!

Merci d'avance !

Bonjour

Pas de soucis, le forum sert à ça. Que ce soit moi ou une autre personne, le mot d'ordre est l'entraide

Merci Bob !


Après reflexion , j'ai reussi a repondre seule à certaines de mes questions et j'en ai trouvé d'autres ...

-Quand je clique sur valider : Mon tableau filtré s'efface : d'ou ma question suivante :

- Mon idee de depart etait de mettre le resultat de mon filtre dans un userform/listbox ou autre .Afin que l'utilisateur puisse cocher le casier qu'il veut. Et ainsi automatiquement la feuille "vetements de travail" serait rempli et le casier passerait de dispo a utilisé .... Est-ce possible ou je suis trop exigeante ?

Comment faire pour ne prendre que les casiers dispo, je pensais faire : Pour la taille que l'on a choisi si la valeur de la colonne D est vide alors on l'affiche sinon non. Mais ca me parait un peu "bancal" comme truc donc si quelqu'un a une meilleur idee je suis preneuse !! Est il possible de filtrer une deuxieme fois un tableau filtré ?

- Je vais devoir faire une autre "recherche" en utilisant un filtre : mais cette fois avec plus de parametres. En effet ,pour rechercher des vestaires . Il faut qu'il soit disponible et qu'il soit filtré en fonction de la civilité : si Mlle ou Mme vestiaire des dames ( entre 44 et 97 ) Sinon ce sont les vestiaires hommes et donc pour la civilité M . Est ce possible de filtrer selon autant de parametres ?

Merci d'avance !

Re

Question:

IL y a 111 vestiaires mais combiens de casiers parce que je ne vois pas la relation?

En effet je suis pas tres claire , desolee !

Il y a 100 vestiaires et 92 casiers.

En fait chaque salarié lorsqu'il rentre a un vestiaire qui lui est attribué pour qu'il pose ces affaires perso.

Et egalement un casier qui contient des vetements de travail.

Donc pour chaque personne il faut un vestiaire choisi selon si dispo ou non et si selon homme ou femme.

Et un casier choisi selon dispo ou non et la taille.

J'espere etre plus clair,

Merci !

Re

ok je continu

Super ! Merci beaucoup pour l'aide !!

Ps: je ne sais pas comment supprimer l'autre sujet

Bonjour opale

J'ai modifié la macro pour les boucles des vestiaires

' les femmes ont les vestiaires 44 à 78 et 88 à 98

'Et les hommes :1 à 43 + 79 a 86 + 100 à 111

Que pense tu de cette idées?

Cela te convient-il?

Question:

Les casiers ont toujours le même contenu en terme de taille

Par ce que je pensais: au lieu de faire un filtre sur la feuille Vetements de travail pour voir les casiers en fonction des tailles, c'était de mettre un autre combo sous la combotaille afin de sélectionner le casier disponible

la macro de suppression est modifiée

test le fichier actuel et dit moi ce que tu en pense?

Bonjour Bob !

Quelle rapidité C'est parfait !! Genial !!!

Je ne suis pas sure de comprendre la question

Mais en gros, le contenu des casiers est ( normalement) le meme dans chaque casier( : 7 polos, 4 pantalons et 1 veste pour etre precise :p )

D'apres ce que j'ai compris de votre idee : au lieu de filtrer, il y aurait directement une combobox avec les casiers dispo qui s'afficherait dessous : comme les vestiaires ?

Si c'est ca, oui ca me convient parfaitement !!

Le jour ou j'arrive a faire le quart de la moitié de ce que vous faites : je m'estimerais plus debutante en vba

Encore merci !!

Re bonjour

l'user 7 et 2 fonctionne sauf pour la dispo des vestiaires

J'ai du mal à poster mes messages donc pas d'inquiétudes, j'espère que Sébastien va trouver le chimilimili


rere

que veux dire

Je ne sais pas (du tout ) comment faire pour faire fonctionner mon affichage par plan

c'est quoi le plan?

MErci !!! !!!

Ce sont les onglets femmes et hommes , au lieu d'avoir des tableaux , je voulais mettre des plans des vestiaires ....

Si quelqu'un veut s'inspirer du fichier ci dessus de bob :

J'avais fais une erreur en nommant la colonne "prenom" de l'onglet database , la colonne se nomme "C" et non pas "CC" ... C'est tout bete mais c'est pour ca que la modification prenom ne fonctionnait pas .....

Voila si ca peut servir !


Pour que la dispo des vestiaires soit moins compliquée a faire :

Si la combo vestiaire devient une combo a deux colonnes : on voit le numero de vestiaire et le nom a coté .Si pas de nom : dispo et l'utilisateur clique dessus ... Moins automatique mais ca fonctionnerait pas si mal, non ?

Re

A tu les plans de disponible?

Si oui post les

Autre petit soucis : actuellement on prend les noms et les n° de vestiaire dans database , c'est ca ? Sauf que lorsqu'on supprime une ligne , on supprime egalement le n° de vestiaire et casier et donc il ne sera plus proposé.....

Faut il prendre les noms et nn° dans un autre onglet ..... Et donc enregistré les noms en double dans un autre onglet ?

Je ne sais pas si je suis tres clair .....

Par rapport a mon message precedent on verra pas si le casier est dispo ou Hs .... Donc pas forcement ideal mon idee


Ils se trouvent dans les onglets "femmes" et "homme" , c'est ca que j'appele un plan :

img

Re

bien au contraire

Je fais une liste de 111 vestiaires puis je regarde ceux qui sont occupés dans la colonne H de database et si il sont présents, je les enlèves de la liste des 110 donc il me reste les libres

Rechercher des sujets similaires à "gestion vestiaires filtrer tableaux partir usf"