Bonjour, je suis en train de modifier un programme qui assemble les informations d'une semaine de travail. Selon les sélections faites, la feuille doit se remplir tout seul. Tout allait bien lorsque les informations étaient sur une seule ligne par jour. Mais là, une journée peut prendre jusqu'à quatre lignes. Alors, plutôt que de faire une recherche verticale indirecte afin d'aller chercher les informations de chaque journée et de les recopier sur la feuille, je tente d'utiliser une plage préalablement nommé pour la copier sur la feuille de semaine travail. Mon ancien code fonctionnait à merveille, mais le nouveau, lui me donne aucun résultat. Pourriez-vous m'aider à y voir plus claire?
Encore merci d'avance pour votre aide!
Ancien code:Nouveau code:
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 Option Compare Text Private Sub Worksheet_Change(ByVal Target As Range) 'Dimanche If Target.Count > 1 Then Exit Sub If Not Intersect(Target, [E7]) Is Nothing Then If [E7] <> "" Then [I7].Value = [R7].Value ' les résultat de la recherche indirect se trouvent dans les cellules des colonnes R à Y sur la ligne 7 [J7].Value = [S7].Value [K7].Value = [T7].Value [L7].Value = [U7].Value [M7].Value = [V7].Value [N7].Value = [W7].Value [O7].Value = [X7].Value [P7].Value = [Y7].Value Else [I7:P7].ClearContents End If End If If Target.Count > 1 Then Exit Sub End Sub
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 Option Compare Text Private Sub Worksheet_Change(ByVal Target As Range) 'Dimanche If Target.Count > 1 Then Exit Sub If Not Intersect(Target, [E7]) Is Nothing Then If [E7] <> "" Then Application.Goto Reference:=Sheets("Calcule").Range("U1").Value ' le nom de ma plage nommé ce trouve à la cellule U1 de ma feuille Calcule Selection.Copy Sheets("Journée").Select Range("J" & Rows.Count).End(xlUp).Offset(1, -2).Select ActiveSheet.Paste Else [I7:P7].ClearContents End If End If If Target.Count > 1 Then Exit Sub End Sub
Partager