Bonjour,
J’ai le problème suivant que j’ai déjà pose y a un moment et qui a été résolu (étapes 1 et 2) j’ai rajouté les étapes 3 et 4 j’ai essayé de le faire mais je suis bloquée:
J’ai 2 feuilles Excel, ou je dois récupérer des données d’une feuille source et les mettre dans la feuille cible puis j’affiche ces dernières dans une listbox:
1- Chercher le nom de la personne qui en cellule F1 dans toutes les feuilles du classeur sauf la feuille Formation_Mait puis récupérer ces noms dans la ligne 1 de la feuille Formation_Mait.
2- On cherche le nom de la formation (c’est des references) qui sont en ligne 29 de toutes les feuilles des personnes et les mettre dans la feuille Formation_Mait en colonne A.
3- Chercher le nom des formations dans la feuille Nom_Formation associés aux references trouvées dans l’etape 2 et les mettre dans la colonne B de la feuille de Formation_Mait.
4. Une fois le nom de la personne et le nom de la formation trouvé, on récupére la date et on la mis dans la bonne cellule.
Le résultat s’affiche dans une listbox après avoir cliquer sur le bouton « Cliquer içi »
Exemple:
Personne A , Fomation 001 , on a la date 10/10/2020 elle se met dans la cellule C2 de la feuille Formation_Mait + le nom de la formation 001 = LabView qu’on récupère de la feuille Nom_Formation et on le met dans la cellule B2 de la feuille Formation_Mait.
Merci pour vos propositions.
Classeur1.xlsm (27,2 Ko)
Bonjour
Ma proposition ci-jointe
J’espère avoir compris
J’ai renommé ton onglet « Nom_Formation » car il y avait un blanc en fin que j’ai supprimé
Pour le nom de la formation à récupérer dans cet onglet n’ayant aucune instruction à cette fin sur la base du numéro de référence j’ai supposé que l’ordre de ces références correspondait à l’ordre croissant des formations de la liste colonne C
référence 001 formation colonne C ligne 2
référence 002 formation colonne C ligne 3
référence 003 formation colonne C ligne 4
etc…
Aucun autre lien possible à ce stade
Si il en existe un merci de me l’indiquer
Onglet « Formation_Mait » cliques sur le bouton « Traitement »
Testes et dis moi
Classeur1.xlsm (37,7 Ko)
Bonjour,
Désole pour le retard.
Ce n’est pas exactement ce que je voulais avoir.
Le problème est le suivant:
1- Chercher le nom de la personne qui en cellule F1 dans toutes les feuilles du classeur sauf la feuille Formation_Mait puis reccuperer ces noms dans la feuille « Formation_Mait » dans la ligne 1 :
2- Une fois le nom est trouvé, on cherche le N° de la formation qui est en ligne 29 dans chaque profil et dans la feuille Formation_Mait en colonne B :
3-on reccupére la reference de la formation qui se trouve en feuille formations colonne C et on la mis dans la feuille Fomation_Mait dans la bonne cellule :
4- On recupere la date et on la mis dans la bonen cellule :
Le résultat s’affiche dans une listbox apres avoir cliquer sur le bouton « Cliquer içi »
Exemple:
Personne A , Formation 001, on a la date 21/05/2020, et la référence de la formation qu’on récupère de la feuille formations est: Calcul des températures. Résultat ce met dans feuille Formation_Mait
Mon code est dans le module 14, quand je l’ai lancé la 1ere fois ca a marché puis tout a été supprimé
Classeur2 (2) (1) (2).xlsm (947,0 Ko)
Merciii
Bonjour
Pas facile à comprendre
ton explication :
1- Chercher le nom de la personne qui en cellule F1 dans toutes les feuilles du classeur sauf la feuille Formation_Mait puis reccuperer ces noms dans la feuille « Formation_Mait » dans la ligne 1 :
est inintelligible
après un qui on attend l’action c’est à dire un verbe il y en a pas donc incompréhensible pour moi
Après analyse de l’ensemble de ta description associé à l’étude de ton fichier je pense avoir réussi à mettre en place le bon traitement
Le code « Traitement » a été modifié avec tous les commentaires nécessaire à sa compréhension
J’ai testé cela semble fonctionner
J’ai pris comme principe que les numéros des formations ligne 29 sont ordonnés à l’identique pour tous les onglets « Personne X » à partir de la colonne B de 001 à XXX cette première colonne ayant pour tous les onglets le même numéro idem pour les numéros de toutes les colonnes suivantes
Le traitement a été construit dans cet esprit
J’ai conservé une anomalie dans le nom de la feuille "Formations " en fin un blanc intempestif
Si tu le supprimes il faudra corriger son nom dans les procédures qui l’utilisent et notamment pour celle de « Traitement »
J’ai mis toutes les colonnes à partir de la colonne C jusqu’à la colonne Q onglet « Formation_Mait » en format texte pour avoir une restitution de date correcte sinon certaines se mettent au format américain donc format texte à conserver et peut être à étendre sur les colonnes suivantes si besoin
Fais des tests et dis moi
Classeur2.xlsm (950,7 Ko)
Excellent, c’est ce que je voulais avoir.
J’ai essayé de clarifier avec les images je sais que ca n’a pas était simple a comprendre mais le résultat est celui que je voulais.
Merci encore
Ravi d avoir répondu à ton attente
A ta disposition au besoin
Bonne continuation
Bonjour,
J’ai mis toutes les colonnes à partir de la colonne C jusqu’à la colonne Q onglet « Formation_Mait » en format texte pour avoir une restitution de date correcte sinon certaines se mettent au format américain donc format texte à conserver et peut être à étendre sur les colonnes suivantes si besoin
Non FFO, pas de format TEXTE
remplace cette ligne pour la date comme ceci
Sheets("Formation_Mait").Cells(j, colonne) = Format(Sheets(i).Cells(30, j), "mm/dd/yyyy")
En VBA, il faut inverser le mois et le jour
Sinon, si un jour il doit faire des stats, il faudrait reprendre les dates pour les re-transformer
C’est ce que j’ai fait :
Sheets(« Formation_Mait »).Cells(j, colonne) = Format(Sheets(i).Cells(30, j), « DD/MM/YYYY »)
Hélas en format normal standard :
pour certaine date on est confronté à une inversion entre le jour et le moi
en jaune le mois et le jour sont inversés
en format texte :
La date est correct le mois et le jour sont bien ordonné
Bon nombre de fois j’ai eu ce souci que je n’ai pu résoudre qu’en utilisant le format texte hélas
J’ai consulté beaucoup de site sur le sujet et c’est la seule solution proposée pour palier à ce désordre
Donc pas le choix
Maintenant si tu as une parade je prends
Je viens de remarquer que tu proposes dans ta ligne de code une présentation différente
« MM/DD/YYYY » au lieu de « DD/MM/YYYY » comme je l’ai fais
mille excuses
j’ai testé et effectivement mon défaut a disparu
Pas très logique quand même comme présentation
Mais OK j’adopte ta solution et remets le format standard
Je joint le fichier corrigé ainsi
Merci pour ta remarque toujours très judicieuse comme toujours
donc pour Salsabil_Zaghdoudi à récupérer à la place de ma dernière version
Désolé on apprend tous les jours
Classeur2.xlsm (950,9 Ko)
Re,
Excel est anglophone, donc il faut partir sur leur système de date (Mois/Jour/Année)
d’ailleurs le moyen mnémotechnique est simplement par le fait que les jours et années ne s’écrivent pas à l’identique J=D & A=Y
Ou alors, cela dépend du contexte, utiliser DATESERIAL
Ce qui n est pas logique de mon point de vue c est qu alors que l on demande une présentation :
MM/DD/YYYY
Qui veut dire month month/dayday/year yearyearyear
Soit moismois/jourjour/annéeannéeannéeannée
On obtienne jourjour/moismois/annéeannéeannéeannée
Une logique à laquelle je ne peux adhérer
Le format à obtenir doit être celui demandé ni plus ni moins indépendant d autres formes de considération
Pour moi c’est une anomalie je demande un format il doit être celui obtenu et non un autre au prétexte que ç est une origine anglophone
Cela défi toutes les logiques
Maintenant c est ma conception et je conçois qu on puisse en avoir une autre
Voilà le fond de ma pensée
Quoi qu il en soit avant tout je m adapte pas le choix
Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.