Correspondance valeur colonne excel

Résolu/Fermé
lolotiboutik - 30 mars 2010 à 20:35
lolotiboutik Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 12 avril 2010 - 31 mars 2010 à 16:48
Bonsoir,
J'utilise microsoft excel et je travaille sur un fichier unique avec 36000 valeurs sous forme de code dans la première colonne. Après avoir extrait 100 fichiers excel issus de ce fichier initial (par méthode d'échantillonnage), j'ai des valeurs de classement pour chaque code de départ mais sur un tiers des codes soit 12000. Mon souci je voudrais avoir une méthode automatique pour faire correspondre les codes issus de chaque fichier d'échantillonnage avec les codes totaux de départ. A la main ça me prendrait énormément de temps sachant j'aurai 100 fois à faire correspondre 12000 codes parmi les 36000 du fichier de base. J'espère j'ai été clair lol Merci d'avance pour toute éventuelle début de solution.

A voir également:

11 réponses

lolotiboutik
30 mars 2010 à 20:40
je précise que j'ai collé sur le fichier initial à coté des 36000 codes les colonnes 'codes' et 'valeur classement' de chaque fichier soit 200 colonnes.
0
Raymond PENTIER Messages postés 58477 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 5 juin 2024 17 128
30 mars 2010 à 20:59
Si tu as été clair ?
* tu as 36000 données (ou codes) dans une colonne
* tu as des valeurs de classement, sur des bases qu'on ignore, pour 12000 des données, mais on ne sait pas lesquelles
* tu as 100 fichiers, mais on ne sait pas quelles données et quelles valeurs de classement y figurent, ni quelle est leur structure
* tu veux faire correspondre des éléments des 100 fichiers aux 24000 données non encore renseignées, mais on ne sait pas sur quels critères ou en appliquant quelles règles
* il est aussi question de "codes totaux de départ", dont on ne sait pas s'ils font partie des 36000 ou s'ils s'y rajoutent
....................
0
lolotiboutik
30 mars 2010 à 21:25
ok désolé je vais apporter plus de précision dans ce cas.
Les 36000 codes correspondent à des pixels crées suite a une analyse par maille. Je cherche à classifier ces pixels selon l'importance de l'urbanisation dans la région concernée. Pour cela j'ai réalisé un échantillonnage (100 fois) en prenant en compte une quarantaine de variable (situation sociale, salaire, etc) pour avoir une classification moyenne de chaque pixel. La précision c'est que l'échantillonnage n'est réalisé que sur 1 tiers des 36000 pixels et ce pour les 100 fichiers de sorties.
C'est pour cela j'ai a faire correspondre les 12000 pixels classifiés avec la valeur correspondante a 100 reprises.
J'espere que c'est plus précis cette fois ;-)
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
30 mars 2010 à 21:46
Bonjour,

Si tu déposais un fichier exemple avec des explications sur cijoint.fr (coller ici le lien fourni), on ne sait toujours pas ce que tu veux...
eric
0

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

Posez votre question
lolotiboutik
30 mars 2010 à 22:14
OK voici un exemple du fichier avec les résultats d'un seul fichier de sortie.

http://www.cijoint.fr/cjlink.php?file=cj201003/cijq3SPkEx.xls
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
Modifié par eriiic le 30/03/2010 à 22:59
Bon, ben on verra ça quand tu seras décidé à donner toutes les explications...
Pas envie de passer du temps pour que tu dises que ce n'est pas ça que tu veux mais...
On ne peut que faire des suppositions !!!
0
lolotiboutik
30 mars 2010 à 23:12
si tu as regardé le fichier que j'ai envoyé je veux juste mettre cote a cote les codes pixels identiques des colonnes A et C avec la valeur de classement associée. Il y aura des pixels qui seront pas associés par conséquent (36000 pour la colonne A et 12000 pour la colonne C)
Quelles sont les autres explications que tu attend?
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
30 mars 2010 à 23:20
Oui c'est ça que j'attend
insérer des cellules en C,D,E pour aligner L100-C1 2004 de A4:B4 avec L100-C1 2004 C3:D3
Faire correspondre c'est très vague et ne décris pas les actions manuelles que tu fais...
0
Raymond PENTIER Messages postés 58477 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 5 juin 2024 17 128
30 mars 2010 à 22:50
OK.
Je ne me sens pas du tout inspiré par ce problème : je me retire donc de la discussion. Bon courage à vous ...
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
30 mars 2010 à 23:39
Le traitement est un peu long, attendre...
Sub aligne()
    Dim lig As Long
    Application.ScreenUpdating = False
    For lig = 2 To [A65536].End(xlUp).Row
        If Trim(Cells(lig, 1)) <> Trim(Cells(lig, 3)) Or Cells(lig, 2) <> Cells(lig, 4) Then
            Cells(lig, 3).Resize(1, 3).Insert Shift:=xlDown
        End If
    Next lig
    Application.ScreenUpdating = True
End Sub

eric
0
lolotiboutik
31 mars 2010 à 00:35
désolé pour le retard de la réponse! je viens de rentrer du boulot à l'instant! ok j'essayerai demain matin a mon travail la manip que tu m'a donnée !
Merci beaucoup d'ore et déjà
0
lolotiboutik
31 mars 2010 à 00:35
je te tiendrai au courant si ça marche ou pas ;-)
0
lolotiboutik
31 mars 2010 à 14:22
Bonjour Eric,
J'ai essayé ta manip elle fonctionne parfaitement à un détail qu'elle s'arrete a la ligne 14106 la correspondance. Il doit juste avoir un ajustement a faire dans la VBA. Je te donne le lien du fichier avec la VBA.
http://www.cijoint.fr/cjlink.php?file=cj201003/cij0qJieSd.xls
Merci
Laurent
0
lolotiboutik Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 12 avril 2010
31 mars 2010 à 15:44
il manque juste une un ajustement pr que le pb soit complètement résolu merci d'avance
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
Modifié par eriiic le 31/03/2010 à 16:37
Bonjour,

J'ai relancé à partir de cette ligne et aucune anomalie. Tu as peut-être fait une action qui a réussi a arreter la macro (?)
J'ai ajouté un test de façon à pouvoir relancer la macro sans toucher aux lignes déjà traitées si ça se reproduit.

Une référence en C (et l'année) doit toujours être sur une ligne <= à la référence en A.
Une référence en C doit toujours être existante en A.
Si ces 2 conditions sont respectées aucune raison que ça ne tourne pas

J'ai ajouté aussi un compteur dans la barre d'état (en bas à gauche) pour voir évoluer le traitement et patienter.

Sub aligne()   
    Dim lig As Long, derlig As Long   
    Application.ScreenUpdating = False   
    barreEtatsav = Application.DisplayStatusBar   
    Application.DisplayStatusBar = True   
    derlig = [A65536].End(xlUp).Row   
    For lig = 2 To derlig   
        If Trim(Cells(lig, 1)) <> Trim(Cells(lig, 3)) Or Cells(lig, 2) <> Cells(lig, 4) Then   
            If Cells(lig, 3) & Cells(lig, 4) <> "" Then   
                Cells(lig, 3).Resize(1, 3).Insert Shift:=xlDown   
            End If   
        End If   
        Application.StatusBar = "Ligne en cours : " & lig & "/" & derlig   
    Next lig   
    Application.StatusBar = False   
    Application.DisplayStatusBar = barreEtatsav   
    Application.ScreenUpdating = True   
End Sub

eric

PS : n'oublie pas de mettre en résolu si ça l'est. Merci
0
lolotiboutik Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 12 avril 2010
31 mars 2010 à 16:41
c bon je viens de réessayer ca a marché jusquau bout cette fois je pense jai du faire une manip qui a stopper en cours la macro
merci bcp vraiment
0
lolotiboutik Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 12 avril 2010
31 mars 2010 à 16:48
par contre j'ai pas la barre a coté de 'ne plus suivre' pour mettre la discussion comme résolue
0
lolotiboutik Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 12 avril 2010
31 mars 2010 à 16:39
c bon ca marche c réglé :-)
0
eriiic Messages postés 24579 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 3 juin 2024 7 222
31 mars 2010 à 16:47
ok, je met en résolu
@+
0