Copier les données d'un tableau dans un endroit bien précis
Bonjour tout le monde,
SVP si quelqu'un a une idée sur cela:
Dans le 1er tableau, la liste des ouvriers d'une entreprise, leurs numéro, nom& prénom, le groupe ou ils appartiennent et le temps de leur activité soit matin, après midi ou soir. Ce qu'on désire , c'est que quand on saisit ces informations dans le tableau 1, elles doivent être triées et bien placées dans le Tableau 2.
Bonjour Med_Kabbaj bonjour le forum,
Quand et comment seraient reportées les données ?
• Sur ordre (via un bouton de type CommandButton) ?
• à la fin de l'édition d'une ligne (dans le tableau 1) ?
Comment vont être envoyées les données ?
• en effaçant les anciennes données (si envoie sur ordre) ?
• en dessous des anciennes ?
Comment fait-t-on quand un ilot du tableau 2 est plein ?
Dans l'attente d'une réponse pour commencer à travailler sur une solution...
l'immatriculation et le nom sont figés, ce qui change c'est l'ilot, et l'équipe.( car ils sont sous forme de listes déroulantes)
par exmple:
dans la figure suivante:
1erement je sélectionne l'ilot,
apres je sélectionne l'équipe:
après avoir fait ces deux étapes, l'immatriculation, le nom, doivent être positionnée dans l'endroit précis, l'ilot & équipe;
je vais te montrer une petite démonstration:
par exple : j'ai affecté cette personne à cet ilot, et à cet équipe:
dans le 2ème tableau, je dois le trouver ici:
tu vois, il est positionné dans l'ilot Y, et dans l'équipe aprèsmidi.
Cordialement.
Bonjour Med_kabbaj, bonjour le forum
Arf ! dans ton exemple tu affectes à 2612 l'ilot X dans l'équipe du matin et tu reportes dans l'ilot Y de l'après-midi ?!... Mais bon je crois avoir compris le principe...
En revanche, tu n'as pas répondu a ma dernière question : Que fait-on quand un ilot du tableau est plein ?
[Édition]
Je pense qu'il doit y avoir beaucoup plus simple (je maîtrise mal les "tableaux") mais ça à l'air de fonctionner :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DEST As Range
If Application.Intersect(Target, Range("tblpersonnel[Equipe]")) Is Nothing Then Exit Sub
If Target.Offset(0, -1) <> "" Then
Select Case Target.Offset(0, -1).Value
Case "X"
Select Case Target.Value
Case "Matin"
Set DEST = Sheets("TAB2").Range("Tableau26")(1)
Case "Normal"
Set DEST = Sheets("TAB2").Range("Tableau26")(4)
Case "Après-midi"
Set DEST = Sheets("TAB2").Range("Tableau26")(7)
Case "Nuit"
Set DEST = Sheets("TAB2").Range("Tableau26")(10)
End Select
Case "Y"
Select Case Target.Value
Case "Matin"
Set DEST = Sheets("TAB2").Range("Tableau2628")(1)
Case "Normal"
Set DEST = Sheets("TAB2").Range("Tableau2628")(4)
Case "Après-midi"
Set DEST = Sheets("TAB2").Range("Tableau2628")(7)
Case "Nuit"
Set DEST = Sheets("TAB2").Range("Tableau2628")(10)
End Select
Case "Z"
Select Case Target.Value
Case "Matin"
Set DEST = Sheets("TAB2").Range("Tableau262829")(1)
Case "Normal"
Set DEST = Sheets("TAB2").Range("Tableau262829")(4)
Case "Après-midi"
Set DEST = Sheets("TAB2").Range("Tableau262829")(7)
Case "Nuit"
Set DEST = Sheets("TAB2").Range("Tableau262829")(10)
End Select
Case "T"
Select Case Target.Value
Case "Matin"
Set DEST = Sheets("TAB2").Range("Tableau26282930")(1)
Case "Normal"
Set DEST = Sheets("TAB2").Range("Tableau26282930")(4)
Case "Après-midi"
Set DEST = Sheets("TAB2").Range("Tableau26282930")(7)
Case "Nuit"
Set DEST = Sheets("TAB2").Range("Tableau26282930")(10)
End Select
End Select
End If
Do While DEST.Value <> ""
Set DEST = DEST.Offset(1, 0)
Loop
DEST.Value = Target.Offset(0, -3).Value
DEST.Offset(0, 1).Value = Target.Offset(0, -2).Value
End Sub