Position date de ligne

Bonjour à tout le monde,

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.

Merci d’avance à vous.

Rubis
position date.xlsm (54,8 Ko)

1 « J'aime »

Bonjour Rubis,
Ca fait longtemps qu’on t’as pas vu.
En voici une suggestion :
position date.xlsm (56,0 Ko)
Cordialement

1 « J'aime »

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
1 « J'aime »

Bonsoir Will-Fread,

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 d’avance à toi
Cordialement Rubis

Bonjour Cow18,

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 .

Merci d’avance à toi.

Cordialement Rubis

Désole de lire une telle chose , j’espere que aujourd’hui ca va mieux :slight_smile: , ravie de te lire Rubis

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

Bonjour et Merci pour le message.
Oui comme je disais en haut, je remonte tout doucement.
A bientôt
Rubis

1 « J'aime »

Bonjour Cow18,

Merci pour ton retour. Mais il me donne une erreur sur la ligne ci-dessous.

" R = Application.Match(CLng(DateSerial(sp(2), sp(1), sp(0))), .Rows(5), 0)"

Re,

après plusieurs essais, j’ai réussi avec cela.

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

Pensez vous qu’on peut laisser tel quel ?

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

par


application.goto Sheets("CPR").Cells(rows.count, P).End(xlUp).offset(1)

« 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)

1 « J'aime »

Bonjour,

Merci à vous pour ce beau retour. Cela me convient très bien et fonctionne comme voulu. :+1: :+1:

A une prochaine.
Rubis

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.