OVH Cloud OVH Cloud

centrer la feuille sur une cellule en fonction de son contenu.

7 réponses
Avatar
Octave
Bonjour,

Je souhaiterais savoir comment faire pour qu'une feuille de calcul soit
directement affichée et centrée sur une cellule correspondant à une donnée
précise.

Voici mon "cas"
Mon tableau se présente ainsi :
- une ligne (5) avec des dates (passées, présente et à venir)
- dans ces dates la date du jour
comment faire pour que automatiquement la feuille affiche la colonne qui
corresponde à la cellule dans laquelle on retrouve la date du jour.

J'ai cherché avec les fonctions maintenant et aujourdhui mais n'étant pas
encore assez initié je n'ai pu faire trouver cette date.
Par contre j'y arrive lorsque j'entre la date manuellement ex : 23/05/2004.
Le problème est sûrement simple si quelqu'un peut me donner quelques
conseils

Merci d'avance

Cyril

7 réponses

Avatar
michdenis
Bonjour Octave,

Essaie ceci en redéfinissant le nom de la feuille de calcul utilisée dans ton programme.

Il est pris pour acquis que la cellule contenant la date à un format date.

'-----------------------------
Sub AffichierColonne()

Dim Ladate As Date, Lig As Long
Dim Rg As Range, A As Integer
Dim S As Variant

Ladate = Date 'date à rechercher

'Définir le nom de la feuille appropriée
With Worksheets("Feuil2")
.Activate
Lig = .Cells.Find("*", , xlFormulas, , _
xlByRows, xlPrevious).Row
For A = 1 To 256
Set Rg = .Range(.Cells(1, A), .Cells(Lig, A))
S = Application.Match(CLng(Ladate), Rg, 0)
If Not IsError(S) Then
Application.Goto Rg(1, 1), True
Rg(S).Select
Exit For
Else
On Error GoTo 0
End If
Next
End With

Set Rg = Nothing

End Sub
'-----------------------------


Salutations!



"Octave" a écrit dans le message de news:c8qnon$med$
Bonjour,

Je souhaiterais savoir comment faire pour qu'une feuille de calcul soit
directement affichée et centrée sur une cellule correspondant à une donnée
précise.

Voici mon "cas"
Mon tableau se présente ainsi :
- une ligne (5) avec des dates (passées, présente et à venir)
- dans ces dates la date du jour
comment faire pour que automatiquement la feuille affiche la colonne qui
corresponde à la cellule dans laquelle on retrouve la date du jour.

J'ai cherché avec les fonctions maintenant et aujourdhui mais n'étant pas
encore assez initié je n'ai pu faire trouver cette date.
Par contre j'y arrive lorsque j'entre la date manuellement ex : 23/05/2004.
Le problème est sûrement simple si quelqu'un peut me donner quelques
conseils

Merci d'avance

Cyril
Avatar
Octave
Bonsoir
"michdenis" a écrit dans le message de
news:
Bonjour Octave,

Essaie ceci en redéfinissant le nom de la feuille de calcul utilisée dans
ton programme.


Il est pris pour acquis que la cellule contenant la date à un format date.


Votre proposition fonctionne parfaitement, cependant j'aurais encore une
requête car la cellule sélectionnée se place sur la gauche de l'écran ce qui
empêche de voir les quelques colonnes qui précèdent.
C'est aussi pour cette raison que dans mon descriptif, je parlais de
cellules centrées dans la feuille.
J'imagine assez bien ce qu'il faut faire : c'est à dire changer la date de
référence : "maintenant" pour la date "maintenant - 7 (pour 7 jours)"
mais à partir de votre travail je ne vois pas trop comme adapter une macro
plus personnelle.

Je tiens cependant à vous remercier pour l'aide que vous m'avez déjà
apportée.

Octave

Avatar
Octave
Bonsoir,
"Octave" a écrit dans le message de
news:c8r01k$jd8$
Bonsoir
"michdenis" a écrit dans le message de
news:
Bonjour Octave,

Essaie ceci en redéfinissant le nom de la feuille de calcul utilisée
dans


ton programme.

Il est pris pour acquis que la cellule contenant la date à un format
date.



Votre proposition fonctionne parfaitement, cependant j'aurais encore une
requête car la cellule sélectionnée se place sur la gauche de l'écran ce
qui

empêche de voir les quelques colonnes qui précèdent.


Se poser la question c'est parfois y répondre : en rajoutant "-7" à "Ladate
= Date"
la macro continue de fonctionner et bascule correctement sur la date du
jour - 7
C.Q.F.D.
Il suffisait pour ma part de chercher davantage car votre réponse était
suffisamment claire et complète pour permettre même au débutant que je suis
de trouver.

Encore une fois merci beaucoup.


Avatar
docm
Bonjour Octave.

Sous toutes réserves,
voici comment on peut centrer la colonne active.

Private Sub CentrerLaColonneActive()

Dim ColonnesVisibles As Single

Dim Premiere As String

ColonnesVisibles = ActiveWindow.VisibleRange.Columns.Count

Premiere = "R" & ActiveCell.Row & "C" & ActiveCell.Column

Application.Goto Reference:=Premiere

ActiveWindow.SmallScroll Toleft:=ColonnesVisibles 2

ActiveCell.Select

End Sub

"Octave" wrote in message
news:c8r0ud$n2f$
Bonsoir,
"Octave" a écrit dans le message de
news:c8r01k$jd8$
Bonsoir
"michdenis" a écrit dans le message de
news:
Bonjour Octave,

Essaie ceci en redéfinissant le nom de la feuille de calcul utilisée
dans


ton programme.

Il est pris pour acquis que la cellule contenant la date à un format
date.



Votre proposition fonctionne parfaitement, cependant j'aurais encore une
requête car la cellule sélectionnée se place sur la gauche de l'écran ce
qui

empêche de voir les quelques colonnes qui précèdent.


Se poser la question c'est parfois y répondre : en rajoutant "-7" à
"Ladate

= Date"
la macro continue de fonctionner et bascule correctement sur la date du
jour - 7
C.Q.F.D.
Il suffisait pour ma part de chercher davantage car votre réponse était
suffisamment claire et complète pour permettre même au débutant que je
suis

de trouver.

Encore une fois merci beaucoup.






Avatar
docm
Oups! Correction:

Private Sub CentrerLaColonneActive()

Dim ColonnesVisibles As Single

Dim Premiere As String

Premiere = "R" & ActiveCell.Row & "C" & ActiveCell.Column

Application.Goto Reference:=Premiere

ColonnesVisibles = ActiveWindow.VisibleRange.Columns.Count

ActiveWindow.SmallScroll Toleft:=ColonnesVisibles 2

ActiveCell.Select

End Sub


"docm" wrote in message
news:#
Bonjour Octave.

Sous toutes réserves,
voici comment on peut centrer la colonne active.

Private Sub CentrerLaColonneActive()

Dim ColonnesVisibles As Single

Dim Premiere As String

ColonnesVisibles = ActiveWindow.VisibleRange.Columns.Count

Premiere = "R" & ActiveCell.Row & "C" & ActiveCell.Column

Application.Goto Reference:=Premiere

ActiveWindow.SmallScroll Toleft:=ColonnesVisibles 2

ActiveCell.Select

End Sub

"Octave" wrote in message
news:c8r0ud$n2f$
Bonsoir,
"Octave" a écrit dans le message de
news:c8r01k$jd8$
Bonsoir
"michdenis" a écrit dans le message de
news:
Bonjour Octave,

Essaie ceci en redéfinissant le nom de la feuille de calcul utilisée
dans


ton programme.

Il est pris pour acquis que la cellule contenant la date à un format
date.



Votre proposition fonctionne parfaitement, cependant j'aurais encore
une



requête car la cellule sélectionnée se place sur la gauche de l'écran
ce



qui
empêche de voir les quelques colonnes qui précèdent.


Se poser la question c'est parfois y répondre : en rajoutant "-7" à
"Ladate

= Date"
la macro continue de fonctionner et bascule correctement sur la date du
jour - 7
C.Q.F.D.
Il suffisait pour ma part de chercher davantage car votre réponse était
suffisamment claire et complète pour permettre même au débutant que je
suis

de trouver.

Encore une fois merci beaucoup.










Avatar
Octave
Bonsoir,
"docm" a écrit dans le message de
news:
Oups! Correction:

Private Sub CentrerLaColonneActive()

Dim ColonnesVisibles As Single

Dim Premiere As String

Premiere = "R" & ActiveCell.Row & "C" & ActiveCell.Column

Application.Goto Reference:=Premiere

ColonnesVisibles = ActiveWindow.VisibleRange.Columns.Count

ActiveWindow.SmallScroll Toleft:=ColonnesVisibles 2

ActiveCell.Select

End Sub


Merci pour votre réponse.
Malheureusement, je n'ai pas encore réussi à la mettre en place dans ma
feuille.
certains points m'échappent encore.
Je vais chercher et si vraiment je ne trouve pas je demanderai de l'aide.

Merci encore

Octave

Avatar
docm
Au plaisir.

Amicalement

"Octave" wrote in message
news:c8tmq9$kk8$
Bonsoir,
"docm" a écrit dans le message de
news:
Oups! Correction:

Private Sub CentrerLaColonneActive()

Dim ColonnesVisibles As Single

Dim Premiere As String

Premiere = "R" & ActiveCell.Row & "C" & ActiveCell.Column

Application.Goto Reference:=Premiere

ColonnesVisibles = ActiveWindow.VisibleRange.Columns.Count

ActiveWindow.SmallScroll Toleft:=ColonnesVisibles 2

ActiveCell.Select

End Sub


Merci pour votre réponse.
Malheureusement, je n'ai pas encore réussi à la mettre en place dans ma
feuille.
certains points m'échappent encore.
Je vais chercher et si vraiment je ne trouve pas je demanderai de l'aide.

Merci encore

Octave