Inscrire les données dans 2 tableaux sous certaines conditions
J'aimerais que lorsque j'entre un nouveau personnel dans mon tableau, si ce personnel fait partie d'une certaine catégorie les données de ce personnel s'inscrive dans un second tableau Voici ce que j'ai tenté en rajoutant dans ma procédure de base qui fonctionne bien wsPermis, tblPermis,derlignePermis.
Est ce que ce
If UserForm2.ComboBoxCELL.Value Like "Maintenance" Then
tblPermis.ListRows.Add derlignepermis
tblPermis.ListRows(derlignepermis).Range(1, 1).Value = selectedFRUKn'a aucun sens
Dim ws As Worksheet
Dim wsPermis As Worksheet
Dim tbl As ListObject
Dim tblPermis As ListObject
Dim derligne As Long
Dim derlignepermis As Long
Dim selectedFRUK As String
Dim FSO As Object
Dim DossierParent As Object
Dim CheminReseau As String
Dim Confirmation As VbMsgBoxResult
Dim Nomdossier As String
Dim FeuilleDonnees As Worksheet
Dim DerniereLigne As Long
Dim lastRow As Long
Dim lastRowPermis As Long
Dim rng As Range
Dim i As Long
Dim isDuplicateInCol3 As Boolean
Dim isDuplicateInCol4 As Boolean
' spécifier l'emplacement du tableau
Set ws = ThisWorkbook.Sheets("Personnel")
Set wsPermis = ThisWorkbook.Sheets("Permis")
' verifier existence tableau
On Error Resume Next
Set tbl = ws.ListObjects("Tableau4")
Set tblPermis = wsPermis.ListObjects("tableau1")
On Error GoTo 0
' Trouver la dernière ligne utilisée dans le tableau Personnel
derligne = tbl.ListRows.Count + 1
derlignepermis = tblPermis.ListRows.Count + 1
'Procedure pour eviter les doublons
'********************
' ENREGISTREMENT DES DONNEES
' Vérifier la sélection de FR/UK pour ne pas oublier le distingo
If OptionButtonFR.Value = True Then
selectedFRGER = UserForm2.OptionButtonFR.Caption
ElseIf OptionButtonGER.Value = True Then
selectedFRGER = UserForm2.OptionButtonGER.Caption
Else
MsgBox "Select FR or GER"
Exit Sub
End If
' saisie des données dans le tableau
tbl.ListRows.Add derligne
tbl.ListRows(derligne).Range(1, 1).Value = selectedFRUK
tbl.ListRows(derligne).Range(1, 3).Value = UserForm2.TextBoxNAME
tbl.ListRows(derligne).Range(1, 4).Value = UserForm2.TextBoxFIRSTNAME
tbl.ListRows(derligne).Range(1, 5).Value = UserForm2.TextBoxDate
tbl.ListRows(derligne).Range(1, 6).Value = UserForm2.TextBoxPlace
tbl.ListRows(derligne).Range(1, 9).Value = UserForm2.TextBoxArrival
tbl.ListRows(derligne).Range(1, 10).Value = UserForm2.ComboBoxSpe
tbl.ListRows(derligne).Range(1, 11).Value = UserForm2.ComboBoxCELL
If UserForm2.ComboBoxCELL.Value Like "Maintenance" Then
tblPermis.ListRows.Add derlignepermis
tblPermis.ListRows(derlignepermis).Range(1, 1).Value = selectedFRUK
tblPermis.ListRows(derlignepermis).Range(1, 3).Value = UserForm2.TextBoxNAME
tblPermis.ListRows(derlignepermis).Range(1, 4).Value = UserForm2.TextBoxFIRSTNAME
tblPermis.ListRows(derlignepermis).Range(1, 5).Value = UserForm2.ComboBoxSpe
tblPermis.ListRows(derlignepermis).Range(1, 6).Value = UserForm2.ComboBoxCELL
End If
' Vider les cases pour enregistrer un nouveau personnel directement à la suite
'**********
'Message pour confirmer l'enregistrement
MsgBox " GREAT SUCCESS "
Else
' msgbox en cas d'erreur de saisie
MsgBox " Il manque le nom ou le prenom ", vbExclamation, " Erreur de saisie " ' fin de vérification si il manque un nom ou un prenom
Exit Sub
End IfSi cela peut aider à où je veux en venir.
Quand je créer un nouveau personnel, je veux en premier lieux que çà l'inscrive dans mon tableau de ma feuille Personnel, pour l'administration.
Et en fonction de chaque poste de personnel celà l'inscrive dans un autre tableau dans lequel il y aura des données en rapport, par exemple un personnel inscrit à un poste commençant par " Maintenance " serait inscrit, en plus du tableau Pesonnel dans un tableau sur une autre feuille où il y aurait des chose en rapport à la maintenance; un personnel dont le poste commencerait par " Admin " atterrirait dans un tableau sur une feuille " Admin "
Des idées pour mon problème ?
Bonjour
Tu devrais joindre ton fichier, au besoin anonymisé...
Bye !
En fait c'est la condition " Maintenance"
If UserForm2.ComboBoxCELL.Value Like "Maintenance" Then
qui ne fonctionne pas si je l'enlève cela inscrit dans le tableau
J'ai peut être un début de solution cependant :
-j'ai changé pour reprendre directement la valeur de la cellule plutot que la combobox
-j'ai changé " Maintenance" par " Chef Maintenance " qui est une des possibilités qui contient " Maintenance "
et là çà m'inscrit dans mon second tableau
If tbl.ListRows(derligne).Range(1, 11).Value like " Chef Maintenance " Then
En fait ce que je cherche c'est que ma condition soit bonne pour toutes les possibilités qui contiennent " Maintenance "