Résolu XL 2019 VBA PLANNING Aller à la colonne du lundi de la semaine en cours

blaise14

XLDnaute Nouveau
Bonjour à tous,

Je viens de m'inscrire sur ce forum où j'ai déjà réussi à trouver la moitié de mon bonheur avec le formule ci-dessous:

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = Date Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Mon objectif est de naviguer dans un planning et pouvoir revenir au lundi de la semaine en cours avec une macro.
Et idéalement aller au samedi de la semaine qui suit ainsi que 2 semaines après ci possible.o_O
A l'heure actuelle, je n'arrive qu'a aller à la date du jour avec le code ci-dessus.
Merci de votre aide ;)
 
Ce fil a été résolu! Aller à la solution…

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

•>Blaise14 (Bienvenue sur le forum)
Ceci devrait pouvoir te mettre sur la piste ;)
VB:
Sub Test()
Lundi = DateAdd("d", 1 - Weekday(Date, vbMonday), Date)
MsgBox Format(Lundi, "dddd dd mmmm yyyy")
End Sub
 
Ce message a été identifié comme étant une solution!

Staple1600

XLDnaute Barbatruc
Re

Et pour coller à ce que tu veux
(ma façon de faire)
VB:
Sub Aller_Lundi_SemaineENCOURS()
Dim Rng As Range: Set Rng = Sheets("PERSONNEL").Range("C7:NI7")
Lundi = DateAdd("d", 1 - Weekday(Date, vbMonday), Date)
With Application
.Goto Cells(7, 2 + .Match(CLng(Lundi), Rng, 0)), True
End With
End Sub
 

blaise14

XLDnaute Nouveau
Merci beaucoup !

J'ai pas trop compris le fond et la forme de la formule mais ça marche !!! :)
( en même temps j'utilise VBA depuis seulement 2 jours et j'avais jamais entré une ligne de code ailleurs auparavant...)
Ci dessous ce que j'ai appliqué et qui fonctionne si jamais ça peut intéresser quelqu'un d'autre

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = DateAdd("d", 1 - Weekday(Date, vbMonday), Date) Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Et pour le lundi de la semaine qui suit j'ai simplement ajouté un +7
Sub sem_suiv()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = DateAdd("d", 1 - Weekday(Date, vbMonday), Date) Then
ActiveWindow.ScrollColumn = cellule.Column + 7
End If
Next cellule
End Sub

Merci beaucoup Staple1600 - ta réponse était tellement rapide que j'ai même pas eu le temps de m'énerver :cool:
 

Staple1600

XLDnaute Barbatruc
Re

Et en bonus, une version light
VB:
Sub Aller_Lundi_SemaineENCOURS_Light()
Dim R As Range: Set R = Sheets("PERSONNEL").Range("C7:NI7")
Application.Goto Cells(7, 2 + Application.Match(CLng(DateAdd("d", 1 - Weekday(Date, 2), Date)), R, 0)), -1
End Sub
 
Ce message a été identifié comme étant une solution!

Fredo P.

XLDnaute Nouveau
Bonjour à tous,

Je viens de m'inscrire sur ce forum où j'ai déjà réussi à trouver la moitié de mon bonheur avec le formule ci-dessous:

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = Date Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Mon objectif est de naviguer dans un planning et pouvoir revenir au lundi de la semaine en cours avec une macro.
Et idéalement aller au samedi de la semaine qui suit ainsi que 2 semaines après ci possible.o_O
A l'heure actuelle, je n'arrive qu'a aller à la date du jour avec le code ci-dessus.
Merci de votre aide ;)
Bonjour à tous,

Je viens de m'inscrire sur ce forum où j'ai déjà réussi à trouver la moitié de mon bonheur avec le formule ci-dessous:

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = Date Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Mon objectif est de naviguer dans un planning et pouvoir revenir au lundi de la semaine en cours avec une macro.
Et idéalement aller au samedi de la semaine qui suit ainsi que 2 semaines après ci possible.o_O
A l'heure actuelle, je n'arrive qu'a aller à la date du jour avec le code ci-dessus.
Merci de votre aide ;)

Application.goto reference:=Worksheets("X").cells(z,y)
FP

Bonjour à tous,

Je viens de m'inscrire sur ce forum où j'ai déjà réussi à trouver la moitié de mon bonheur avec le formule ci-dessous:

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = Date Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Mon objectif est de naviguer dans un planning et pouvoir revenir au lundi de la semaine en cours avec une macro.
Et idéalement aller au samedi de la semaine qui suit ainsi que 2 semaines après ci possible.o_O
A l'heure actuelle, je n'arrive qu'a aller à la date du jour avec le code ci-dessus.
Merci de votre aide ;)
 

Fredo P.

XLDnaute Nouveau
Bonjour,
Quand l'adresse de la cellule est connue:
application.goto reference:= worksheets("X").cells(z,y)
 

Staple1600

XLDnaute Barbatruc
Bonjour,
Quand l'adresse de la cellule est connue:
application.goto reference:= worksheets("X").cells(z,y)
Bonjour Fredo P.
Application.Goto...Oui comme dans l'exemple du message#3 :rolleyes:
(paramétré sur True)

Et si la référence est connue alors, autant l'utiliser directement, non ?
 
Dernière édition:

blaise14

XLDnaute Nouveau
Bonsoir,
J'ai un dernier besoin pour finaliser mon planning.
Toujours en lien avec la demande précédente.
Etant donné que j'ai besoin d’accéder (uniquement pour le consulter en lecture seule) au planning en question depuis un smartphone et qu'il n'est pas capable de gérer vba je me retrouve à l'ouverture du planning au premier jour de l'année.

J'ai donc pensé à la solution suivante lors de la fermeture du classeur je souhaite masquer les colonnes de de la colonne du premier jour de l'année ("J") jusqu'au dimanche de la semaine précédente.

Peut on m'aider ??? Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Pour masquer des colonnes, il faut du VBA
A la rigueur une MFC pourrait masquer le contenu des cellules, mais cela te mènera pas à la semaine en cours.

Maintenant, une suggestion en passant.
Si ton planning doit être utilisé sur un smartphone, pourquoi ne pas utiliser les applis qui font cela très bien sur le Playstore ou autre ?
 

Kaytilou

XLDnaute Nouveau
Merci beaucoup !

J'ai pas trop compris le fond et la forme de la formule mais ça marche !!! :)
( en même temps j'utilise VBA depuis seulement 2 jours et j'avais jamais entré une ligne de code ailleurs auparavant...)
Ci dessous ce que j'ai appliqué et qui fonctionne si jamais ça peut intéresser quelqu'un d'autre

Sub sem_encours()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = DateAdd("d", 1 - Weekday(Date, vbMonday), Date) Then
ActiveWindow.ScrollColumn = cellule.Column
End If
Next cellule
End Sub

Et pour le lundi de la semaine qui suit j'ai simplement ajouté un +7
Sub sem_suiv()
Dim cellule As Range
For Each cellule In Sheets("PERSONNEL").Range("C7:NI7")
If cellule = DateAdd("d", 1 - Weekday(Date, vbMonday), Date) Then
ActiveWindow.ScrollColumn = cellule.Column + 7
End If
Next cellule
End Sub

Merci beaucoup Staple1600 - ta réponse était tellement rapide que j'ai même pas eu le temps de m'énerver :cool:
Ils fonctionnent tous ;) merci
Bonjour Blaise
Votre macro me plait et m'intrigue. Comment avez vous organisé votre tableau excel. Possible de le partager car je cherche à faire un planning et je suis à la recherche d'idée.
Je vous remercie par avance
 

blaise14

XLDnaute Nouveau
Bonsoir

Pour masquer des colonnes, il faut du VBA
A la rigueur une MFC pourrait masquer le contenu des cellules, mais cela te mènera pas à la semaine en cours.

Maintenant, une suggestion en passant.
Si ton planning doit être utilisé sur un smartphone, pourquoi ne pas utiliser les applis qui font cela très bien sur le Playstore ou autre ?
En fait c'est un planning chantier que je partage avec mes équipes sur le terrain. Du coup moi seul peut apporter des modifs dessus. Quand j'y fait des modifs, je suis sur PC donc j'ai VBA. Et c'est bien un code VBA qui me manque pour masquer les colonnes.
Je 'utilise pas d'app préfaites parce qu'il est bien plus confortabale d'avoir un outil adapté à mon besoins uniquement sans fonction inutiles...
Merci d'avance parce que pour l'instant je me casse les dents à trouver ce code...
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas