Décaler colonne chaque jour

Bonjour à tous

j'aurai besoin d'aide pour modifier un code qui devra decaler les colonnes en fonction de la date du jour

je souhaite que dans la colonne "G" figure toujours la date d'aujourdhui

exemple si j'ouvre mon fichier chaque jour, les colonnes se decaleront de 1 colonne

et si je l'ouvre au bout de 7 jours, les colonnes se decaleront à ce moment la de 7 colonnes

Voici une copie d'écran de la feuille excel ci jointe

decaler2

Merci à ceux qui prendront de leur temps pour m'aider

http://cours83infirmier.fr/excel/Zebulonzzz_DECALER_GAUCHE_V1.xltm

Salut

On est d'accord que tu l'on détruit les informations que l'on décale vers la gauche? genre la du 09 au 14 toute les informations sont perdues à jamais? faire l'inverse, décaler vers la droit et inverse l'ordre des dates (les dates les plus anciennes vers la droite du fichier) ne t'intéresse pas?

Tu veux forcément 5 jours avant la date et 6 jours après la date dans ton tableau?genre les dates du 21 au 26 tu y mets des données que tu remplies en avance de phase?

ECG

Bonsoir,

Je ne comprend pas complètement votre demande ni surtout l'objectif que vous souhaitez atteindre.

Par contre je viens d'élaborer un fichier pour une demande qui me semble voisine de la votre. Vous pouvez regarder si les fonctions peuvent vous convenir.

Cordialement.

Serge

https://forum.excel-pratique.com/posting.php?mode=reply&f=2&t=101418#

Bonjour ExcelCoreGame

merci de ton aide,

dans ma feuille finale, j'ai 18 MOIS dans le passe (environ 540 colonnes) et 18 mois dans le futur (environ 540 colonnes de part et d'autre), mon jour d'aujourd'hui est toujours visible sur la meme colonne une fois le decalage effectué.

effectivement il serai interesserant pouvoir revenir en arrière, comment pourrais-je procéder selon toi ?

Pour automatiser le decalage, en cherchant un peu j'ai utilise une boucle et nommer mes cellules ce qui me donne ce code sur ma feuille finale (Je mets juste le code et pas le fichier qui est trop trop lourd)

Sub Decaler_planning2()

    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    'ActiveWorkbook.Unprotect Password:=Range("MDP")

    Dim i As Integer, Ligne As Long
    If Range("AVG33") = 0 Then Exit Sub 'DATE_DERNERE_CS_PLANNING2
    For i = 1 To Range("AVH33").Value 'CURSEUR_COL_GLISSER (qui donne le nombre de jour passé entre DATE_DERNERE_CS_PLANNING2 et aujourdhui
    'Macro appelée
    Call Glisser_colonnne2 ' decaler le planning du nombre de jour depuis la dernière consultation
    Next i

    Range("AVG33") = Now() 'DATE_DERNERE_CS_PLANNING2 mise à jour avec aujourdhui
    ActiveWindow.ScrollColumn = 648 ' colonne "XX" qui est la colonne ou figure les  données decalées sur aujourdhui

    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    'ActiveWorkbook.Protect Password:=Range("MDP")

End Sub

Sub Glisser_colonnne2()

'-- décalage des 11 derniers mois sur le premier
Range("BX33:AVF230").Cut Destination:=Range("BW33")
'--- recopie la dernière colonne à droite
Range("AVE33:AVE230").AutoFill Destination:=Range("AVE33:AVF230"), Type:=xlFillDefault
'Range("M2:M7").ClearContents
'---- Prend le format de la colonne D et le copie en E
Range("BW33:BW230").Copy
'Range("L1").PasteSpecial Paste:=xlFormats
Range("AVF34").Select
Cells.EntireColumn.AutoFit

End Sub

je recherche surtout une macro rapide car elle se réalisera a chaque ouverture de fichier et si le fichier n'a pas été ouvert depuis 15 jours par exemple, le temps devra rester le plus court possible

Si tu peut m'aider à améliorer le code de la macro pour l'optimiser en rapidité car je n'y connais pas grand chose a part quelques trucs glané sur le net ici et la

Ce code sur ma feuille exemple donne ceci, je précise qu'il fonctionne et que je cherche à l'améliorer, le rendre "propre" (et rapide sur ma feuille finale qui est beaucoup plus grande)

http://cours83infirmier.fr/excel/Zebulonzzz_DECALER_GAUCHE_V2.xltm

lheveder,

ta feuille fait ce que je recherche à faire, mais tu fais des choses que je ne souhaite pas faire (multiples onglets)

Jeff

Je n'ai pas suivi, comment cela "revenir en arrière"? ^^

18 mois dans le passé et le futur? :O ce n'est pour la colonne G ou tu auras la date du jour si tu as autant de jour de chaque coté nan?

Je regarderais ta macro ce soir si j'ai le temps, un membre du forum va bien réussir à te trouver ce qu'il te faut

ECG

Merci c'est sympa de jeter un oeil

Je viens de regarde ta macro vite fait

Première question, c'est vraiment long dans ton fichier final si tu es absent 15 jours?

Sinon en terme technique (il y a meilleur que moi en optimisation sur le forum, j'espère qu'il se manifesteront) sans forcément vouloir refaire toute ta macro, je vois surement une amélioration si j'ai bien compris la macro (mais à voir si c'est faisable facilement):

Tu call ton Glisser_colonne2 autant de fois que tu décales de jour, en gros si tu est absent 15 jours, ça va décaler 15 fois, c'est surement ce qui prend du temps

Il vaudrait mieux calculer d'un coup de combien de jour tu as été absent par rapport à la valeur dans ta colonne date actuelle (par exemple 15 jours disons), de décaler tout ton tableau d'un coup (de 15 colonnes donc et de mettre en forme les 15 nouvelles colonnes de journée qui seront vide donc.

Le but est de faire en une seule itération toute les étapes qu'on soit absent 1 journée ou 200

ECG

Tu as tout à fait raison pour le coup de l'iteration, faire une seule manip quelque que soit le nombre jour d'absence mais je sais pas faire.

par contre j'ai essaye un decalage avec les values et ça m'a l'air plus rapide.

'-- décalage de la plage Agent 01
Range("BX46:AIR48").Value = Range("BY46:AIS48").Value
Range("AIR46:AIR48").AutoFill Destination:=Range("AIR46:AIS48"), Type:=xlFillDefault

Cela te prends combien de temps? fait toi un fichier test et modifie la date actuelle de ta cellule (genre 22/11/2017 => 10/11/2017) puis lance ta macro à la main (F5 pour rappel) et tu vois combien de temps cela mettrais avec ton décalage par values

Ou carrément 1 mois d'absence, voir si vraiment il y a besoin de modifier ou pas, je suis feignant de base, si ça marche bien comme ça autant ne pas réinventer la roue

ECG

Bonjour,

Salut à tous !

Je n'avais suivi que de loin ton sujet, car il m'avait semblé que tu te lançais dans des développements quelque peu compliqués dans lesquels je n'avais ni le temps ni l'envie d'entrer... Mais j'avais noté au passage ton idée de planning glissant, ayant quelque part un embryon de projet de l'espèce, que je n'ai d'ailleurs toujours pas retrouvé !

L'idée me titillant, j'ai mis à profit un délai d'attente chez mon médecin pour griffonner un modèle...

Restait à le matérialiser sur Excel. Là j'ai mis à profit le fait que je devais me lever tôt (nécessité d'une analyse..., et pour me lever tôt ma solution étant d'éviter d'être endormi dans les heures qui précèdent, il fallait que je les occupe... ! )

Je livre donc volontiers le résultat, au cas où cela pourrait t'inspirer.

C'est un modèle que je qualifierais de hybride : La partie calendaire est assurée pour l'essentiel par des formules, VBA n'intervient que pour ouvrir avec la date du jour au centre, et pour gérer les données, qui sont stockées ailleurs lors des saisies (sous listes déroulantes) et rétablies en fonction des dates lors des changements.

Le glissement s'opère au moyen d'une ScrollBar : on peut remonter jusqu'au 01/01/2017 (borne fixe pour le passé), on peut par contre aller jusqu'à environ 500 jours au-delà de la date du jour (borne évolutive tous les 10 jours, en raison d'un arrondissement...)

Les ScrollBar ont un pas court et un pas long, le court (clic sur les flèches d'extrémités) fait glisser de 1 jour, le long (clic dans la barre) de 10 jours.

La date du jour est signalée par une flèche au-dessus et est mise en gras.

Le bouton Aujourd'hui rétablit l'affichage comme à l'ouverture (date du jour au centre).

Les samedi, dimanche et fériés sont légèrement grisés.

La zone planning, limitée à 4 lignes (c'est un modèle !) est dédiée à un affichage de noms en regard de tâches à assurer... (d'où les listes déroulantes pour la saisie). Chaque nom a sa couleur : la liste de noms se trouve sur la feuille Listes, on peut la faire évoluer et mettre une couleur de fond pour chaque nom (un bouton à côté de la liste est destinée à mettre à jour les MFC en cas de modifications).

Sur la même feuille sont listés les fériés (calculés sur l'année figurant à gauche sur la feuille Cal).

Je n'ai pas eu le temps de vérifier que tout était en place et que cela fonctionnait sans bogue... Je suis donc preneur des anomalies constatées... Je peux aussi fournir des explications complémentaires si besoin.

Cordialement.

Bonjour à tous,

Je déterre ce sujet du regretté MFerrand,

Le fichier joint par celui ci est assez atypique, car j'ai rarement vu de planning glissant comme celui ci, lorsque je cherche sur le net la création des barres de défilement, celles ci sont crées de façon à voir de dynamiquement des données saisies sur une autre feuille,

C'est un peu pour le fun car j'aurai pu faire bien autrement et ça m'aurait convenu, mais j’aurais bien aimer reproduire ce qu'avait réaliser MFerrand adapté à ma demande :

J'en viens donc à celle ci en joignant un fichier accompagné de celui de MFerrand, afin que les spécialistes VBA appréhendent au mieux ce qu'il avait réalisé, et l'adapté à mon cas,

Merci d'avance pour votre aide,

Bonjour à tous,

J'ai tenté de modifier la proposition VBA moi même mais je suis limité, je rejoins donc le fichier avec les modifications que j'ai tenté d'apporter :

La saisie se reporte bien sur Memo2 mais la barre de défilement ne fonctionne pas, j'ai du louper quelque chose dans le code à modifier,

Merci pour votre aide,

Cordialement,

Bonjour à tous,

J'ai modifié le fichier et arrive presque au résultat attendu, mais les données ne défilent pas, j'ai du zappé quelque chose dans le code VBA,

Merci d'avance pour votre aide,

Cordialement,

Rechercher des sujets similaires à "decaler colonne chaque jour"