Action repetitive et complexe.... le rêve

Bonjour à tous,

Et merci de m'accueillir parmis vous.

Je viens solliciter votre aide, car sinon je risque de finir aveugle ou fou...

Je vous explique ma problématique : (cf fichier joint)

je dois repéter une action complexe à l'infini (environ sur 400 000 lignes).

l'action est la suivante : si la date(colonne B),l'unité(colonneC) le numéro de caisse(colonne F) et le numéro de ticket (colonne G) sont identiques, alors il faut supprimer la valeur de la colonne E , mais toutefois il faut au moins conserver cette valeur pour une des lignes :

exemple

Date Numero carte Unité valeur carte val ticket caisse ticket

11/03/2010 18002763077 83 19,00 € 36,94 € 16 147

11/03/2010 18002763078 83 8,73 € 36,94 € 16 147

11/03/2010 18002835261 83 19,00 € 391,82 € 17 166 0

11/03/2010 18002307422 83 16,74 € 391,82 € 17 166 0

11/03/2010 18002835260 83 19,00 € 391,82 € 17 166 0

Dans le 1er cas, je supprime une fois 36,94 mais dans le deuxiéme cas je supprime deux fois 391,82.

Voilà donc mon dilemme... aprés avoir mesuré le temps necessaire pour raliser cette opération en manuel, je me dis qu'il y a forcement une meilleure solution...

J'ai pensé à le faire sous access, mais je suis débutant, et je ne sais pas faire de programmation.. et pour excel, je ne vois pas comment aborder le probléme...

Merci encore de l'aide que vous voudrez bien m'apporter.

Bon week end à tous!!

Eric

26fichier-test.zip (77.24 Ko)

Bonsoir et bienvenue

Zorg92 a écrit :

je dois repéter une action complexe à l'infini (environ sur 400 000 lignes).

Ce qui veut dire que tu travailles sous 2007. Utilise alors "Supprimer les doublons" dans l'onglet "Données".

Zorg92 a écrit :

si la date(colonne B),l'unité(colonneC) le numéro de caisse(colonne F) et le numéro de ticket (colonne G) sont identiques, alors il faut supprimer la valeur de la colonne E ,

capture

Amicalement

Nad

Bonsoir Nad,

Malheureusement je suis sous 2002... toutefois, si j'avais la possibilité d'avoir une version 2007 ou sup; la recherche de doublons, va t il seulement mettre " en lumiére" les doublons ou bien cela va les supprimer? dans ce cas la suppression ne m'arrange pas, car justement je souhaite conserver une des lignes.

Merci encore Nad de ton aide..

Bonsoir à tous,

Tu parles de 400 000 lignes, c'est obligatoirement sur Excel2007 !

-------- Sinon ------

J'ai une solution simple et rapide si on ignore ces 2 colonnes:

- Numero carte

- Valeur carte

avec extraction sur autre feuille

as-tu vraiment besoin de ces 2 colonnes ?

Bonsoir Nad

Amicalement

Claude

Bonsoir Claude,

En fait, c'est 400 000 lignes réparties sur plusieurs fichier excel...en fait j'ai un fichier par mois.

Pour répondre à ta question, j'ai effectivement besoin de ces 2 colonnes aussi..

Merci encore de ton aide .

Eric

re,

Alors on parle de combien de lignes à traiter par feuille ? (environ, fourchette)

quel est le critère à prendre en compte pour ces 2 colonnes (laquelle conserver ?)

Claude

Bonsoir Claude,

environ 64 000 lignes par feuilles.

par contre pour ta deuxiéme question, je n'ai pas compris... désolé.

Eric

7classeur22.xlsx (135.37 Ko)

re,

Si il y a 3 ou 5 doublons, quel "N° de carte" ou "Valeur carte" à conserver ?

d'où ma 1ère question

Claude

Bonsoir Claude,

Désolé, maintenant j'ai compris ta question..

en fait je ne souhaite pas supprimer la ligne, je souhaite juste que dans le cas où il y a un doublons (2, 3, 4 etc..lignes communes), la valeur ticket soit remplacée par "0" et que seulement une valeur ticket soit conservée...

je ne suis pas sûr d'etre trés clair ce soir

Eric

re,

Ok compris, j'étais parti sur une mauvaise piste !

Je regarde ce qu'on peut faire

Claude

Merci claude de ton aide.

Eric

-- 04 Avr 2010, 09:58 --

Bonjour à tous,

on m'a proposé une solution : "mDF XLdoublons v5.0 : myDearFriend! Excel Pages"; cela fonctionne parfaitement et m'a permis de traiter mes fichiers.

Encore merci à tous pour votre aide.

Eric

13mistinguetteop.xlsm (60.48 Ko)

Bonjour Eric, forum,

Je te mets la macro quand même,

Sub ValeurTicket()
Dim Lg&, i&, x
'Macros par Claude Dubois pour "Zorg92" Excel-Pratique le 04/04/10
    x = Time
    Lg = Range("A65536").End(xlUp).Row
    Application.ScreenUpdating = False
    Range("a1:h" & Lg).Name = "BaseX" 'initialise
'------ tri ------
    Range("BaseX").Sort Key1:=Range("g2"), Order1:=xlAscending, Key2:=Range("e2") _
    , Order2:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom

    Range("BaseX").Sort Key1:=Range("a2"), Order1:=xlAscending, Key2:=Range("f2") _
    , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom
'------
    For i = 2 To Lg
        If Cells(i, 5) = Cells(i - 1, 5) Then Cells(i, 5).Interior.ColorIndex = 6
        If Cells(i - 1, 5).Interior.ColorIndex = 6 Then Cells(i - 1, 5) = 0
    Next i
        Range("e2:e" & Lg).Interior.ColorIndex = xlNone
        MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))
End Sub

à l'occasion, tu me diras le temps de traitement pour tes feuilles de 60 000 lignes

Amicalement

Claude

Fichier:

https://www.excel-pratique.com/~bigfiles/doc/Zorg92_filtre2.zip

Bonsoir Claude,

Merci encore pour ta macro.

je viens de tester sur 65000 lignes .Résultat : 7 secondes.

Merci beaucoup!

Tu viens de me simplifier la vie.

Bonne soirée.

Eric

Rechercher des sujets similaires à "action repetitive complexe reve"