Fusionner des lignes sous excels
Yan
-
ratikuss Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
ratikuss Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un tableau de 2000 lignes environs avec une dizaine de colonnes
il est du type :
/ Nom / Prénom / Date de naissance / informations divers ....
1/ X / Y / 01/01/1980 / aime le poulet
2/ X / Y / 01/01/1980 / vient dimanche
3/ A / B / 02/02/1982 / rien
4/C /D / / doit rappeler
4/C /D / 03/04/1980 /
...
j'aimerais obtenir automatiquement un tableau du type :
1/ X / Y / 01/01/1980 / aime le poulet - vient dimanche
2/ A / B / 02/02/1982 / rien
3/C /D / 03/04/1980 / doit rappeler
...
Je ne sais pas si c'est possible. Auriez vous une petite idée ?
j'ai un tableau de 2000 lignes environs avec une dizaine de colonnes
il est du type :
/ Nom / Prénom / Date de naissance / informations divers ....
1/ X / Y / 01/01/1980 / aime le poulet
2/ X / Y / 01/01/1980 / vient dimanche
3/ A / B / 02/02/1982 / rien
4/C /D / / doit rappeler
4/C /D / 03/04/1980 /
...
j'aimerais obtenir automatiquement un tableau du type :
1/ X / Y / 01/01/1980 / aime le poulet - vient dimanche
2/ A / B / 02/02/1982 / rien
3/C /D / 03/04/1980 / doit rappeler
...
Je ne sais pas si c'est possible. Auriez vous une petite idée ?
5 réponses
-
Normalement c'est impossible sous excel, mais il faut que quelqu'un qui s'y connaitrait en VB confirme.
Je sais en revanche que sous acces c'est surement possible. -
Bonjour,
Je ne sais pas si c'est possible. ...OUI.
Auriez vous une petite idée ? mais avec 2000 lignes et dix colonnes ça risque de prendre un certain temps, c'est le moins que l'ont puisse dire.
Il faut passer en revue (2000 x 10) cellules x (2000 x 10) soit 40 millions de possibilités !
A+
-
Tu peux résoudre facilement ton problème de "redondance" de données avec un programme en VBA.
Si tu le souhaite, je veux bien t'aider à concevoir ce programme.
Le temps d'exécution du programme pourra être long (1 à 2 minutes) mais c'est toujours mieux que de le faire à la main ;-) -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai considéré que ton tableau commençait ligne 1 et que :
colonne A = numero index
colonne B = nom
colonne C = prenom
colonne D = date de naissance
colonne E = divers
Sub anti_redondance() nb_ligne = 2000 ReDim numero(nb_ligne) ReDim nom(nb_ligne) ReDim prenom(nb_ligne) ReDim naissance(nb_ligne) ReDim divers(nb_ligne) ReDim ligne_a_supprimer(nb_ligne) For i = 1 To nb_ligne numero(i) = Range("A" & i) nom(i) = Range("B" & i) prenom(i) = Range("C" & i) naissance(i) = Range("D" & i) divers(i) = Range("E" & i) ligne_a_supprimer(i) = 0 Next i For x = 1 To nb_ligne For y = 1 To nb_ligne If Range("B" & x) = nom(y) And Range("C" & x) = prenom(y) And Range("A" & x) <> numero(y) Then If naissance(y) <> "" Then temp_naissance = naissance(y) End If temp_divers = divers(y) ligne_a_supprimer(y) = 1 For n = 1 To nb_ligne If Range("B" & n) = nom(y) And Range("C" & n) = prenom(y) And Range("E" & n) <> divers(y) Then If naissance(y) <> "" Then Range("D" & n) = naissance(y) End If Range("E" & n) = divers(y) & " " & divers(n) End If Next n End If Next y Next x For i = 1 To nb_ligne If ligne_a_supprimer(i) = 1 Then Rows(i + 1).Select Selection.Delete Shift:=xlUp End If Next i End Sub
Voilà =) ça à l'air de fonctionner de mon coté, par contre le mieux serait de rajouter un bout de code qui trouve automatiquement le nombre de ligne dans ton tableau.