Aide Excel, lignes différement renseignées...

Fermé
Diegoms Messages postés 10 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 25 mai 2010 - 10 mai 2010 à 12:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 11 mai 2010 à 19:00
Bonjour,

Comment faire ça sur Excel ? J'ai dans une liste disons cinqu colonnes :

Chanson Artiste Compagnie code Droits

C'est pour faire une liste de chansons et voir si on a les droits d'exploitation etc. C'est pas important de le savoir.

Ce que je veux faire c'est avoir tous les colonnes remplies. C'est à dire les 5 pour chaque chanson. le probleme est que j'ai des chansons en double ou en triple mais que parfois les doublons n'ont pas les mêmes colonnes repmplies. Alors pour une même chanson on peut avoir :

Chanson Artiste Compagnie Code Droits

Let it be Beatles Sony
Let it be Sony 12547
Let it be Beatles 12547 Oui

VOILA. Je voudrais avoir seulement UNE REFERENCE PAR CHANSON. Comment faire cela de manière automatique (ou semi automatique) puisque ma liste comprend 7000 references.

MERCI infiniment

A voir également:

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 mai 2010 à 14:05
Bonjour,

pour tenter de t'apporter une solution, met un extrait de ton classeur (enV. 100lignes maxi) sur:
http://cijoint.fr/et colles le lien proposé dans ton message
0
Diegoms Messages postés 10 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 25 mai 2010 1
10 mai 2010 à 15:00
Bonjour,

Je n'ai pas le droit de montrer le fichier, mais j'ai crée un fichier semblable avec just 3 references. Merci de ton aide :

http://www.cijoint.fr/cjlink.php?file=cj201005/cij0IBqJcY.xls

:)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 10/05/2010 à 15:43
Bien reçu ton classeur, merci !

ca ne va pas être évident,
sur quelle colonne se base-t-on, c'est à dire où il y a t il un identifiant unique ?

le titre? non, car on peut avoir plusieurs artistes. par ex: "satisfaction" par les cailloux mais aussi Otis Redding, et autres... et le titre par le m^me groupe peut être enregistré dans plusieurs maisons (rupture contrat)

donc, si on a un identifiant unique: OK sinon sur quelles concaténations de données ?
Enfin où restitue t-on tout çà ?
0
Salut, merci de ton aide, desolé de pas avoir repondu plus tôt.

En fait le titre sera unique, JE SAIS, qu'il n'y a pas deux titres qui se repetent. Et si non le code 1 est unique aussi. On a TOUJOURS le titre mais pas toujours les autres elements.

L'ideal serait de sussprimer les doubles et triples dans le fichier pour ne garder qu'un seul fichier, c'est à dire restituer dans le même fichier.

Les concatenations je n'ai pas compris. Mais ce que je veux c'est juste remplir le plus possible chaque entrée avec les infos des differentes lignes, pour avoir un titre une seule fois avec le plus d'info possibles.

Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 mai 2010 à 15:06
Bonjour,

Excuse le retard mais des orages violents dans mon coin m'obligent à éteindre l'ordi de temps en temps

essaies cette macro avec restitution en feuille 2

Sub titres()
Dim derlig As Integer, cptr As Integer
Dim coll As Collection
Dim tablo
Dim titre As String, nbre_titre As Integer, lig As Integer, cptr_lig As Integer, cptr_tab As Byte

derlig = Range("J20000").End(xlUp).Row
'liste titres uniques
Set coll = New Collection
For cptr = 2 To derlig
On Error Resume Next
    coll.Add Cells(cptr, 10).Value, CStr(Cells(cptr, 10).Value)
Next

ReDim tablo(1 To coll.Count, 1 To 14)

For cptr = 1 To coll.Count
    'nombre occurence du titre en cours
    titre = coll(cptr)
    nbre_titre = Application.CountIf(Range("J2:J20000"), titre)
   
    'trouve les lignes des occurences du titre
     lig = 1
    For cptr_lig = 1 To nbre_titre
        lig = Columns(10).Find(titre, Cells(lig, 10)).Row
        'remplissage du tableau
        For cptr_tab = 1 To 14
            If Cells(lig, cptr_tab) <> "" Then tablo(cptr, cptr_tab) = Cells(lig, cptr_tab)
        Next
    Next
Next

'restitution du tableau en feuille2
Application.ScreenUpdating = False
With Sheets(2)
 .Range("A2:N20000").Clear
 .Range("A2").Resize(coll.Count, 14) = tablo
 .Range("A2:N" & coll.Count + 1).Borders.Weight = xlThin
End With

Set Collection = Nothing
End Sub
0
Mon ami, je te remercie enormement de ton aide. Mais en fait je n'ai jamais utilisé un e macro. Je pense que je peux y arriver, car je me connait pas mal en ordinateurs, mais si tu peux m'expliquer rapidement. En fait il faut que je colle ton code quelque part dans Excel, n'est pas ????

Je vais essayer de chercher mais si tu peux me donner des indices...

Merci :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
madeliocustom Messages postés 41 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 23 avril 2012 13
11 mai 2010 à 18:30
Bonsoir Diego,

1 - va dans la barre de menu : Outils > Macro > Visual Basic Editor.
2 - l'editeur visual basic s'ouvre et la tu y copie-colles le code.
3 - pour executer la macro : tu vas dans Outils > Macro > Macros... et tu selectionnes la macro (en l'occurence "titres") et ca fait le job !

Precaution : enregistre tout de meme une version de sauvegarde de ton listing avant tout ca et ne joue la macro que sur le fichier copie au cas ou elle ne ferait pas exactement ce que tu souhaites !

A+
Madelio
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 mai 2010 à 19:00
entre l'étape 1 et 2 insertion- module !
0