XL 2010 Ecrire automatiquement des données dans des cellules

jeje77

XLDnaute Junior
Bonjour à tous,

J’ai deux tableaux liés entre eux pour les MFC, Lors des changements d'année mes tableaux changent et le surlignage change dans le tableau 2 avec les dates correspondant au tableau 1.

J'aurais voulus savoir si il était possible d'écrire automatiquement les lettres" XP " dans les cases surlignées dès lors que c'est un week-end ou un jour fériés.

Je ne sais pas si il faut passer par une MFC ou si il faut que ce soit fait par le biais d'un module VBA

Ci-joint un exemple de mon fichier.

Par avance je vous remercie pour votre aide

Cordialement
 

Pièces jointes

  • Test XP.xlsx
    26 KB · Affichages: 16

job75

XLDnaute Barbatruc
Je m'étais basé sur ce qui est écrit dans le fichier mais s'il faut se limiter aux Week-ends et jours fériés modifier le code ainsi :
VB:
'---liste des jours de garde---
tablo = [B7].CurrentRegion.Resize(, 2).Value2 'matrice des valeurs, plus rapide
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    If tablo(i, 2) <> "" Then If Weekday(tablo(i, 2), 2) > 5 Or IsNumeric(Application.Match(tablo(i, 2), [Feries], 0)) Then d(CStr(tablo(i, 2))) = ""
Next i
Fichier (2).
 

Pièces jointes

  • Test XP(2).xlsm
    27.9 KB · Affichages: 7

jeje77

XLDnaute Junior
Je m'étais basé sur ce qui est écrit dans le fichier mais s'il faut se limiter aux Week-ends et jours fériés modifier le code ainsi :
VB:
'---liste des jours de garde---
tablo = [B7].CurrentRegion.Resize(, 2).Value2 'matrice des valeurs, plus rapide
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    If tablo(i, 2) <> "" Then If Weekday(tablo(i, 2), 2) > 5 Or IsNumeric(Application.Match(tablo(i, 2), [Feries], 0)) Then d(CStr(tablo(i, 2))) = ""
Next i
Fichier (2).

Merci pour cette modif,
Ca écrit bien que sur les samedis ou dimanches mais on ne peut toujours pas modifier ou effacer une fois que les "XP" sont écrits.
comment faire pour que cela soit modifiable ?
 

jeje77

XLDnaute Junior
La seule solution est de ne pas utiliser une macro évènementielle, renommez la macro Sub MAJ() et lancez-la quand vous le désirez.

Super, Merci pour cette précision. je ne savait pas que "Worksheet_Change(ByVal Target As Range)" était une macro événementiel.
C'est ce que je souhaitais pouvoir automatisé pour éviter les oublis et par conséquence le non paiement de la prime panier.
Mais est il possible dans la copie des"XP", d'incorporer les jour fériés qui sont dans le Tab.1 et qui sont surlignés dans le TAB.2

Encore merci pour votre aide
 

jeje77

XLDnaute Junior
je ne trouve pas pour adapter le code aux feuilles de mon classeur. Je ne trouve pas le code qui pourrait correspondre pour chercher les informations entre les differentes feuilles
je vous met le fichier épuré pour voir !!! :(
Les feuilles Janv_1, Fevr_1, Mars_1 etc ... normalement il y en à 48 Jusqu’à Dec_4.
Ces feuilles vont chercher les données sur la feuille "CALENDRIERS UT" Pour les jours de gardes et sur la feuille "EFFECTIFS" pour les jours fériés
 

Pièces jointes

  • gestion Absences.xlsm
    123.9 KB · Affichages: 3

jeje77

XLDnaute Junior
Ce n'est plus le problème posé au post #1 mais le développement d'un projet.

Tâchez de résoudre les problèmes un par un et quand vous n'y arrivez pas créez une nouvelle discussion.

OK, je pensais que l'adaptation du code n'aurait pas été si compliqué pour moi qui suis pas trop doué en VBA.

En tout cas, merci pour votre aide.

Je vais ouvrir une nouvelle discussion.

Bien cordialement
jeje77
 

Discussions similaires

Statistiques des forums

Discussions
312 036
Messages
2 084 812
Membres
102 676
dernier inscrit
LN6