XL 2021 Décalé les cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

viper68

XLDnaute Nouveau
Bonjour à tous,

Voici mon souci en espérant que vous avez la solution.
J'ai un fichier excel avec 6 colonnes qui représente 6 semaines.
La 1 er semaine est composé de 14 lignes et est identique à la 3 ème et 5 ème
idem pour la 2 ème aussi composé de 14 lignes qui est identique à la 4 ème et 6 ème.

les cellules sont composée de texte.
J'aimerais quand je change le texte de ma première cellule que toutes les autres cellules se décalent d'une case
le top serai que je puisse modifier n'importe quelle cellule de n'importe quelle colonne avec me même processus.

Pas facile d'expliquer la chose.

Merci d'avance
N'hésiter pas à me contacter si ma demande est brouillon.

Vous êtes les meilleurs

Bon courage !!!
 

Pièces jointes

  • Capture d’écran 2025-02-22 à 18.56.28.png
    Capture d’écran 2025-02-22 à 18.56.28.png
    303.3 KB · Affichages: 18
  • essai planning.xlsx
    essai planning.xlsx
    9.4 KB · Affichages: 3
Bonjour,

J'aimerais quand je change le texte de ma première cellule que toutes les autres cellules se décalent d'une case
Qu'est-ce à dire que ceci ???

le top serai que je puisse modifier n'importe quelle cellule de n'importe quelle colonne avec me même processus.
C'est pas faux...



Donc tu écris "nouveau" à la place de "agent 1", et tu veux que ça fasse quoi ?
 
Dernière édition:
un début de solution.. à creuser, corriger et étendre à toutes les journées
ne fonctionne que partiellement sur la colonne B

VB:
Public ValInit As String
Public ligne As Integer

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Dim TabInit() As Variant
    If Not Intersect(Target, Range("B5:B18")) Is Nothing Then
        TabInit = Range("B1:B18").Value
        If Target.Value <> ValInit Then
            For i = UBound(TabInit, 1) To Target.Row + 2 Step -1
                TabInit(i, 1) = TabInit(i - 1, 1)
            Next i
            TabInit(Target.Row + 1, 1) = ValInit
            TabInit(Target.Row, 1) = Target
            Application.EnableEvents = False
            Range("B1:B18") = TabInit
            Application.EnableEvents = True
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    ValInit = Target.Value
    ligne = Target.Row
    'MsgBox ValInit.Value
End Sub
 
après.. tu parles de semaine.. je présume qu'il s'agit donc d'un planning
et que tu souhaites faire des rotations (les fameux décalages)

si tu expliquais plus en détail ton projet global, je suis prêt à parier qu'on pourrait passer par des Tables Structurées
il "suffirait" d'insérer une ligne la ou tu souhaites changer le nom, (ce qui provoquerait directement le décalage vers le bas) et supprimer la dernière ligne de la table pour garder le meme nombre de ligne..
 
Bonjour vgendron,
J'espère que vous allez bien.
Je suis de retour désolé pour l'absence
Donc oublions la demande précédente
Et encore merci pour votre travail.
Ci joint le fichier excel.
12 colonnes qui représente le travail du dimanche
Serait'il possible quand je renseigne un autre nom dans la première cellule "nouveau" à la place de "agent 1"
que agnet 1 se décale vers le bas et que l'agent 14 du bas de la liste passe dans la colonne de droite et prend la place
de l'agent 15, et ainsi de suite jusqu'à la colonne 12. ( on peut le faire sur une année pourquoi pas ? sinon je copirai la formule et je recommencerai mes 12 dimanches
Est-ce possible que la formule me permette de remplacer un nom au milieu du tableau et les autres se décalent.
Par la suite j'aimerais affiné encore l'automatisme mais une chose à la fois

Merci pour votre travail, bon courage
 
Hello

voir PJ
1) j'ai nommé la plage "Planning" sur la feuille ==> Voir gestionnaire de nom
2) double clic ==> saisir le nouveau nom
==> le décalage s'effectue sur les 2 colonnes

vu que les colonnes sont identiques 2 à 2 , j'ai mis des formules dans les colonnes 3 à 12
si besoin d'avoir des colonnes 3 à 3, il suffit de changer la variable "nbcolplanning" dans le code
 

Pièces jointes

Bonjour Vgendron,
Pas facile d'écrire une demande, je sias pas si on peut se tél ???? et surtout si cela ne vous convient pas, je comprend.
Le tableau avance mais je ne voudrais pas vous solliciter trop longtemps.
Vous pouvez oubliez le fais que les colonnes soient identiques de 2 en 2, j'aimerais que le décalage se fasse automatiquement jusqu'à la colonne 12 avec le code de la colonne 1
Merciiiiiiiiii
 
Bonjour

le Tel, tu oublies..
1) les membres du forum sont bénévoles ==> y a pas d'assistance téléphonique comme pour une boite de dev
2) les échanges qu'on pourrait avoir ne bénéficieraient pas aux autres membres du forum, et à ceux qui auraient la meme problématique que toi

pour le décalage sur les 12 colonnes, plutot que 2, tu as la réponse dans ce que j'ai écris à la fin du post 13
si besoin d'avoir des colonnes 3 à 3, il suffit de changer la variable "nbcolplanning" dans le code
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
508
Réponses
3
Affichages
464
Retour