Evenement sur reconnaissance de lettres

Bonjour à tous, je suis nouveau sur ce forum et dans le cadre de mon travail je réalise un planning sur mesure.

Ma question:

J'ai pour chaque agent une liste de choix par jour de travail (présent, malade, congé, Hsupp..) et je voudrais que, si je choisis Hs, cela bascule vers la page heures supp, ligne suivante avec extraction de la date et du nom de l'agent de manière à ce qu'il me reste à remplir les horaires et le motif sur une autre feuille de calcul.

J'éspère que c'est possible, merci d'avance à tous..

Bah alors personne pour moi ? c'est pas gentil ça

Bonjour et bienvenu,

La plupart de temps si une question reste sans réponse, ce n'est pas la faute des intervenants. C'est surtout faute de précisions ou bien un manque de support. Pour le moment, dans ta demande aucun détail peut nous mettre sur la piste. Reviens avec plus de détail ou bien envoi un fichier au format .xls avec quelques explications là dessus concernant le résultat voulu. Tu jugeras après si nous sommes gentils ou pas même si notre objectif principal, c'est la partage de connaissance.

oui je me doute bien c'était une petite plaisanterie...je vais essayer d'envoyer une feuille xls pour vous mettre sur la voie, de mon côté il faut que je me perfectionne sur les requêtes, alors si vous avez des sites où c'est bien expliqué ça m'aiderai beaucoup

Voilà un fichier joint, enfin je crois, donc sur la page test il y a des cases avec un choix de validations.

J'aimerai que sur le choix Hs:

ça passe à la page HeuresSupp en extrayant le nom de l'agent et la date puis à la ligne suivante

Est-ce assez explicite ?

https://www.excel-pratique.com/~files/doc2/AKMsEcours.xls

Ha oui pardon voila l'adresse du fichier

Et j'ai aussi des problèmes pour comprendre l'extraction de données par rapport à des critères de choix.

Si quelqu'un peut me donner des liens faciles et compréhensibles, merci d'avance.

Re,

Le fichier ne permet de tester ce que tu demandes. Il faut au moins plusieurs feuilles dont les noms correspondent exactement les choix de la liste déroulante. Sans connaître les structures des feuilles qui vont correspondre au choix, on ne peut pas avancer de façon efficace.

PS : ce que tu demandes nécessitera une macro évènementielle.

merci pour la réponse Raja, mais je ne comprends pas ce que tu veux dire. Effectivement je souhaite une macro évenementielle à la reconnaissance du choix "Hs" dans la liste déroulante qui m'enverrai sur l'autre page à la ligne suivante.

Saurais tu m'aider à le faire ?

Re,

Est-ce que tu veux uniquement faire ça pour le code Hs ?

Oui car je voudrais comprendre la manipulation afin d'enrichir mes pauvres connaissances excel et savoir le refaire ultérieurement..

En tous cas merci pour les réponses ça fait plaisir de se sentir aidé..

Re,

Avec ce code suivant dans la feuille "test"(feuille source) et la feuille HeureSup renommer comme HS (correspond le choix de la liste déroulante et ceci permet d'atteindre la feuille destination),ça doit normalement marcher :

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  DerLig = Sheets("HS").Range("A65536").End(xlUp).Row + 1
  Sheets(Target.Value).Range("A" & DerLig) = Cells(Target.Row, 2)
  Sheets(Target.Value).Range("C" & DerLig) = Cells(3, Target.Column)
End Sub

PS : J'ai effectué le test en Excel.

j'ai copié-collé le code, ça marche à moitié de ce que je veux au final, c'est génial mais c'est déjà une bonne part de ce que je veux..youpi !!

Alors si tu n'y vois pas d'inconvénients voici où je voudrais en venir:

vu que tu as compris ce que je souhaite:

Quand je choisis Hs dans ma liste déroulante ça extrait le nom de l'agent et la date d'effet sur l'autre page; 1ère étape réussie.

La 2ème étape consiste à y ajouter le motif et l'heure de début plus l'heure de fin. Donc dans le code VBA je voudrais qu'en plus d'extraire la date et le nom de l'agent, la page Hs passe au premier plan directement sur la cellule motif à coté du nom de l'agent.

Suis-je compréhensible ?

encore merci..

Ah oui et aussi est-ce possible que si j'efface Hs sur quelqu'un parce que je me suis trompé, ça efface la ligne correspondante dans la feuille Hs ??

Raja ??

520160817100756.pdf (110.31 Ko)

Re,

Je reviens après WE. Je te conseille pour la prochaine fois de présenter un problème dans sa globalité et ne pas demander coup par coup sauf si les sujets sont différents. On gagnera du temps.

Deuxièmement, où il sont les données motif, heure début, heure fin dans la feuille test pour être recupérées et inscrire dans l'autre feuille HS ?

Bonjour Raja,

je reviens de 3 semaines de vacances comme ça j'ai fait tous les ponts.

Je te remercie encore pour l'aide que tu acceptes de m'apporter.

Pour en revenir à ma feuille, il est vrai que pour plus de compréhensions je présente mes problèmes au fur et à mesure de l'évolution de mon document.

Je voudrais apprendre en même temps donc pour le moment je voudrais bien comprendre les quelques lignes de code que tu m'as donné.

Tu veux bien m'expliquer les expressions utilisées et la logique de ce code s'il te plaît ?

Pour répondre à ton deuxièmement:

Les données "motif" "heure début" et "heure fin" vont être à saisir manuellement, c'est à cela que ma feuille Hs sert. A stocker les informations heures supp de tous les agents mais en ayant extrait le nom et la date de l'agent pour éviter de la saisie supplémentaire.

Avec tous mes remerciements encore.

Re,

Ce n'est facile, pour moi, de me rappeler ce que j'avait fait il y a 3 semaines. Je vais essayer. Remplace le code précédent par celui-ci :

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  DerLig = Sheets(Target.Value).Range("A65536").End(xlUp).Row + 1
  Sheets(Target.Value).Range("A" & DerLig) = Cells(Target.Row, 2)
  Sheets(Target.Value).Range("C" & DerLig) = Cells(3, Target.Column)
  Sheets(Target.Value).Select
End Sub

Comme ça, la feuille dans laquelle la dernière ligne a été rajouté se passe au premier plan pour compléter ta saisie des données.

En ce qui concerne l'explication du code, voici quelques lignes peut être utiles pour ta compréhension :

Ce code (un code évèmentiel , ici le changement du contenu de la cellule, lié à la feuille Excel) marche quand on sélectionne une cellule dans la feuille source et on CHANGE le contenu de cette cellule.

Target : la cellule sélectionnée pour un choix du nom de la feuille dans la feuille source,

1ère ligne : gestion des erreurs par exemple sélection d'une feuille qui n'existe pas,

2ème ligne : cherche et trouve la dernière cellule non vide de la colonne A de la feuille destination qui a été choisie dans la liste déroulante de la feuille source afin de remplir les données.

3ème ligne : On insère le contenu de la cellule de la colonne B de la feuille source dans la colonne A de la feuille destination.

4ème ligne : On insère le contenu de la cellule de la ligne 3 de la même colonne de sélection et modification de la feuille source dans la colonne C de la feuille destination.

5ème ligne : sert à sélectionner la feuille de destination qui a été dernièrement remplie.

Ok, je vais me répéter souvent mais je te dirai jamais assez merci pour ton aide.

Je me permets de continuer

Dans le même temps j'effectue des recherches pour comprendre les instructions VBA que tu utilises. C'est un bon moyen pour moi d'apprendre à programmer en VBA sur un classeur que je veux faire évoluer.

Je ne trouve pas de site avec des cours faciles.

Pour en revenir à mon document, j'avais essayer d'inserer la ligne sheet"hs".select mais du coup ça le faisait pour n'importe quelle séléction. Bien vu pour le sheet(target.value).select

Par contre j'ai essayé de déplacer la colonne "date" de la feuille hs à la fin pour éviter de promener le curseur partout mais je n'arrive pas à comprendre comment faire suivre la donnée date à son nouvel emplacement.

Par ailleurs je voudrais aussi que le curseur se place sur la colonne motif à côté du nom qui vient d'être recopié lorsque la feuille hs apparaît. C'est possible ?

Enfin je voulais te dire que tes explications sont très claires et me permettent d'apprendre vite, merci encore et encore...

Voici le classeur évolué un peu.

En effet j'ai regroupé les listes de validation dans une feuille nommée "Base".

Il y a en plus une ligne de récupération des heures

+ une feuille de récapitulation pour chaque agent.

Donc je voudrais qu'il se passe la même chose pour le choix "Ré" dans la liste de validation que pour le choix "Hs".

En effet la date ne s'affiche pas dans la feuille "Ré" mais je ne sais pas comment faire.

Enfin quand dans la feuille Hsindiv, je voudrais qu'en choisissant le nom et le mois par liste de validation, cela récupère les données correspondantes, tu me suis toujours ?

Merci merci merci, je crois qu'il va falloir que je t'ofre un resto un de ces 4...

Mince je peux pas télécharger le classeur..tros gros, plus de 100k....

Rechercher des sujets similaires à "evenement reconnaissance lettres"