Obtenir une ligne avec toutes les infos des lignes sup. / noms
Fermé
atmos44
Messages postés
5
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
14 novembre 2012
-
8 nov. 2012 à 10:20
atmos44 Messages postés 5 Date d'inscription mercredi 7 novembre 2012 Statut Membre Dernière intervention 14 novembre 2012 - 14 nov. 2012 à 08:21
atmos44 Messages postés 5 Date d'inscription mercredi 7 novembre 2012 Statut Membre Dernière intervention 14 novembre 2012 - 14 nov. 2012 à 08:21
A voir également:
- Obtenir une ligne avec toutes les infos des lignes sup. / noms
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Les noms des animaux - Télécharger - Études & Formations
- Apparaitre hors ligne instagram - Guide
7 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
8 nov. 2012 à 10:27
8 nov. 2012 à 10:27
Bonjour,
Dans l'état, et sans plus de précisions sur les éléments à rassembler, ce que vous demandez est impossible.
Vous dites :
je voudrais avoir une seul lignes avec les dernières informations de cellules
Or dans votre exemple, vous voulez le résultat :
DUPOND;Louis;dd2;dd2-b;2G06;0.8;00;01/08/2010
Mais :
- dd2, dd2-b, 2G06, 0.8 ne sont en aucun cas les dernières informations :
dd2 ==> apparaît dans une ligne sans date,
dd2-b ==> apparaît dans une ligne ou la date n'est pas la dernière,
2 G06 ==> apparait dans une ligne sans date
0.8 ==> apparaît dans 2 lignes différentes, une avec date, une sans date.
Donc soyez plus explicite ou alors, bon courage parce que 15 000 lignes "alla mano"...
Dans l'état, et sans plus de précisions sur les éléments à rassembler, ce que vous demandez est impossible.
Vous dites :
je voudrais avoir une seul lignes avec les dernières informations de cellules
Or dans votre exemple, vous voulez le résultat :
DUPOND;Louis;dd2;dd2-b;2G06;0.8;00;01/08/2010
Mais :
- dd2, dd2-b, 2G06, 0.8 ne sont en aucun cas les dernières informations :
dd2 ==> apparaît dans une ligne sans date,
dd2-b ==> apparaît dans une ligne ou la date n'est pas la dernière,
2 G06 ==> apparait dans une ligne sans date
0.8 ==> apparaît dans 2 lignes différentes, une avec date, une sans date.
Donc soyez plus explicite ou alors, bon courage parce que 15 000 lignes "alla mano"...
atmos44
Messages postés
5
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
14 novembre 2012
8 nov. 2012 à 14:44
8 nov. 2012 à 14:44
Tout d'abord merci pour avoir essayé de me comprendre....
Je vais essayer d'être plus clair.
Dans la première ligne, Monsieur DUPOND louis est en service : (ddt1) dans une unité (ddt1-a), il a le grade : (7026), a une quotité de (1), est en code maladie : (00), et sa date d'arrivée dans le service /unité est le : (01/01/2001)
Chaque ligne apporte un changement de situation. Des fois le changement de situation est le service, des fois le grade , des fois plusieurs choses en même temps.
Donc ce que que je souhaite obtenir, c'est dans une seule ligne, les dernières informations changées. Pour DUPOND Louis la ligne que je souhaite avoir est :
Son dernier service, c'est a dire DDT2 (qui se trouve en ligne 4) sa dernière unité ddt2-b (qui se trouve en ligne 2), son dernier grade (qui se trouve ligne 5), sa quotité de travail 0,8 (qui se trouve en ligne 4), sa dernière maladie 00 (qui est en ligne 1) et enfin sa dernière date d'affectation 01/08/2010 (qui est en ligne3)
donc soit les informations descendent à la ligne 5 ou soit se créé automatiquement une ligne 6 qui intègre toutes les dernières informations (soit: DUPOND;Louis;dd2;dd2-b;2G06;0.8;00;01/08/2010)
Merci par avance
PS j'ai oublié 1 ; dans la ligne 5 avant 2G06
Je vais essayer d'être plus clair.
Dans la première ligne, Monsieur DUPOND louis est en service : (ddt1) dans une unité (ddt1-a), il a le grade : (7026), a une quotité de (1), est en code maladie : (00), et sa date d'arrivée dans le service /unité est le : (01/01/2001)
Chaque ligne apporte un changement de situation. Des fois le changement de situation est le service, des fois le grade , des fois plusieurs choses en même temps.
Donc ce que que je souhaite obtenir, c'est dans une seule ligne, les dernières informations changées. Pour DUPOND Louis la ligne que je souhaite avoir est :
Son dernier service, c'est a dire DDT2 (qui se trouve en ligne 4) sa dernière unité ddt2-b (qui se trouve en ligne 2), son dernier grade (qui se trouve ligne 5), sa quotité de travail 0,8 (qui se trouve en ligne 4), sa dernière maladie 00 (qui est en ligne 1) et enfin sa dernière date d'affectation 01/08/2010 (qui est en ligne3)
donc soit les informations descendent à la ligne 5 ou soit se créé automatiquement une ligne 6 qui intègre toutes les dernières informations (soit: DUPOND;Louis;dd2;dd2-b;2G06;0.8;00;01/08/2010)
Merci par avance
PS j'ai oublié 1 ; dans la ligne 5 avant 2G06
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
8 nov. 2012 à 14:56
8 nov. 2012 à 14:56
Non tu n'es toujours pas clair..............
Donc ce que que je souhaite obtenir, c'est dans une seule ligne, les dernières informations changées.
Comment, moi qui ne connais rien à ton tableau ni à tes données, je peux différencier les informations comme étant les dernières changées...
Dans ton exemple : comment je sais que dd2 est le dernier service de Mr Dupont?
Donc ce que que je souhaite obtenir, c'est dans une seule ligne, les dernières informations changées.
Comment, moi qui ne connais rien à ton tableau ni à tes données, je peux différencier les informations comme étant les dernières changées...
Dans ton exemple : comment je sais que dd2 est le dernier service de Mr Dupont?
atmos44
Messages postés
5
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
14 novembre 2012
8 nov. 2012 à 15:48
8 nov. 2012 à 15:48
en fait au plus clair et plus simple c'est : si une cellule est vide, prendre la valeur de celle du dessus etc.. jusque trouver une information.
exemple :
A1 = dupond, B1 = voiture, C1 = rouge, D1 = rayée
A2 = dupond, B2 = "", C2 = bleue, D2 = ""
A3 = dupond, B3 = "", C3 = "", D3 = unie
Mon résultat souhaité est :
dupond, voiture, bleue, unie
Voila
exemple :
A1 = dupond, B1 = voiture, C1 = rouge, D1 = rayée
A2 = dupond, B2 = "", C2 = bleue, D2 = ""
A3 = dupond, B3 = "", C3 = "", D3 = unie
Mon résultat souhaité est :
dupond, voiture, bleue, unie
Voila
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
8 nov. 2012 à 16:53
8 nov. 2012 à 16:53
C'est enfin plus clair.
Relance moi demain matin que je m'y mette!...
Bonne soirée.
Relance moi demain matin que je m'y mette!...
Bonne soirée.
Mike-31
Messages postés
18351
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
12 décembre 2024
5 110
8 nov. 2012 à 19:04
8 nov. 2012 à 19:04
Salut le fil,
J'ai retiré mon post, erreur de discussion
cordialement
J'ai retiré mon post, erreur de discussion
cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
9 nov. 2012 à 09:04
9 nov. 2012 à 09:04
Bonjour,
Dernières questions avant de me lancer :
- y a t'il toujours, au maximum, 8 colonnes? de A à H?
- dans ton classeur, puis je mettre les lignes de résultats dans une feuille "Feuil2"?
Dernières questions avant de me lancer :
- y a t'il toujours, au maximum, 8 colonnes? de A à H?
- dans ton classeur, puis je mettre les lignes de résultats dans une feuille "Feuil2"?
atmos44
Messages postés
5
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
14 novembre 2012
9 nov. 2012 à 10:45
9 nov. 2012 à 10:45
non, il y a au moins 15 colonnes. et oui le résultat peut etre dans une autre feuille (feuil2)
Petite précision, supplémentaire au cas ou, en fait ce que je souhaite si la première demande est impossible, c'est si il y a une cellule vide, il faut la remplir avec la cellule de dessus qui est remplie
merci encore de ton aide
Petite précision, supplémentaire au cas ou, en fait ce que je souhaite si la première demande est impossible, c'est si il y a une cellule vide, il faut la remplir avec la cellule de dessus qui est remplie
merci encore de ton aide
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
9 nov. 2012 à 10:55
9 nov. 2012 à 10:55
il y a au moins 15 colonnes peux tu être plus précis???
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 9/11/2012 à 11:37
Modifié par pijaku le 9/11/2012 à 11:37
Bon, n'étant pas moi même programmeur, il subsiste un p'tit bug...
Cette procédure insère une ligne après chaque "groupe" de même NOM-Prénom, sauf pour la dernière ligne. Pour celle-ci, elle remplace la dernière ligne...
Peu importe le nombre de lignes ou de colonnes.
ATTENTION, cette macro efface préalablement toutes les données contenues dans la feuille "Feuil2"...
Pour info : testée sur 15 800 lignes et 16 colonnes, temps d'exécution : 17 secondes et quelques....
Cordialement,
Franck P
Cette procédure insère une ligne après chaque "groupe" de même NOM-Prénom, sauf pour la dernière ligne. Pour celle-ci, elle remplace la dernière ligne...
Peu importe le nombre de lignes ou de colonnes.
ATTENTION, cette macro efface préalablement toutes les données contenues dans la feuille "Feuil2"...
Pour info : testée sur 15 800 lignes et 16 colonnes, temps d'exécution : 17 secondes et quelques....
Option Explicit Sub test() Dim tabDonnees(), T_Out() As String Dim lngDrLig&, drCol&, i&, j&, k&, l&, m&, cpt& j = 0 drCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column lngDrLig = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row tabDonnees = Range(Cells(1, 1), Cells(lngDrLig, drCol)) For i = 2 To UBound(tabDonnees, 1) i = i - 1 cpt = 0 Do i = i + 1 j = j + 1 cpt = cpt + 1 ReDim Preserve T_Out(1 To drCol, 1 To j) For k = 1 To drCol T_Out(k, j) = tabDonnees(i - 1, k) Next k If i = UBound(tabDonnees, 1) Then Exit Do Loop While tabDonnees(i, 1) & tabDonnees(i, 2) = tabDonnees(i - 1, 1) & tabDonnees(i - 1, 2) j = j + 1 ReDim Preserve T_Out(1 To drCol, 1 To j) For l = 1 To drCol For m = 1 To cpt If T_Out(l, j) = "" Then If T_Out(l, j - m) <> "" Then T_Out(l, j) = T_Out(l, j - m) Exit For End If Else Exit For End If Next m Next l Next i Application.ScreenUpdating = False With Sheets("Feuil2") .Cells.Clear For i = 1 To UBound(T_Out, 1) For j = 1 To UBound(T_Out, 2) .Cells(j, i) = T_Out(i, j) Next Next .Rows(1).Delete .Activate End With Application.ScreenUpdating = True End Sub
Cordialement,
Franck P
atmos44
Messages postés
5
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
14 novembre 2012
14 nov. 2012 à 08:21
14 nov. 2012 à 08:21
Bonjour Pijaku, désolé pour ce temps à répondre mais j'etais malade et ne rentre au boulo que ce matin. Je vais tester ta formule aujourd'hui et te tiens au courant. En tous les cas, MERCI beaucoup de ton aide.
cordialement,
Frédéric
cordialement,
Frédéric