Signaler

Récupérer plusieurs lignes dans une seule sur une autre feuille [Résolu]

Posez votre question Olivia - Dernière réponse le 18 sept. 2017 à 16:25 par Olivia
Bonjour,

J'ai un fichier avec un certain nombre de colonnes,
et sur plusieurs lignes, le contenu de ces colonnes est identique (identifiant, date de naissance, salle, date).
Sauf une colonne où on va avoir 2 valeurs différentes au format heure (i.e. sur toutes les lignes concernées il y aura soit une valeur x ou une valeur y pour l'heure).
Le nombre de lignes qui ont une partie du contenu identique varie de 2 à 6 max.
Le fichier contient a peu près 1000 lignes.

J'aimerais récupérer les champs identiques sur une seule ligne, et ajouter dans deux nouvelles colonnes (heure d'entrée et heure sortie) les deux heures.

Pouvez-vous m'aider avec la formule ? Je suppose qu'il y a plusieurs SI à la suite, mais c'est trop compliqué, je n'ai pas le niveau.

Merci d'avance!



Utile
+1
plus moins
Merci pour ta réponse via 55
Voilà le lien http://www.cjoint.com/c/GIhjhiJOXPU

C'est un fichier avec un certain nombre de colonnes,
et sur plusieurs lignes, le contenu de ces colonnes est identique.
J'aimerais récupérer les champs identiques sur une seule ligne.

A ce contenue identique s'associent 2 valeurs différentes au format heure de la colonne "heures" (i.e. sur les lignes identiques il y aura heure x ou y.
j'aimerai ajouter dans deux nouvelles colonnes l'heure x = la plus petite des deux et heure y = la plus grande des deux.

Il y a aussi la colonne de "code", qui peut varier. Une heure démarrée et terminé auront un ou plusieurs codes.
Le nombre de lignes qui ont une partie du contenu identique varie de 2 à 6 max.

J'aimerais récupérer les champs identiques sur une seule ligne, et ajouter dans deux nouvelles colonnes l'heure x = plus petite et heure y = heure plus grande), et récupérer tous les codes sur une même ligne avec des slash sans espace.

Mes notions d'Excel ne me permettent pas de faire tout en un.
Sauriez-vous m'aider avec ça? Pour moi c'est juste trop compliqué, je vois même pas par quel bout commencer.
Donnez votre avis
Utile
+0
plus moins
Bonjour

Pas très clair !

Poste plutôt un exemple de ton fichier sur cjoint.com, fais créer un lien que tu copies et reviens coller ici, tu aura plus de chance d'avoir de l'aide

Cdlmnt
Via
Donnez votre avis
Utile
+0
plus moins
Bonjour

Ok il faut passer par une macro
https://mon-partage.fr/f/UEKaRZKA/

La macro se lance depuis la feuille 1 avec la raccourci clavier Ctrl + m et reporte les données en feuille2

Alt + F11 pour voir le code de la macro commenté

Cdlmnt
Via
Donnez votre avis
Utile
+0
plus moins
Merci pour la macro!
Par contre elle semble de fonctionner que partiellement.
J'ai bien obtenu le bon nombre de lignes.
La colonne démarré/terminé est irrelevante une fois que j'ai récupéré les heures.
La plupart des heures ne colles pas quand je compare à la feuil1.
Sur une lignes les codes ne devraient pas avoir de doublons.
J'ai aussi vu une erreur d'orthographe dans le code VBA (rafraischissement vs. rafraichissement), puis écrit feuille vs. feuil, et linges vs. lignes. J'imagine que ça a un impacte sur la macro, mais j'y connais rien en VBA...

Donnez votre avis
Utile
+0
plus moins
Re

Les commentaires en vert n'ont aucun impact sur la macro, et comme je les ai écrit vite il peut y avoir des fautes oui !
Pour les heures qui en collent pas je vais regarder de plus près
Que veux tu dire par la colonne est irrelevante ?
Donnez votre avis
Utile
+0
plus moins
En ce qui concerne les heures un petit oubli dans une ligne de la macro , rajoute ce qui manque (en gras ici) :
' compte nombre de ligens avec même valeur en A
a = Application.WorksheetFunction.CountIf(Sheets("Feuil1").Range("A:A"), Sheets("Feuil1").Range("A" & n))

Tout devrait fonctionner normalement après ce correctif

Donnez votre avis
Utile
+0
plus moins
Merci beaucoup pour ton aide!
Ça marche!
Donnez votre avis
Utile
+0
plus moins
Le sujet est résolu mais je ne vois pas le bouton pour le signaler. Merci!
Donnez votre avis
Utile
+0
plus moins
Tant mieux !
Clique sur Signaler en haut à droite au début du 1er message

Donnez votre avis
Utile
+0
plus moins
Via 55, en fait, ton code marche très bien, sauf un petit truc.
Je récupère les "codes" sur une lignes avec un /.
Et dans cette ligne de codes je ne dois pas avoir de doublons.

Par exemple au lieu d'obtenir
BFGA004/BFGA004/BELB001/BELB001/
je dois obtenir
BFGA004/BELB001

Est-ce que tu voudras jeter encore un coup d’œil dessus s'il te plaît?
Donnez votre avis
Utile
+0
plus moins
Bonjour Olivia

Voilà (à vérifier qu'aucun code n'est oublié) ;
https://mon-partage.fr/f/uAv3Vs3T/

Cdmnt
Via
Olivia- 18 sept. 2017 à 16:25
Mega top! Milles mercis!
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !