Ajout de détails
Bonjour,
J'aimerais voir afficher plus de détails pour une feuille de temps.
Avec une feuille de temps comme exemple; j'aimerais pouvoir cliquer sur la cellule contenant la date (cellule B8) et voir afficher les projets et les heures qui ont été réalisés à cette date précise.
J'aimerais que les cellules B9 à B16 soient cachées et que le détail s'affiche en dessous (projets travaillés, heures travaillées) de la cellule B8. Lorsque je clique à nouveau sur B8 j'aimerais que le détail disparaisse et que le fichier revienne comme avant. Je ne veux pas voir tout le détails sur la feuille de temps cela alourdit trop la feuille; mais j'aimerais pourvoir voir le détail des projets et des heures travaillés au besoin.
Je ne sais pas si c'est avec un filtre que je dois procéder pour aller chercher seulement la date que je désire?
Comment faire passer les données filtrées d'une feuille à l'autre?
Est-ce que je dois plus utiliser la caméra et faire comme une pop-up et faire afficher ainsi le résultat du filtre ?
Je suis débutant VBA et je ne sais pas par où commencer ?
J'inclus un fichier exemple de feuille de temps pour une meilleure compréhension.
Merci à l'avance,
Oiseau Bleu
Bonjour,
Excuse-moi pour le délai.
Bravo, je suis très content de ce que tu as fait.
Je dois maintenant le comprendre et l'adapter à mon fichier sur lequel je travaille.
Je me demande pourquoi quand j'ouvre le fichier et que j'active les macros il y a l'erreur "1004" "La méthode Select de la classe Range a échoué" et la ligne jaune(arrêt) se fait sur la ligne de code "Cells (Target.Row, 3).Select.
Est-ce que cette ligne doit être déplacée.
Merci,
Oiseau Bleu
Bonjour
Désolé, mais sur mon PC et avec le fichier que je t'ai joint, je n'ai pas ça.
Or, pour corriger un bug, il faut que j'arrive à le reproduire...
Bye !
Merci, pour ta réponse.
J'ai de la difficulté à reproduire ce que tu as fait dans mon fichier dans le quel je travaille car je ne comprend pas.
Est-ce possible pour toi de me donner plus de détails sur le fonctionnement de ton code?
Comme dans le For avec le Ubound ???
Je ne comprend pas le ReDim Preserve tabloR(1 to 3, to k =1)
tabloR(j, l + k) = tablo(i, j)
Option Explicit
Dim cell As Range, fd As Worksheet, tablo, tabloR()
Dim derLn1&, derLn2&, derLn3&, dte, i&, j&, k&
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
derLn1 = Range("B7").End(xlDown).Row
If Not Intersect(Target, Range("B8:B" & derLn1)) Is Nothing Then
Cells.EntireRow.Hidden = False
Set cell = Range("B:B").Find("Projet(s) travaillé(s)", lookat:=xlWhole)
If Not cell Is Nothing Then
derLn2 = cell.Row
derLn3 = Range("B" & Rows.Count).End(xlUp).Row
Rows(derLn2 & ":" & derLn3).Delete shift:=xlUp
Else
dte = Target
Set fd = Sheets("D?tails des projets")
tablo = fd.Range("B5:D" & fd.Range("B" & Rows.Count).End(xlUp).Row)
k = 0
For i = 1 To UBound(tablo, 1)
If i = 1 Or tablo(i, 3) = dte Then
ReDim Preserve tabloR(1 To 3, 1 To k + 1)
For j = 1 To 3
tabloR(j, 1 + k) = tablo(i, j)
Next j
k = k + 1
End If
Next i
Range("B" & derLn1 + 2).Resize(UBound(tabloR, 2), 3) = Application.Transpose(tabloR)
Range("B7:D7").Copy
Cells(derLn1 + 2, 2).PasteSpecial xlPasteFormats
Rows("8:" & derLn1).EntireRow.Hidden = True
Rows(Target.Row & ":" & Target.Row).EntireRow.Hidden = False
Cells(Target.Row, 3).Select
End If
End If
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
Sub Evenement()
Application.EnableEvents = True
End Sub
Merci,
j'ai quelques petites connaissances en VBA; mais quand je vois je que tu fais; je vois que j'ai beaucoup de chemin à parcourir.
Oiseau Bleu
Bonjour une autre question,
Si je ne reproduis pas les entêtes de l'onglet Détails des projets dans l'onglet Feuille de temps (Projet(s) travaillé(s)
Comment je fais avec cette ligne de code pour référer à ce que j'ai été cherché dans l'onglet Détails des projets.
Set cell = Range("B:B").Find("Projet(s) travaillé(s)", lookat:=xlWhole)
Merci,
Oiseau Bleu
Bonjour,
J'ai passé la journée à étudier votre code et je trouve le tout vraiment excellent.
Pour l'instant ça va; mais bravo pour tout votre code.
J'ai avancé dans ce que je voulais faire et ma compréhension est meilleure.
Je poserai d'autres questions plus tard.
Merci encore pour votre travail.
Oiseau Bleu