Coup de main pour finir mon prog

aeque

XLDnaute Occasionnel
Bonjour le fofo,

Une fois de plus j'ai besoin de vos lumières!!

Voila je suis en train de monter un tableau de suivi de formation de personnel. Ce tableau devra contenir plus de 800 pers. Donc il est indispensable pour moi de pouvoir diviser ce nombre de personne pour l'enregistrement des formations.

Pour se faire j'ai utilisé les filtres automatiques pour sélectionner les personnes selon le camp et le département, là pas de soucis (j'ai eu un coup de main je l'avoue)

Ensuite la liste de ces personnes doit apparaitre dans une list box afin d'être sélectionner, là non plus aucun soucis

Par contre je souhaite que les personnes sélectionner apparaissent dans la colonne correspondante à la formation (ici first aid) là non plus pas de soucis je peux faire.
Le soucis est de savoir comment faire pour avoir enregistrer un autre département dans la même formation

exp: 5 personnes du camp principal, section catering ont suivi la formation first aid du 12/10/2010
5 personnes du camp principal, section,maintenace ont suivi la formation first aid du 12/10/2010
5 personnes du camp chinois, section housekeeping ont suivi la formation first aid du 12/10/2010

Comment faire pour avoir des croix en face des personnes correspondantes dans la colonne formation tout en sachant que les personnes sont sélectionnées par camp et département

Merci bcp j'attends vos conseils
 

Pièces jointes

  • test.xlsm
    30.8 KB · Affichages: 49
  • test.xlsm
    30.8 KB · Affichages: 52
  • test.xlsm
    30.8 KB · Affichages: 48
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Coup de main pour finir mon prog

Re :),
C'est la ligne
Code:
Cellule.Offset(0, Range("XFD1").End(xlToLeft).Column - 2) = "X"
qu'il faut changer, mais tu fais une erreur de raisonnement (si ton idée de départ est toujours valable), il ne faut pas rajouter une colonne à l'ouverture de l'USF, mais remplacer ton TextBox par un ComboBox et le charger avec les formations et dates disponibles. Si tu choisi une formation existante, Find te permetra de trouver la colonne et de la modifier, si tu en mets une nouvelle, là tu crée ta nouvelle colonne :rolleyes:.
Bon courage :cool:
PS : Mon code commenté, qui, tu verras, n'est pas si complexe :p...
VB:
Private Sub CommandButton1_Click()
Dim I As Integer, Cellule As Range
With ListBox1
' En se basant sur ListBox1 (appelé directement avec un . ensuite)
For I = 0 To .ListCount - 1
' Pour I = 0 jusqu'àu nombre d'éléments de ListBox1 (-1 car les indices commencent à 0)
If .Selected(I) Then
' Si l'indice est sélectionné
Set Cellule = Sheets("Training tracking").Columns(2).Find(.List(I))
' Cellule est le 1er résultat de la recherche du nom
Recommence:
' Permet de revenir là si le couple Nom/Prénom n'est pas bon
If Not Cellule.Offset(0, 1) = .List(I, 1) Then
' Si le prénom n'est pas le bon
Set Cellule = Sheets("Training tracking").Columns(2).FindNext(Cellule)
' Chercher le nom suivant
GoTo Recommence
' Retourne à Recommence
End If
' Fin du test donc Cellule est le bon couple Nom/Prénom
Cellule.Offset(0, Range("XFD1").End(xlToLeft).Column - 2) = "X"
' En face du prénom, je me déplace sur la bonne colonne
End If
' Fin du test si l'indice était sélectionné
Next I
' Indice suivant
End With
' Fin de se baser sur ListBox1
trainee.Hide
' Cacher l'USF, Unload Me serait d'ailleurs plus logique
End Sub
VB:
Private Sub UserForm_Initialize()
Dim I As Integer, J As Integer
ListBox1.ColumnCount = 2
' Déclaration de 2 colonne pour la ListBox
J = 0
' Initialisation de l'indice à 0
With Sheets("Training tracking")
' En se basant sur la feuille "Training...
For I = 4 To .Range("A65536").End(xlUp).Row
' Pour I = 4 jusqu'à la dernière ligne
If .Cells(I, 4) = start.ComboBox1 And .Cells(I, 5) = start.ComboBox2 Then
' Si le Camp est bon et le Département aussi
ListBox1.AddItem .Cells(I, 2)
' J'ajoute une ligne avec le nom
ListBox1.List(J, 1) = .Cells(I, 3)
' Je mets le prénom dans la 2ème colonne
J = J + 1
' J'incrémente l'indice pour être sur la ligne suivante pour le prochain prénom
End If
' Fin du test
Next I
End With
End Sub
 

aeque

XLDnaute Occasionnel
Re : Coup de main pour finir mon prog

Re bonjour le fil

Je crois avoir été un peu trop rapide ....

en effet ca marche nikel pour une insertion d'une colonne mais apres dès que je veux en insérer une autre ca ne marche plus.....

Honnêtement je sèche grave!!!


Merci pour le coup de main et par hasard si tu es proche de Toulouse JNP , je paie te un verre au moins lol
 

Pièces jointes

  • Test.xlsm
    38.9 KB · Affichages: 26
  • Test.xlsm
    38.9 KB · Affichages: 31
  • Test.xlsm
    38.9 KB · Affichages: 38

JNP

XLDnaute Barbatruc
Re : Coup de main pour finir mon prog

Re :),
Comme indiqué dans mon code commenté, utiliser Hide n'est pas la bonne solution :rolleyes:...
Hide cache l'USF mais ne le vide pas de ses données :p... Je pense que c'est cette difficulté qui te posait des problèmes. J'ai déplacé ou supprimé les Hide et mis des Unload la où il faut, et ton fichier fait bien des croix dans la colonne supplémentaire ajoutée ;)...
Par contre, comme indiqué dans mon #16, et contrairement à ce que tu souhaitais, tu ne peux pas revenir sur une formation déjà rentrée, pour cela, il faudrait que tu gères très diféremment :rolleyes:...
Bon courage :cool:
 

Pièces jointes

  • Test.xlsm
    36.6 KB · Affichages: 73
  • Test.xlsm
    36.6 KB · Affichages: 67
  • Test.xlsm
    36.6 KB · Affichages: 66

Discussions similaires

Statistiques des forums

Discussions
314 155
Messages
2 106 459
Membres
109 590
dernier inscrit
Paparazite