Conseil pour Excel soucis pour realiser proje

coupidon -  
 calcifer -
Bonjour, à tous

Je souhaiterais l'aide de quelqu'un de la toile qui serais un crack sur le tableur excel, voilà mon ptit soucis.
J'aimerais créer un projet sur excel et je n'arrive pas à utiliser les formules du tableur me plante tous le temps, ou mis prend mal, j'ai utiliser la foncton si mais n'arrive pas a faire une chaine correcte, jsuis dans l'impasse totale.

J'aimerais quand une personne rentre une date que son prenom s'affiche dans le calendrier, sois en prenant qu'un jour ou quand elle en prend sur deux dates mais qu'elle s'affiche sur toutes les dates entre ex: 10/10/08 au 13/10/08 j'aimerais que le prenom apparaisse le 10/10/08, le 11/10/08, le 12/10/08 et le 13/10/08...

Pour simplifier j'ai 2 feuilles:

1ere feuille un calendrier
sur 12 paires de colonne j'ai les mois : premiere colonne les jours sous forme de texte ex : jeudi 01
la seconde colonne vide
ex :

janvier fevrier
jeudi 01 vide samedi 03 vide
vendredi 02 vide dimanche 04 vide

2eme feuille ma base de données
avec 5 colonnes : premiere colonne un n° de matricule qui correspond à un nom
deuxieme la date du jour a prendre
troisieme une date de début
quatrieme une date de fin
cinquieme le nom qui correspond au matricule

j'ai 7 personnes qui s'encode dans la base qui se crée toute seule mais aleatoirement, parce qu'elle ne prenne pas de date en meme temps c'est selon les besoins, mais ne peuve sois prendre qu'un jour ou un groupe de jour comme l'exemple:

matricule date du au prenom
2551 10/10/08 VIDE VIDE Julie
3642 VIDE 12/10/08 15/10/08 fabien
2000 20/10/08 VIDE VIDE claire
2551 VIDE 5/11/08 7/11/08 julie

j'aimerais selon la date que le prenom s'inscrive dans le calendrier tous simplement, facile à dire mais à faire plus complexe qu'il n'y parait, j'ai essayer plusieurs astuces mais les formules que j'utilise ne convienne pas. est ce que quelqu'un aurait un exemple sur le même projet ou si on peu m'aider merci à tous...
A voir également:

8 réponses

manet61 Messages postés 211 Statut Membre 179
 
Bonjour,

Votre problème ne peut pas se résoudre avec seulement des formules. Il y a une phase d'analyse que seule la programmation pourra faire.
0
coupidon
 
Merci beaucoup, je devrais donc passer par VBA pour m'en sortir, le soucis c'est comment? car suis pas doué en visual basic?
ouille ouille ouille,lol
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

Maquette 1°jet sans programmation
Si le principe te convient, on améliorera tout ca
https://www.cjoint.com/?kFmn2GPZUn
0
xdomxfr
 
IL Y A UNE SOULTION SIMPLE A TON PROBLEME

1 TU CREER UNE FEUILLE EMPLOYE
AVEC N° DE MATRICULE ET NOM DE LA PERSONNE

EX COLONNE A N°: 1 COLONNE B NOM : JEAN PIERRE

ATTENTION UN NUMERO = UNE PERSONNE 5IMP2RATIF IL NE FAUT PAS DE3 DOUBLONS

DANS TA FEUILLE CONGES COLONNE NOM

TU UTILISE LA FONCION RECHERCHEv
TU FERA UNE RECHERCHE PAR N° DE MATRICULE DANS LA COLONNE a DE TA FEUILLE EMPLOYe ET FAIRE AFFICHER LA COLONNE B

POUR LA PLAGE DE SELECTION TU DOIS SELECTIONNER LES DEUX COLONNES A ET B POUR POUVOIR AFFICHER LE R2SULTAT

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Je souhaiterais l'aide de quelqu'un de la toile

Comme tu peux le voir, sur la toile il y a du monde pour t'aider et tu peux voir ma contribution ici :
http://www.cijoint.fr/cjlink.php?file=cj200810/cij1RDUl7Z.xls

Je t'ai fait un calendrier "perpétuel" qui permet de changer d'année en changeant l'année en tête et tout en gardant les congés antérieurs : cela me parait pratique surtout en fin d'année.

L'affichage se fait avec une fonction personnalisée adaptée à ta demande, car avec la possibilité de plusieurs congés le même jour, c'est très limité avec les fonctions standard.
Public Function conges(jour As Date, dat As Range, deb As Range)
Dim cel As Object
Application.Volatile
conges = ""
For Each cel In dat
    If cel.Value = jour Then
        If conges <> "" Then conges = conges & ", "
        conges = conges & cel.Offset(0, 3).Value
    End If
Next cel
For Each cel In deb
    If cel.Value = jour Or (jour > cel.Value And jour <= cel.Offset(0, 1).Value) Then
        If conges <> "" Then conges = conges & ", "
        conges = conges & cel.Offset(0, 2).Value
    End If
Next cel
End Function
0
calcifer
 
Bonjour,

voilà je me suis donc permis d'etudier ton ptit programme, j'ai une question pour que je puisse comprendre c'est comment et où se trouve dans ta formule?

conge
journée
journées

Je pense que tu as du nommé la colonne complete de ce nom là mais comment ?

dans journée par exemple tu as marqué
=DECALER(congés!$B$2;;;NBVAL(congés!$A:$A)-1;1)
dans journées
=DECALER(congés!$C$2;;;NBVAL(congés!$A:$A)-1;1)

comment as tu fais merci?
0
calcifer
 
Salut,

voilà, j'aimerais aussi si tu veux bien ameliorer un ptit peu se que tu m'as gentillement donner, en gardant donc le meme principe.
j'aimerais dans ma base de donner rajouter une colonne intitulé formation,
Serais t'il possible de colorier la cellule d'une couleur quand la personne aura pris un jour de formation par exemple dans le calendrier?
on garde le meme principe mais si la personne a pris un jour de formation ou plusieurs cela se colorie en couleur?
tu pense que c'est realisable?

Merci de ton aide...
0
calcifer
 
Bonjour,
je voulais te demander si il serais possible que dans ton programme,dans le cas ou je rajoute une case nommé "autres" par exemple quand une personne y serais inscrite que dans le calendrier la cellule change de couleur?
J'ai essayer en me basant sur ta programmation de faire cette excercice mais n'y suis pas parvenue?
As tu une solution...
cordialement merci..
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730 > calcifer
 
bonjour

dans le cas ou je rajoute une case nommé "autres" par exemple quand une personne y serais inscrite que dans le calendrier la cellule change de couleur?

Pour cela :
- tu sélectionnes ta plage
- menu format / mise en forme conditionnelle
- tu choisis "la formule est"
- tu mets =NON(ESTERREUR(TROUVE("autres";B2))) en remplaçant B2 par ta première cellule choisie
- tu choisis la couleur que tu veux et "OK"

j'aimerais dans ma base de donner rajouter une colonne intitulé formation,

Dans la saisie des congés ?
Une colonne dédiée ?

Serais t'il possible de colorier la cellule d'une couleur quand la personne aura pris un jour de formation

ou bien la police de la personne ?


tu pense que c'est realisable?

Tu sais tout est réalisable ou presque : tu me précises et je te fais la modification.

Merci de ton aide...
0
calcifer
 
Bonjour,

ce n'est pas exactement ce que je pensais.
dans ton programme ci dessous dans l'onglet congés, j'ai rajouté une colonne autre, ce que j'aimerais c'est que quand une personne choisis cette option ou qu'il y est une valeur numerique dedans que dans le calendrier ou il aura pris sa ou ces dates que la cellule se colorie en une couleur, vert par exemple?
cordialement


Public Function conges(jour As Date, dat As Range, deb As Range)
Dim cel As Object
Application.Volatile
conges = ""
For Each cel In dat
If cel.Value = jour Then
If conges <> "" Then conges = conges & ", "
conges = conges & cel.Offset(0, 3).Value
End If
Next cel
For Each cel In deb
If cel.Value = jour Or (jour > cel.Value And jour <= cel.Offset(0, 1).Value) Then
If conges <> "" Then conges = conges & ", "
conges = conges & cel.Offset(0, 2).Value
End If
Next cel
End Function
0
calcifer
 
bonjour, un gran merci à toi pour ton aide, je vais étudier ton programme et voir si je peu le mettre en application avec mon projet et je te tien au courant pour les questions qui me seront flou... merci tout plein, lol
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

"Congés" est le nom de l'onglet de saisie des congés que j'ai organisé comme tu l'avais expliqué.

Tu as bien trouvé la façon de nommer "journée" (ce sont les jours uniques saisis) et "journées" (c'est la colonne où est saisi le début de plage).

où se trouve dans ta formule?

L'affichage se fait avec une fonction personnalisée que j'ai appelée "conges" et dont je t'ai donné le code dans le précédent message.

Pour l'utiliser tu l'encodes comme n'importe quelle formule excel avec par exemple :

=SI(S15="";"";conges(S15;journée;journées))

et tu obtiens le prénom de tous ceux qui ont posé un congé pour la date en S15, séparés par une virgule.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Si j'ai compris ta demande, je te donne un exemple :

http://www.cijoint.fr/cjlink.php?file=cj200812/cijEcM9OgI.xls

J'ai remplacé le caractère espace par un espace insécable (alt + 255) pour séparer les demandeurs éventuels dans la colonne "autres" et par une MFC je met en vert si ce caractère est présent.
0
calcifer
 
Alors là, chapeau c'est exactement cela que je cherchais à obtenir. Grand merci gbinforme
Seulement ce n'est pas une date qui est affiché dans la colonne autres mais des nombres de jours, j'avais pensé la même chose dans l'idée mais on y est presque...lol
Je veux garder ton principe vois tu, si je prend un jour je suis inscrit mais si en plus j'ai la colonne autres correspondant au nombre de jour je suis en couleur.
Et si je suis de telle date à tel date en congés et que ma colonne autres a le même nombre de jour je suis en couleur sur les dates choisis...

Je vais abuser de tes connaissances sur la programmation?
Admettons que chaque personnes est une base de données qui lui et propre?
Un onglet par personne... avec ces dates propres

Mais j'aimerais toutefois garder la base de donner congés.

Et qu'a un moment donné la personne ne veut plus prendre un congé, pour une raison ou une autre.
J'ai donc créer un bouton effacer qui permette d'enlever le congé dans l'onglet de la personne.
Mais j'aimerais qu'elle retrouve dans la base de donné congés la date qui serais effacé et qu'elle supprime la ligne pense tu que sais réalisable?
0