Certes, j’ai certainement déjà eu ou vu un code similaire sur ce forum après tant de travail avec vous, mais je sèche ! Désolé.
Dans le fichier ci-joint je souhaiterai dans un premier temps que lors de l’activation de l’onglet CPR il se place sur la date du jour qui elle se trouve sur la ligne 5 (de A5 à ND5) .
Sachez que sur mon fichier réel la première date de l’année en cours se situe en A5 et la dernière date de l’année en cours se trouve en ND5.
Dans un deuxième temps j’aurai bien aimé mettre en place un code qui me permettrai de choisir une date quelconque via un petit UserForm (UserForm1) que j’ai préparé dans ce fichier et que vous pouvez appelé avec le bouton choisir une date sur l’onglet CPR.
Pourriez vous m’aider s’il vous plaît à mettre en place cela.
bonjour,
une solution similaire à Jacquinot (salue) à coller dans « thisworkbook »
Private Sub Workbook_Open()
With Sheets("cpr")
r = Application.Match(CLng(Date), .Rows(5), 0)
If IsNumeric(r) Then Application.Goto .Cells(5, r), 1
End With
End Sub
oui c’est vrai, j’étais absent quelques suite à un accident. Je remonte la pente tout doucement.
Alors pour ta proposition, un grand Merci. J’ai essayé vite fait et cela me convient.
Par contre aurais tu une proposition pour mon souhait N° 2 STP ?
« Dans un deuxième temps j’aurai bien aimé mettre en place un code qui me permettrai de choisir une date quelconque via un petit UserForm (UserForm1 ) que j’ai préparé dans ce fichier et que vous pouvez appelé avec le bouton choisir une date sur l’onglet CPR . »
Merci à toi également pour ta proposition. Je testerai le week-end.
Je te demande à toi aussi, si tu aurais une proposition pour mon souhait N°2 de mon premier post.
" Dans un deuxième temps j’aurai bien aimé mettre en place un code qui me permettrai de choisir une date quelconque via un petit UserForm (UserForm1 ) que j’ai préparé dans ce fichier et que vous pouvez appelé avec le bouton choisir une date sur l’onglet CPR .
Private Sub CommandButton1_Click()
With TextBox1
If .Value = "" Then Exit Sub
sp = Split(.Value, "-")
With Sheets("CPR")
r = Application.Match(CLng(DateSerial(sp(2), sp(1), sp(0))), .Rows(5), 0)
If IsNumeric(r) Then
Application.EnableEvents = False 'précaution pour l'évenement du "Worksheet_Activate" de Jacquinot
Application.Goto .Cells(5, r), 1
Application.EnableEvents = True
Me.Hide
End If
End With
End With
End Sub
Private Sub CommandButton1_Click()
Dim rng As Range, t
e = CSng(CDate(TextBox1))
Set rng = Sheets("CPR").Range("$A$5:$CP$5")
P = Application.Match(e, rng, 0)
R = Cells(Rows.Count, P).End(xlUp).Row + 1
Sheets("CPR").Cells(R, P).Activate
Unload Me
End Sub
j’utilise maintenant un autre ordinateur, mais je pense que hier mes séparateurs dans la date étaient des « - » au lieu de « / »; Cela était l’erreur (et le fait que je ne déclare jamais mes variables)
Private Sub CommandButton1_Click()
Dim sp, r
With TextBox1
If .Value = "" Then Exit Sub
sp = Split(Replace(.Value, "-", "/"), "/")
With Sheets("CPR")
r = Application.Match(CLng(DateSerial(sp(2), sp(1), sp(0))), .Rows(5), 0)
If IsNumeric(r) Then
Application.EnableEvents = False 'précaution pour l'évenement du "Worksheet_Activate" de Jacquinot
Application.Goto .Cells(5, r), 1
Application.EnableEvents = True
Me.Hide
End If
End With
End With
End Sub
Pensez vous qu’on peut laisser tel quel ?
je remplace
R = Cells(Rows.Count, P).End(xlUp).Row + 1
Sheets("CPR").Cells(R, P).Activate
« Goto » est plus polyvalent que « activate ».
Eventuellement, vous pouvez ajouter " ,1" après ce « offset(1) » pour mieux positionner l’écran (j’ai bloqué la ligne 5)
Dans le fichier c’est même plus élaboré. position date.xlsm (62,7 Ko)