avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
3 déc. 2006 à 01:42
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
3 déc. 2006 à 15:43
Bonjour à tous,
Je voudrais éffectuer sur mon projet une liste de personnes qui n'ont pas eu de formation. Je vous explique comment je vois ça.
Dans mon document excel, j'ai un onglet Chauffeurs dont la colone A contient tous les noms de chauffeur de camion.
Dans l'onglet Formation des chauffeurs, dans la colone A, se trouve tous les noms de chauffeurs qui ont eu une formation.
Je voudrais faire apparaitre un message en VBA me disant qui n'a pas eu de
formation parmis les chauffeurs (en tenant compte que tous les chauffeurs sont dans l'onglet Chauffeur), soit par un message
d'avertissement ou quelque chose de semblable.
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 3 déc. 2006 à 01:48
Salut,
Dans la colone B il y à le type de formation, la colone C = la date de formation et D= la date de la prochaine formation. Je peux toujours modifier mon tableau aussi.
For i = 7 To DerLi1 '**
modif
sResultat = False
sName = Cells(i, 1).Text
For j = 29 To DerLi2 '**
modif
If Sheets("Formation").Cells(j, 1).Text = sName Then _
sResultat = True: Exit For
Next j
Cells(i, 12).Value = CStr(sResultat)
Next i
sName = vbNullString
For i = 7 To DerLi1 '**
modif
If Cells(i, 12).Value = False Then sName = sName & Cells(i, 1).Value &
vbCrLf
Next i
MsgBox sName
End Sub
Function PLVide(ByVal colonne As Byte) As
Integer
'** modif
PLVide = Columns(colonne).Find("", Cells(65536, colonne), , , xlByRows, xlPrevious).Row
End Function
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 déc. 2006 à 03:17
Heu j'ai cherché, mais je comprends plus rien,
Peux tu donner tout les détails, je n'arrive pas à m'imaginer le truc.
Rapport des noms A1 A29, B29:B derniere ligne, et comment je fais pour savoir quelle formation il doit faire.
J'ai essayé de faire un code mais tout se mélange.
Si tu peux faire aussi une impécr de l'onglet, que tu laisses sur un serveur, ce serait pas mal, sinon, tant pis.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 3 déc. 2006 à 03:28
Bien sure,
Dans l'onglet Formation, Sur les cellules A1 à A22, ce trouve le nom de chaques formations qu'ils doivent suivre.
À partir de A29 en déscendant, ce trouve le nom de chaque employé ayant recu une formation. Dans la cellule B29 en déscendant, se trouve le nom de la formation que l'employé à recu. Exemple Sur la ligne 29 de la colone A se trouve Mr.X et toujours sur la ligne 29 mais sur la colone B se trouve la formation qu'il a recu. Sur la colone C se trouve la date de la formation et sur la colone D se trouve la date du renouvellement de la formation.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 déc. 2006 à 03:43
Ok, alors j'abuse avec une dernière question.
Donc de A1 à A22, ce sont les formations à suivre. Donc il y en a 22.
Je reprends ton exemple.
Mr X, (cellule A29), a fait la Formation F (cellule B29).
Est ce qu'après la Formation F (cellule A10, par exemple), c'est la Formation de la ligne suivante ? (donc A11, pour l'exemple)
En fait c'est ça qui me manque, et après c'est bon.
Et si je te mets le résultat dans la colonne E, c'est bon ?
Merci
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 3 déc. 2006 à 03:51
Si je comprent bien ta question, Il n'y a pas vraiment d'ordre dans les formations.
Les employés sont enregistés dans se tableau au fure et à mesure qu'ils ont une formations.
Donc dans la cellule A29 peut se trouver Mr.X avec la formation F dans la cellule B29.
Et dans la cellule A43 se retrouve encore Mr.X avec une autre formation.
Les formations ne sont pas données dans l'ordre qu'ils sont écritent dans les cellules A1 à A22.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 déc. 2006 à 15:22
Salut,
pour que les autres puissent suivre, j'ai bien reçu le fichier.
J'ai créé un UserForm, contenant un ComboBox (nommé cboListe), et 2 ListBoxes (nommées lstFait & lstAFaire).
Voici le code :
Private Sub cboListe_Change()
Dim DerLi As Integer
Dim i As Integer
Dim j As Integer
Dim bVerif As Boolean
lstFait.Clear: lstAFaire.Clear
DerLi = PLVide(1) - 1
For i = 29 To DerLi
If Cells(i, 1).Value = cboListe.Text Then lstFait.AddItem CStr(Cells(i, 2).Value)
Next i
For i = 2 To 22
For j = 0 To lstFait.ListCount - 1
If Cells(i, 1).Value = lstFait.List(j) Then bVerif = True: Exit For
Next j
If bVerif = False Then Me.lstAFaire.AddItem CStr(Cells(i, 1).Value) Else bVerif = False
Next i
End Sub
Private Sub UserForm_Initialize()
Dim DerLi As Integer
Sheets("chauffeurs").Select
DerLi = PLVide(1) - 1
Me.cboListe.RowSource = "chauffeurs!A7:A" & DerLi
Sheets("Formation employé").Select
End Sub