Bonjour,
Je reprends depuis le début, je pense que mettre juste les fichiers sans expliquer un peu mieux mon problème n'est pas très constructif :
Donc mon premier souci est :
J'ai un classeur général qui est représenté comme ceci :
Lorsque je suis dans la première feuille et que dans la colonne D (contrôleur) je sélectionne des initiales, la ligne se coupe et colle automatiquement dans la feuille correspondant aux initiales du contrôleur présente dans le classeur.
Cela se fait via le code suivant :
Ce que je voudrais, c'est qu'en plus de se couper/coller, la ligne se copie également dans le fichier du contrôleur qui si situe dans un autre sous dossier et dans la feuille correspondante au nom du tableau général (ici DAF en l'occurence)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub Worksheet_Change(ByVal Target As Range) Dim LgnS As Range, TblC As Range, lnS%, lnC%, k% If Target.Count > 1 Or Target.Row < 2 Or Target.Column <> 4 And Target.Column <> 17 Then Exit Sub 'si la ligne est 1 on en tient pas compte, ni pour colonne 17 ou 4 If Target.Value = "Cloturé" Then lnS = Target.Row - 1 Set LgnS = Me.ListObjects(1).DataBodyRange.Rows(lnS) k = LgnS.Columns.Count With Worksheets("Dossiers classés").ListObjects(1) If .Range.Cells(2, 1) <> "" Then Set TblC = .DataBodyRange: lnC = TblC.Rows.Count + 1 Else Set TblC = .Range.Rows(2): lnC = 1 End If End With TblC.Cells(lnC, 1).Resize(, k).Value = LgnS.Value LgnS.EntireRow.Delete ElseIf Target.Value = "BDV" Then lnS = Target.Row - 1 Set LgnS = Me.ListObjects(1).DataBodyRange.Rows(lnS) k = LgnS.Columns.Count With Worksheets("BDV").ListObjects(1) If .Range.Cells(2, 1) <> "" Then Set TblC = .DataBodyRange: lnC = TblC.Rows.Count + 1 Else Set TblC = .Range.Rows(2): lnC = 1 End If End With TblC.Cells(lnC, 1).Resize(, k).Value = LgnS.Value LgnS.EntireRow.Delete 'et les elseif s'enchainent avec chaque initiale ...
l'arborescence est celle-ci :
Tableaux suivi
- controle (qui reprend tous les fichiers individuels)
- tableaux generaux (qui reprends deux ou trois tableaux génériques)
j'avoue que je cale un peu sur la façon de procéder pour faire le copier/coller sur un autre classeur en plus du couper/coller sur le classeur initial. Je ne demande pas forcément une réponse toute faite, mais une piste ou une ébauche de solution sur la façon de procéder![]()
De plus il est possible que le tableau contrôle soit déjà ouvert par un autre utilisateur, ce qui me complique un peu plus la tâche je dois bien avouer :s
Merci déjà pour le temps passé à lire,
Partager