Faire un historique en incrémentant la date
Bonjour à tous,
Alors voilà, étant débutante dans Excel et le VBA, je me tourne vers vous pour que vous puissiez m'aider..
Je suis sur un outil pointage, et celui-ci s'ouvre tout d'abord sur un UserForm. Le UserForm contient la date du jour. Lorsqu'une personne remplit ce UserForm pour pointer sa journée, celui-ci renvoie à un classeur avec une feuille "Récapitulatif". Sur ce Récapitulatif on y retrouve les informations rempli précédemment. Jusqu'ici tout va bien.
Le problème est : que les personnes pointent parfois plusieurs fois dans la journée, et à chaque ligne remplie on retourne sur l'UserForm et il supprime la ligne crée dans le Récapitulatif. Donc les personnes ne peuvent plus voir ce qu'elles ont pointé dans la journée sur le Récapitulatif.
On m'a donc demandé de transformé le Récapitulatif en "Historique", c'est-à-dire que les personnes puisse voir ce qu'elles ont pointé sur toute une semaine, donc faire une boucle en fonction de la date. Par exemple, un Lundi la personne va voir jusqu'au lundi précédent, le mardi elle ne verra plus que ce qu'elle a fait jusqu'au mardi dernier ect.. on incrémente la date de un à chaque fois.
Pourriez-vous donc m'aider à produire cette boucle pour obtenir les informations sur 7 jours et qu'elle disparaisse au fur et à mesure que les jours avancent ?
Et si possible m'aider sur l'historique dans son intégralité, sachant que les données je dois les extraire d'un autre classeur pour pouvoir les récupérer à chaque fois, ajouter les lignes du UserForm puis appuyer sur un bouton "enregistrer" (La macro du bouton est déjà présente), puis avoir comme résultat ma feuille récapitulatif qui reprend les données rentrées sur 7 jours avec les lignes rajoutée dans la journée...
En espérant que vous puissiez m'aider et que ce soit assez clair comme explication.
Merci de votre attention.
Bonne journée à tous.
Bonjour et bienvenue,
Merci de joindre un fichier à ta demande pour une aide adaptée du forum.
Cdlt.
Bonjour et
Tu nous parles d'un fichier et d'un formulaire mais on ne peut voir ni l'un ni l'autre, tes explications ne sont donc pas très compréhensibles
Pourrais-tu nous les joindre? (sans informations confidentielles). Faire le pointage ça m'a l'air plutôt simple, mais je ne comprends pas trop l'utilité du formulaire, tu peux obtenir la date du pointage, l'heure ainsi que le nom de la personne avec les variables suivantes : Date, Time, UserName, ensuite pour masquer les valeurs qui n'intéressent plus, il faut que je sache si il s'agit juste de les masquer ou bien de les effacer (en clair est-ce que tu as besoin de les garder ou non).
Merci à vous d'avoir regardé mon message,
C'est très compliqué de vous montrer car c'est un trop gros fichier qui va chercher dans plusieurs classeurs différents les informations et c'est un outils d'entreprise que je ne peux pas trop vous montrer comme les informations confidentielles sont présentes et ne peuvent être enlever
Mais c'est sensé être un programme très simple a réaliser...
Lorsque les informations sont dans le Récapitulatif, elles sont envoyées dans un autre classeur grâce au bouton "enregistrer" que seul le chef y a accès pour pouvoir faire une facturation des activités que chaque personne aura rentrées tous les jours.
Donc les données rentrées dans les jours précédent devraient certainement être extraites du classeur pour le chef afin qu'elle revienne dans le Récapitulatif sur 7 jours afin que les personnes puissent les revoir, les données doivent être masqué au fil des jours donc ?
Merci pour vos réponses
Re,
Un programme est simple à réaliser quand on a une idée de ce à quoi ressemble le fichier, mais si on ne sait pas, on a plus de mal à le réaliser et souvent il ne convient pas à la personne car le programme n'est pas adapté à son fichier, on a pas besoin de voir toutes les infos de ton fichier, mais juste avoir une idée de la structure de ton fichiers et des données qui se trouvent dedans, un échantillon de 100 lignes suffirait amplement, pas besoin de mettre les vraies infos ou de laisser les formules.
Voici une grosse partie du code générale si cela peut vous aider...
Declare Function GetWindowLongA Lib "user32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLongA Lib "user32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Sub enregister() 'Transfert des données depuis le classeur recapitulatif vers le classeur admin
Dim i As Integer
Dim J As Integer
W_Recap.Activate
W_Recap.Worksheets("recapitulatif").Unprotect
For i = 2 To Range("A65536").End(xlUp).Row
'Cells(2, 6).Value = Cells(2, 6).Value / 100
W_RecapG.Worksheets("Données_à_extraire").Activate
Rows(2).Insert
Range("A2:L2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Données_à_extraire").Range("A2", "H2").Value = W_Recap.Worksheets("Recapitulatif").Range("A2", "H2").Value
W_Recap.Activate
Rows(2).Delete
Next i
W_Recap.Worksheets("recapitulatif").Shapes("Rectangle 2").Visible = False
W_Recap.Worksheets("recapitulatif").Protect
UserForm3.Show 0
W_RecapG.Worksheets("Données_à_extraire").Activate
For i = 2 To Range("A65536").End(xlUp).Row
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 2) Like "*OS-APT*" Then 'Si l'Os est une activité
If W_RecapG.Worksheets("Données_à_extraire").Range("F" & i) = "SOUMETTRE APPROBATION" Then 'Si l'avancement est soumettre approbation
W_RecapG.Worksheets("Etat des Activités").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2") 'On cherche l'os dans "Etat des activité"
W_RecapG.Worksheets("Etat des Activités").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then 'Si l'OS n'existe pas dans "Etat des activité"
Rows(2).Insert 'On ajoute une nouvelle ligne
Range("A2:L2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Etat des Activités").Range("A2") = W_RecapG.Worksheets("Données_à_extraire").Range("B2") 'On note l'OS dans "Etat des activité
L = 2
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*DMOI*" Then 'On note la date
W_RecapG.Worksheets("Etat des Activités").Range("B" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") 'dans "Etat des activité"
End If 'en fonction de l'UO
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*ADR*" Then 'Soumise à l'approbation
W_RecapG.Worksheets("Etat des Activités").Range("C" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*ADS*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("D" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*DSI*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("E" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*DRE*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("F" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*OTM*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("G" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*PMRQ*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("H" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*Equipements*" Then '
W_RecapG.Worksheets("Etat des Activités").Range("I" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy") '
End If '
End If
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 2) Like "*OS-APT*" Then 'ON repete le meme systeme pour les SOLDE
If W_RecapG.Worksheets("Données_à_extraire").Range("F" & i) = "SOLDER" Then
W_RecapG.Worksheets("Etat des Activités").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("Etat des Activités").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:I2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Etat des Activités").Range("A2") = W_RecapG.Worksheets("Données_à_extraire").Range("B2")
L = 2
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*EAM*" Then
W_RecapG.Worksheets("Etat des Activités").Range("J" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy")
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*ECM*" Then
W_RecapG.Worksheets("Etat des Activités").Range("K" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy")
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(i, 3) Like "*EDF_CONSIGNE*" Then
W_RecapG.Worksheets("Etat des Activités").Range("L" & L) = Format(W_RecapG.Worksheets("Données_à_extraire").Range("A" & i), "dd/mm/yyyy")
End If
End If
End If
Next i
End Sub
Sub Extraction() 'Extrait les Données depuis le classeur Admin vers le classeur Dev_Projet
Dim i As Integer
Dim J As Integer
Dim L As Integer
W_RecapG.Worksheets("Données_à_extraire").Activate
Application.EnableEvents = False
For i = 2 To Range("A65536").End(xlUp).Row
W_RecapG.Worksheets("TempsOS").Activate
'If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
' L = Range("A65536").End(xlUp).Row
' If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3) Like "*Production*" Then
' 'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value =
' If W_Dev.Worksheets("Données_entrées").Range("P" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("P" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' Else
' W_Dev.Worksheets("Données_entrées").Range("P" & L).Value = W_Dev.Worksheets("Données_entrées").Range("P" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' End If
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = W_Dev.Worksheets("Données_entrées").Range("G" & L).Value - W_Dev.Worksheets("Données_entrées").Range("P" & L).Value
' End If
' If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3) Like "*CT*" Then
' 'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value =
' If W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' Else
' W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value = W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' End If
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = W_Dev.Worksheets("Données_entrées").Range("G" & L).Value - (W_Dev.Worksheets("Données_entrées").Range("P" & L).Value + W_Dev.Worksheets("Données_entrées").Range("q" & L).Value)
' End If
' If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3) = ("Reprise-EAM") Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3) = ("Reprise-ECM") Then
' 'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value =
' If W_Dev.Worksheets("Données_entrées").Range("R" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("R" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' Else
' W_Dev.Worksheets("Données_entrées").Range("R" & L).Value = W_Dev.Worksheets("Données_entrées").Range("R" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
' End If
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = W_Dev.Worksheets("Données_entrées").Range("G" & L).Value - (W_Dev.Worksheets("Données_entrées").Range("P" & L).Value + W_Dev.Worksheets("Données_entrées").Range("q" & L).Value + W_Dev.Worksheets("Données_entrées").Range("r" & L).Value)
' W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "REPRISE"
' End If
' If W_Dev.Worksheets("Données_entrées").Range("K" & L).Value < 0.5 Then
' W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "EN COURS"
' Else
' If W_Dev.Worksheets("Données_entrées").Range("K" & L).Value < 0.7 Then
' W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "CT"
' End If
' End If
' If W_Dev.Worksheets("Données_entrées").Range("P" & L).Value <> "-" Then
' If W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value <> "-" Then
' W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = (CDbl(W_Dev.Worksheets("Données_entrées").Range("P" & L).Value) + CDbl(W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value)) / CDbl(W_Dev.Worksheets("Données_entrées").Range("G" & L).Value)
' Else
' W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = W_Dev.Worksheets("Données_entrées").Range("P" & L).Value / W_Dev.Worksheets("Données_entrées").Range("G" & L).Value
' End If
' End If
'Else
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("TempsOS").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:H2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("TempsOS").Range("A2") = W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("TempsOS").Activate
L = Range("A65536").End(xlUp).Row
End If
Else
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("C2")
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:J2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("TempsOS").Range("A2") = W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("TempsOS").Range("B2") = W_RecapG.Worksheets("Données_à_extraire").Range("C2")
W_RecapG.Worksheets("TempsOS").Activate
L = Range("A65536").End(xlUp).Row
End If
End If
If W_RecapG.Worksheets("TempsOS").Range("H" & L).Value = "" Or W_RecapG.Worksheets("Données_à_extraire").Range("A2").Value < W_RecapG.Worksheets("TempsOS").Range("H" & L).Value Then
W_RecapG.Worksheets("TempsOS").Range("H" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("A2").Value
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 5).Value = "Production" Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 5).Value = "Reprise_Production" Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like ("*Production*") Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like ("*Visite*") Then
'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("F2").Value / 2
'W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "EN COURS"
'If W_Dev.Worksheets("Données_entrées").Range("P" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("P" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
'Else
If W_RecapG.Worksheets("TempsOS").Range("D" & L) <> "" Then
W_RecapG.Worksheets("TempsOS").Range("D" & L).Value = W_RecapG.Worksheets("TempsOS").Range("D" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
Else
W_RecapG.Worksheets("TempsOS").Range("D" & L) = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
End If
'End If
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = (W_Dev.Worksheets("Données_entrées").Range("L" & L).Value * 60) - W_Dev.Worksheets("Données_entrées").Range("P" & L).Value
'If W_Dev.Worksheets("Données_entrées").Range("P" & L) > W_Dev.Worksheets("Données_entrées").Range("T" & L).Value / 2 Then
' W_Dev.Worksheets("Données_entrées").Activate
' W_Dev.Worksheets("Données_entrées").Range("P" & L).Select
' With Selection.Interior
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
' .Color = &HFF&
' .TintAndShade = 0
' .PatternTintAndShade = 0
' End With
'End If
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 5).Value = ("Controle_Technique") Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "CT*" Then
'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = ((W_RecapG.Worksheets("Données_à_extraire").Range("F2").Value) / 5) + 0.5
'W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "CT"
'If W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
'Else
If W_RecapG.Worksheets("TempsOS").Range("E" & L).Value <> "" Then
W_RecapG.Worksheets("TempsOS").Range("E" & L).Value = W_RecapG.Worksheets("TempsOS").Range("E" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
Else
W_RecapG.Worksheets("TempsOS").Range("E" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
End If
'W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = ((W_Dev.Worksheets("Données_entrées").Range("L" & L).Value * 60) / 5 - W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value) + (0.3 * W_Dev.Worksheets("Données_entrées").Range("L" & L).Value * 60)
'If W_Dev.Worksheets("Données_entrées").Range("Q" & L).Value > W_Dev.Worksheets("Données_entrées").Range("T" & L).Value / 5 Then
' W_Dev.Worksheets("Données_entrées").Activate
' W_Dev.Worksheets("Données_entrées").Range("Q" & L).Select
' With Selection.Interior
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
' .Color = &HFF&
' .TintAndShade = 0
' .PatternTintAndShade = 0
' End With
'End If
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 5).Value = ("FAS_Reprise") Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 5).Value = ("FAS_Controle_Reprise") Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "Reprise-ECM*" Or W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "Reprise-EAM*" Then
'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = ((W_RecapG.Worksheets("Données_à_extraire").Range("F2").Value) / 10) + W_Dev.Worksheets("Données_entrées").Range("K" & L).Value
'W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "REPRISE"
'If W_Dev.Worksheets("Données_entrées").Range("R" & L).Value = "-" Then
' W_Dev.Worksheets("Données_entrées").Range("R" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
'Else
If W_RecapG.Worksheets("TempsOS").Range("F" & L).Value <> "" Then
W_RecapG.Worksheets("TempsOS").Range("F" & L).Value = W_RecapG.Worksheets("TempsOS").Range("F" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
Else
W_RecapG.Worksheets("TempsOS").Range("F" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
End If
'End If
'W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = (0.3 * W_Dev.Worksheets("Données_entrées").Range("L" & L).Value * 60) - W_Dev.Worksheets("Données_entrées").Range("R" & L).Value
'If W_Dev.Worksheets("Données_entrées").Range("R" & L) > W_Dev.Worksheets("Données_entrées").Range("T" & L).Value / 3 Then
' W_Dev.Worksheets("Données_entrées").Activate
' W_Dev.Worksheets("Données_entrées").Range("R" & L).Select
' With Selection.Interior
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
' .Color = &HFF&
' .TintAndShade = 0
' .PatternTintAndShade = 0
' End With
'End If
End If
'End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "Analyse*" Then
If W_RecapG.Worksheets("TempsOS").Range("C" & L).Value <> "" Then
W_RecapG.Worksheets("TempsOS").Range("C" & L).Value = W_RecapG.Worksheets("TempsOS").Range("C" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
Else
W_RecapG.Worksheets("TempsOS").Range("C" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
End If
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "Reprise-EDF_CONSIGNE*" Then
If W_RecapG.Worksheets("TempsOS").Range("G" & L).Value <> "" Then
W_RecapG.Worksheets("TempsOS").Range("G" & L).Value = W_RecapG.Worksheets("TempsOS").Range("G" & L).Value + W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
Else
W_RecapG.Worksheets("TempsOS").Range("G" & L).Value = W_RecapG.Worksheets("Données_à_extraire").Range("G2").Value
End If
End If
'If W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = 0.7 Or W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = 1 Or W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = 0.8 Or W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = 0.9 Then
'If W_RecapG.Worksheets("données_à_extraire").Range("E" & I) Like "Controle_Technique" And W_RecapG.Worksheets("données_à_extraire").Range("F" & I) = 1 Then
' W_RecapG.Worksheets("Attente_Approbation").Activate
' Rows("2:2").Insert Shift:=xlDown
' Rows(2).Interior.ColorIndex = xlNone
' W_RecapG.Worksheets("Attente_Approbation").Range("A2", "H2").Value = W_RecapG.Worksheets("Données_à_extraire").Range("A2", "H2").Value
'End If
'If W_RecapG.Worksheets("Données_à_extraire").Range("F2").Value = 1 And W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "FAS" Then
'W_Dev.Worksheets("Données_entrées").Range("H" & L).Value = "SURVAILLANCE"
'W_Dev.Worksheets("Données_entrées").Range("K" & L).Value = W_Dev.Worksheets("Données_entrées").Range("K" & L).Value + 0.1
'End If
'If W_Dev.Worksheets("Données_entrées").Range("T" & L).Value < 0 Then
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Value = -W_Dev.Worksheets("Données_entrées").Range("T" & L).Value
' W_Dev.Worksheets("Données_entrées").Activate
' W_Dev.Worksheets("Données_entrées").Range("T" & L).Select
' With Selection.Interior
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
' .Color = &HFF&
' .TintAndShade = 0
' .PatternTintAndShade = 0
' End With
'End If
'If W_RecapG.Worksheets("données_à_extraire").Range("E" & I) Like "FAS" And W_RecapG.Worksheets("données_à_extraire").Range("F" & I) <> 1 Then
' W_RecapG.Worksheets("attente_solde").Activate
' For L = 2 To Range("A65536").End(xlUp).Row
' If W_RecapG.Worksheets("attente_solde").Range("B" & L) = W_RecapG.Worksheets("données_à_extraire").Range("B" & I) Then
' If W_RecapG.Worksheets("données_à_extraire").Range("B" & I) Like "*OS-APT*" Then
' W_RecapG.Worksheets("Attente_solde").Range("A" & L, "H" & L) = ""
' Else
' If W_RecapG.Worksheets("attente_solde").Range("C" & L) = W_RecapG.Worksheets("données_à_extraire").Range("C" & I) Then
' W_RecapG.Worksheets("attente_solde").Range("A" & L, "H" & L) = ""
' End If
' End If
' End If
' Next L
'End If
W_Dev.Worksheets("Données_entrées").AutoFilterMode = False
'W_RecapG.Worksheets("Données_extraite").Activate
J = W_RecapG.Worksheets("Données_extraite").Range("A65536").End(xlUp).Row + 1
W_RecapG.Worksheets("Données_extraite").Range("A" & J, "H" & J).Value = W_RecapG.Worksheets("Données_à_extraire").Range("A2", "H2").Value
If W_RecapG.Worksheets("Données_à_extraire").Range("F2") = "SOUMETTRE APPROBATION" And Not W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
W_RecapG.Worksheets("Attente_Approbation").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("C2")
W_RecapG.Worksheets("Attente_Approbation").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:F2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Attente_Approbation").Range("A2") = W_RecapG.Worksheets("TempsOS").Range("A" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("B2") = W_RecapG.Worksheets("TempsOS").Range("B" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
End If
'End If
If W_RecapG.Worksheets("Données_à_extraire").Range("E2") = "FAS_Reprise" Or W_RecapG.Worksheets("Données_à_extraire").Range("E2") = "FAS_Controle_Reprise" Then
'If Not W_RecapG.Worksheets("Données_à_extraire").Cells(2, 3).Value Like "Reprise-EDF_CONSIGNE*" Then
If W_RecapG.Worksheets("Données_à_extraire").Range("F2") = "SOLDER" And Not W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
W_RecapG.Worksheets("Attente_Solde").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("C2")
W_RecapG.Worksheets("Attente_Solde").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:G2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Attente_Solde").Range("A2") = W_RecapG.Worksheets("TempsOS").Range("A" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Solde").Range("B2") = W_RecapG.Worksheets("TempsOS").Range("B" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
End If
'End If
End If
'
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
If W_RecapG.Worksheets("Données_à_extraire").Range("F2") = "SOLDER" Then
W_RecapG.Worksheets("Etat des Activités").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("Etat des Activités").Activate
L = Range("A65536").End(xlUp).Row
If W_RecapG.Worksheets("Etat des Activités").Range("J" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("K" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("L" & L) <> "" Then
W_RecapG.Worksheets("Attente_Approbation").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("Attente_Approbation").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:F2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Attente_Solde").Range("A2") = W_RecapG.Worksheets("TempsOS").Range("A" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Solde").Range("B2") = W_RecapG.Worksheets("TempsOS").Range("B" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
End If
End If
End If
'If W_RecapG.Worksheets("Données_à_extraire").Range("E2") = "Production" Or W_RecapG.Worksheets("Données_à_extraire").Range("E2") = "Controle_Technique" Or W_RecapG.Worksheets("Données_à_extraire").Range("E2") = "Reprise_Production" Then
If W_RecapG.Worksheets("Données_à_extraire").Range("F2") = "SOUMETTRE APPROBATION" And Not W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
W_RecapG.Worksheets("Attente_Approbation").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("C2")
W_RecapG.Worksheets("Attente_Approbation").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:F2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Attente_Approbation").Range("A2") = W_RecapG.Worksheets("TempsOS").Range("A" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("B2") = W_RecapG.Worksheets("TempsOS").Range("B" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
End If
If W_RecapG.Worksheets("Données_à_extraire").Cells(2, 2) Like "*OS-APT*" Then
If W_RecapG.Worksheets("Données_à_extraire").Range("F2") = "SOUMETTRE APPROBATION" Then
If W_RecapG.Worksheets("Etat des Activités").Range("B" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("C" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("D" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("E" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("F" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("G" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("H" & L) <> "" And _
W_RecapG.Worksheets("Etat des Activités").Range("I" & L) <> "" Then
W_RecapG.Worksheets("Attente_Approbation").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Données_à_extraire").Range("B2")
W_RecapG.Worksheets("Attente_Approbation").Activate
L = Range("A65536").End(xlUp).Row
If L = 1 Then
Rows(2).Insert
Range("A2:F2").Select
With Selection.Font
.Name = "Lucida Bright"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
W_RecapG.Worksheets("Attente_Approbation").Range("A2") = W_RecapG.Worksheets("TempsOS").Range("A" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("B2") = W_RecapG.Worksheets("TempsOS").Range("B" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
End If
End If
End If
W_RecapG.Worksheets("Données_à_extraire").Activate
L = Range("B65536").End(xlUp).Row
Rows(2).Delete
'If W_Dev.Worksheets("Données_entrées").Range("O" & L) = "-" Then W_Dev.Worksheets("Données_entrées").Range("O" & L) = 0
'If W_Dev.Worksheets("Données_entrées").Range("P" & L) = "-" Then W_Dev.Worksheets("Données_entrées").Range("P" & L) = 0
'If W_Dev.Worksheets("Données_entrées").Range("Q" & L) = "-" Then W_Dev.Worksheets("Données_entrées").Range("Q" & L) = 0
'If W_Dev.Worksheets("Données_entrées").Range("R" & L) = "-" Then W_Dev.Worksheets("Données_entrées").Range("R" & L) = 0
'W_Dev.Worksheets("Données_entrées").Range("S" & L) = W_Dev.Worksheets("Données_entrées").Range("P" & L) + W_Dev.Worksheets("Données_entrées").Range("Q" & L) + W_Dev.Worksheets("Données_entrées").Range("R" & L)
Next i
If W_RecapG.Worksheets("Attente_Approbation").Range("A2").Text <> "" Then
MsgBox "Approbation en attente"
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Attente_Approbation").Range("A2")
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Attente_Approbation").Range("B2")
W_RecapG.Worksheets("Attente_Approbation").Range("C2") = W_RecapG.Worksheets("TempsOS").Range("D" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("D2") = W_RecapG.Worksheets("TempsOS").Range("E" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("E2") = W_RecapG.Worksheets("TempsOS").Range("C" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Approbation").Range("F2") = W_RecapG.Worksheets("TempsOS").Range("H" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
If W_RecapG.Worksheets("Attente_Solde").Range("A2").Text <> "" Then
MsgBox "Solde en attente"
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=1, Criteria1:=W_RecapG.Worksheets("Attente_Solde").Range("A2")
W_RecapG.Worksheets("TempsOS").Range("A1").AutoFilter field:=2, Criteria1:=W_RecapG.Worksheets("Attente_Solde").Range("B2")
W_RecapG.Worksheets("Attente_Solde").Range("C2") = W_RecapG.Worksheets("TempsOS").Range("D" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Solde").Range("D2") = W_RecapG.Worksheets("TempsOS").Range("E" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Solde").Range("E2") = W_RecapG.Worksheets("TempsOS").Range("F" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
W_RecapG.Worksheets("Attente_Solde").Range("F2") = W_RecapG.Worksheets("TempsOS").Range("G" & Worksheets("TempsOS").Range("A65536").End(xlUp).Row)
End If
W_RecapG.Worksheets("Etat des Activités").AutoFilterMode = False
W_RecapG.Worksheets("Attente_Solde").AutoFilterMode = False
W_RecapG.Worksheets("Attente_Approbation").AutoFilterMode = False
W_RecapG.Worksheets("TempsOS").AutoFilterMode = False
Application.EnableEvents = True
End Sub
Re,
désolé mais tes nombreuses lignes de code n'aident pas vraiment à la compréhension du sujet
Est-ce que tu aurais pas juste un codage a me proposer pour faire en sorte d'obtenir mes lignes de tableau en fonction de la date, expliquer dans mon premier message ?
Merci pour ta réponse
Re,
Je ne sais pas si ces lignes de code pourront t'aider mais j'essaye:
avoir la dernière ligne remplie dans une colonne :
ligFin = range("a" & rows.count).end(xlup).row
ceci te permettra de ne pas effacer les données déjà renseignées, il faut juste ajouter 1 à cette valeur pour écrire sur la première ligne vide qui suit.
Ensuite tu peux faire un filtre chronologique pour avoir les 7 derniers jours:
ActiveSheet.Range("$A$1:$A$5").AutoFilter Field:=1, Criteria1:= ">=10/05/2019", Operator:=xlAnd, Criteria2:="<=16/05/2019"
il faut ensuite gérer le critère 1 et le critère 2, en critère 2 tu mets Date, et en critère 1 tu mets Date - 6, ça donnerait:
ActiveSheet.Range("$A$1:$A$5").AutoFilter Field:=1, Criteria1:= ">=" & Date-6, Operator:=xlAnd, Criteria2:="<=" & Date
J'espère que ça te permet déjà de mieux y voir, si tu as d'autres questions précises je pourrais te fournir des bouts de code mais je ne pourrai pas directement modifier ton code principal...
Merci pour ta réponse, je pense que ça va beaucoup m'aider !
Si tu pouvais m'aider sur un minuscule petit point à part, ce serait super gentil :
Sur l' UserForm on y trouve la date du coup comme ceci : (
Le code est donc celui ci :
Private Sub TextBox_Date_Change() 'Se lance lors de la saise de la date
Dim strFormat As String
Dim x As Integer
x = Len(TextBox_Date)
strFormat = "##/##/####" 'Force le format de la saisie à ##/##/####
strFormat = Left(strFormat, x)
If Not TextBox_Date Like strFormat Then TextBox_Date = Left(TextBox_Date, x - 1)
UserForm1.Label10 = TextBox_Date.Value
End Sub
et
Private Sub CommandButton1_Click() 'Permet de passer à la date d'hier
Dim x As Integer
If Weekday(Now, vbMonday) = 1 Then 'Si on est lundi
x = 3 'On va reculer de 3 jours
Else 'Sinon (autre jours de la semaine)
x = 1 'On recule de 1 jours
End If
CommandButton1.Visible = False 'On cache le bouton pour reculer la date
Label10 = Format(Now - x, "dd/mm/yyyy") 'La Date active prend la valeur d'aujourd'hui moins le nombre de jour defini au dessus
CommandButton2.Visible = True 'On affiche le bouton pour revenir a la date d' aujourd'hui
End Sub
et j'aimerai non pas reculer la date de 1 jours, mais reculer chaque jours sur une semaine .... c'est-à-dire grâce au flèche aller au 15/05, 14/05, 13/05 ect jusqu'au 9/05, (donc cliquer 7 fois sur la flèche) mais pas cliquer une fois et sauter les 7 jours d'un coup et passer du 16/05 au 9/05 si tu vois ce que je veux dire
Peux-tu m'aider ?
Merci pour ta reponse !
Re,
Je ne suis pas sûr de tout comprendre mais je vois des erreurs dans ton codage
If Weekday(Now, vbMonday) = 1 Then
Ici tu regardes le numéro du jour de la date d'aujourd'hui, d'après moi tu devrais plutôt regarder la date qui se trouve dans le Label
CommandButton1.Visible = False 'On cache le bouton pour reculer la date
si tu veux pouvoir cliquer plusieurs fois sur ton bouton de commande, il faut éviter de cacher le bouton dès que tu cliques dessus
Label10 = Format(Now - x, "dd/mm/yyyy") 'La Date active prend la valeur d'aujourd'hui moins le nombre de jour defini au dessus
ici je pense que tu devrais plutôt utiliser Label - 1 au lieu de Now - x
CommandButton2.Visible = True 'On affiche le bouton pour revenir a la date d' aujourd'hui
ici c'est pareil que pour l'autre ligne où le bouton est caché, je ne pense pas que ce soit une bonne idée de gérer l'affichage des boutons
En fait tu as essayer de refaire un contrôle qui existe déjà, tu as un objet qu'on appelle toupie qui contient une flèche à gauche et une à droite, dont tu peux fixer le maximum et le minimum, il resterait juste à faire Now - valeurToupie par exemple si tu tiens à utiliser Now
Si tu comptes garder les deux boutons séparés, le code donnera:
Private Sub CommandButton1_Click()
Label10 = Format(Label10 - 1, "dd/mm/yyyy")
End Sub
Tu auras peut-être besoin de convertir Label10 en date via CDate. D'ailleurs, pour le premier code que tu as montré, tu peux tester que ce qui est rentré est une date en utilisant isDate(), il te suffira ensuite de convertir la valeur avec Format(ladate,"dd/mm/yyyy") pour être sûr de la façon dont la date est écrite
Merci pour ton message,
Je vais regarder ça merci