Assistance Informatique
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Invité
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

[ Voir toute la liste ]


Le record du nombre d'utilisateurs en ligne est de 28 le Lun 21 Aoû 2023 - 7:42
Derniers sujets
» Les icones du bureau changent de place
[Macro Excel 2003] Simplification de macro EmptyMar 23 Fév 2016 - 15:18 par gilou71

» Changer de mobile
[Macro Excel 2003] Simplification de macro EmptyMar 23 Fév 2016 - 9:48 par Jean-Pierre-45

» hp 5530
[Macro Excel 2003] Simplification de macro EmptyMer 11 Nov 2015 - 12:50 par LilyFlow

» [Sondage] Passage à Windows 10
[Macro Excel 2003] Simplification de macro EmptyMar 8 Sep 2015 - 15:51 par LilyFlow

» Création de la section Windows 10 pour le forum
[Macro Excel 2003] Simplification de macro EmptyLun 7 Sep 2015 - 7:39 par Jean-Pierre-45

» Dois-je réserver Windows 10 ?
[Macro Excel 2003] Simplification de macro EmptyJeu 3 Sep 2015 - 4:20 par guy37

» Imprimante canon ip4300
[Macro Excel 2003] Simplification de macro EmptyMer 2 Sep 2015 - 22:43 par harlock59

» scan HP ENVY 5530
[Macro Excel 2003] Simplification de macro EmptyLun 8 Juin 2015 - 15:58 par LilyFlow

» Nouvelle imprimante
[Macro Excel 2003] Simplification de macro EmptyLun 20 Avr 2015 - 17:38 par Jean-Pierre-45

Les posteurs les plus actifs de la semaine
Aucun utilisateur

Nos Partenaires


-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

[Macro Excel 2003] Simplification de macro

Aller en bas

[Macro Excel 2003] Simplification de macro Empty [Macro Excel 2003] Simplification de macro

Message par LilyFlow Mar 29 Oct 2013 - 15:21

Bonjour à tous

J'ai fais une macro mais mon problème, c'est que je ne suis même pas sur quelle fonctionne :

J'ai un tableau avec environ 8000 lignes.

J'ai fait un code qui permet de vérifier les doublons.
Lorsque la macro en trouve, il copie les deux ligne sur une autre feuille du classeur.

Voici mon code :
Code:
Sub Doublons()

DerLi = Range("G60000").End(xlUp).Row

For i = 1 To DerLi
For j = 1 To DerLi
    Worksheets("MACHINES").Select
    If Range("I" & i).Value = Range("I" & j).Value And i <> j Then
        Range("A" & i & ":" & "W" & i).Select
        Selection.Copy
        Sheets("Doublons").Select
        Range("A" & i).Select
        ActiveSheet.Paste
    Worksheets("MACHINES").Select
        Range("A" & j & ":" & "W" & j).Select
        Selection.Copy
        Sheets("Doublons").Select
        Range("A" & j).Select
        ActiveSheet.Paste
    End If
Next j
Next i

For x = 1 To DerLi
For y = 1 To DerLi
    Worksheets("MACHINES").Select
    If Range("G" & x).Value = Range("G" & y).Value And i <> j Then
        Range("A" & x & ":" & "W" & x).Select
        Selection.Copy
        Sheets("Doublons").Select
        Range("A" & x).Select
        ActiveSheet.Paste
    Worksheets("MACHINES").Select
        Range("A" & x & ":" & "W" & y).Select
        Selection.Copy
        Sheets("Doublons").Select
        Range("A" & x).Select
        ActiveSheet.Paste
    End If
Next y
Next x

    Worksheets("MACHINES").Select
    Range("A1:W1").Select
    Selection.Copy
    Sheets("Doublons").Select
    Range("A1").Select
    ActiveSheet.Paste

    Columns("G:G").Select
    Range("A2:W9987").Sort Key1:=Range("G1"), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal


End Sub
Le code compare les cellules I de toute les lignes et si il y a un doublons, on copie la première ligne du doublons dans la seconde feuille et ensuite, on copie la seconde ligne du doublons dans la seconde feuille.
On fait la même chose pour les cellules G.
Et pour finir, (c'est une solution que je ne veut laisser définitive), on copie la première ligne de la première feuille et on fait un tri pour supprimer les lignes vides en fait.

Se code n'est pas fait pour des feuilles avec beaucoup de ligne.
Il compare chaque ligne avec les autres lignes une à une et je lui demande de le faire deux fois.
Si je ne me trompe pas, avec 8000 ligne, la macro fait environ 128 000 000 comparaisons.
C'est un peut beaucoup trop long et chaque fois Excel plante (pas de message d'erreur) mais obligé de passer par le gestionnaire de tache pour pouvoir débloquer le PC.

Donc, existe t-il un moyen de simplifier le code ??

Merci d'avance de votre aide si vous avez compris se que j'ai écrie.

Bonne journée
A+
LilyFlow
LilyFlow

Masculin Messages : 705
Date d'inscription : 14/04/2013
Age : 43
Localisation : 82

https://pcassistance.forumactif.org

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum