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.

23question.xlsx (23.97 Ko)

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,

sans titre

apres je sélectionne l'équipe:

zdez

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:

jhbkjhkb

dans le 2ème tableau, je dois le trouver ici:

kjdjhjlhk

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

merci bcp

Rechercher des sujets similaires à "copier donnees tableau endroit bien precis"