Me voici confronté à un problème dans la création d'un document de plannification avec Excel.
Je m'explique:
J'ai créé un document permettant la plannification ainsi que l'affichage d'un planning, style Microsoft Project.
J'aimerais ajouter une ligne ou un réctangle sur/autour de la semaine actuelle. Cette forme devrait s'actualiser et se déplacer automatiquement en fonction de la date.
Est-ce qu'une telle solution est envisageable avec de simples formules Excel ou faut-il requerir à VBA?
En annexe se trouve le document concerné.
D'avance merci à tous pour vos conseils, aide, et coups de mains.
Re : Déplacement d'une forme en fonction d'une date
Bonsoir gub156,
Pourquoi ne pas continuer avec des MFC, puisque tu as commencé?
Une bordure de couleur à gauche du premier jour de la semaine et une autre à gauche du lundi qui suit, ça ne conviendrait pas?
Re : Déplacement d'une forme en fonction d'une date
salut
avec un rectangle prédéfini (nom, taille, bordure, autres...)et une petite macro
Code:
Sub cadre()
Dim C As Byte
Do: C = C + 1: Loop Until Cells(8, C) > Date
Cells(11, C - 7).Select 'pas obligatoire
ActiveSheet.Shapes("R_1").Left = Cells(10, C - 7).Left
ActiveSheet.Shapes("R_1").Top = ActiveCell.Top
End Sub
Re : Déplacement d'une forme en fonction d'une date
Bonjour ROGER, Si...,
En attendant la réponse de gub156 (s'il repasse un de ces jours) j'avais travaillé avec une forme automatique. Dans la pièce jointe, il y a cette forme (en "zone bleue") et une petite MFC sur les lignes 6 à 10.
Pour la macro, il conviendra de placer le code plutôt dans le Workbook_Open.
Je me suis permis de supprimer un paquet de lignes pour "alléger" le classeur.
Re : Déplacement d'une forme en fonction d'une date
Re bonjour à tous.
En exhumant le code d'un classeur d'étude sur les formes, j'y ai laissé une erreur de débutant !
Il est inutile (et même nocif) de sélectionner la forme pour la modifier. Un code plus correct est :
Code:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim r As Range
With [A3:C3]
If Not Intersect(Cible, .Cells) Is Nothing Then
On Error Resume Next
Set r = Range(.Cells(1).Value).Resize(.Cells(2), .Cells(3).Value)
If Err.Number Then
Cible.Select
Else
On Error GoTo 0
With ActiveSheet.Shapes("Frame 1")
.Left = r.Left
.Top = r.Top
.Width = r.Width
.Height = r.Height
.Adjustments.Item(1) = 0.5 / .Height
End With
End If
End If
End With
End Sub
Re : Déplacement d'une forme en fonction d'une date
Bonjour à tous,
Merci à tous pour votre aide. Les solutions proposées sont toutes très intéressantes.
La solution de Modeste me paraît la plus pratique car automatique. Je vais donc me servir de celle-ci dans mes documents.