Décalage de cellule en fonction du weekend

0

Bonjour,

Je cherche à créer un décalage de cellule en fonction du weekend.

En "A1" je rentre une date
En "A3" > "A100", une liste de date s'affiche en J+1 avec "A3"="A1" et les weekends sont affichés en couleur de police rouge. Des données sont également présentent dans les colonnes "B3" > "E100".

Si dans la liste de date, "An" = samedi, alors le contenu de "Bn" à "En" se décale de 2 cellules vers le bas, car ("An"+2 = lundi)

Ce qui veut dire que sur les lignes des weekends, il n'y a que les dates en "An".

Quelqu'un peut m'aider svp ?

Merci d'avance

Posté le 9 mars 2016, 14:01
par Jessica
Répondre
0

Bonjour,

Je te propose la solution SANS MACRO suivante :

http://www.cjoint.com/c/FCkkIrgU7sI

Tu cliques sur le lien et tu suis les instructions pour récupérer le fichier.

Comment cela marche :

Si j'ai bien compris ton problème, tu reçois une série de données de B3 à E100 et tu veux, après coup, affecter une date progressive de 1 à chaque éléments en n'affectant rien au WE.

Sans utiliser de macro, il est naturellement pas possible de réaménager l'onglet source.  Il faut nécessairement refaire le tableau dans un deuxième onglet.  J'ai donc baptisé ton onglet source "ORIGINAL" et l'onglet remanié "ADAPTATION".  

Dans l'onglet ORIGINAL, il faut commencer par insérer une colonne supplémentaire en A.  Cette colonne contient tout simplement la numérotation des lignes à adapter.  Attention : puisque nous allons passer 2 lignes par WE dans l'onglet "ADAPTATION", il sera nécessaire d'étendre la plage des dates pour pouvoir absorber toutes les lignes puisque, nécessairement, les données allant de 3 à 100 càd 98 lignes et que nous ne mettons rien dans les 2 lignes de WE dans l'onglet ADAPTATION il faudra que celui-ci puisse aller au-delà de la date prévue en ligne 100 de l'onglet ORIGINAL.

Je n'explique pas la colonne B (anciennement A) puisque cela tu sembles avoir maîtrisé ainsi que la gestion de la mise en forme conditionnelle pour les caractères en rouge pour les WE.

Passons à l'onglet "ADAPTATION" :

 La colonne B est une simple reproduction des cellules de la colonne B de l'onglet "ORIGINAL)

La colonne A numérote avec un pas de 1 les lignes utilisables donc la numérotation s'arrête durant les WE (la formule ajoute 0 les WE.

=A2+SI(OU(JOURSEM(B3;2)=6;JOURSEM(B3;2)=7);0;1)

Attention ne rien mettre dans la cellule A2

La colonne C et suivantes contiennent les données par : 

mise à blanc les WE et recherchV de la ligne numérotée en colonne A 

=SI(OU(JOURSEM($B3;2)=6;JOURSEM($B3;2)=7);"";RECHERCHEV($A3;Original!$A$3:$F$100;COLONNE();FAUX)))

La fonction recherchV va toujours chercher le 1er élément qu'elle trouve dans la plage et donc elle néglige les doublons créé par les WE.

A remarquer :

1 les colonnes A peuvent être masquées pour alléger les tableaux à la lecture : elles ne sont utiles que pour les tests.

2 la recherche de fait toujours sur la plage d'origine "$A$3:$F$100" puisque les dates suivantes servent simplement à donner les jours nécessaires pour consommer les données non utilisées à cause des WE.  Il aurait été possible de ne pas mettre ces dates dans l'onglet ORIGINAL et de les générer directement dans l'onglet ADAPTATION mais cela aurait compliquer la formule et comme dans l'onglet ORIGINAL elles ne gênent pas, autant les mettre là.

3 le numéro de colonne dans la fonction de recherchV se calcule automatiquement via le numéro de colonne de l'onglet ADAPTATION : COLONNE()

J'espère avoir été clair et reviens vers moi si problème.

De toute façon, merci de confirmer si cela répond bien à tes attentes.

A+

Chris

Posté le 10 mars 2016, 11:54
1

Bonsoir Chris,

Merci tu as tout compris, c'est exactement ce que j'attendais :)

Encore MERCI ;)

Posté le 11 mars 2016, 21:40

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :