IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Suppression de lignes avec Dictionary


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Par défaut Suppression de lignes avec Dictionary
    Bonjour,

    J'ai une macro qui me permet dans une Feuille de supprimer les lignes dont le critère est le fournisseur.
    Si j'ai un fournisseur dans la 2e feuille, il faut supprimer toutes les lignes de ce fournisseur dans la première feuille. Je joins un fichier où je laisse l'ensemble de la macro (l'objectif global est de remplacer dans la 1ère feuille toutes les lignes des fournisseurs pour lesquels j'ai reçu un fichier mis à jour).

    J'aimerais améliorer cette partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Dim cel As Range, derlig&, derL&, i&
     
        Application.ScreenUpdating = False
        derlig = Sheets("Production_Schedule").Cells(Rows.Count, 1).End(xlUp).Row
        With Sheets("Production_Schedule")
            derL = .Cells(Rows.Count, 1).End(xlUp).Row
            For i = derL To 2 Step -1
                Set cel = shRecap.Range("c2:c" & derlig).Find(.Range("c" & i).Value, lookat:=xlWhole)
                If Not cel Is Nothing Then
                    .Rows(i).Delete
                    Set cel = Nothing
                End If
            Next i
        End With
    Le fichier réel fait 10 000 lignes (environ 5000 dans la 2e feuille) sur 30 fournisseurs, et pas mal de formules et mises en forme conditionnelles. La procédure est longue et c'est cette partie de la macro qui prend du temps. A priori la fonction Dictionary devrait accélérer l'exécution, mais je ne suis pas spécialiste et je ne trouve pas vraiment le code pour faire ça.
    Pouvez vous m'aider à faire ce code ?
    Il faut constituer le Dictionnaire sans doublon des fournisseurs en colonne C de la 2e feuille et ensuite supprimer sur la première feuille les lignes dont le fournisseur en colonne C fait partir de ce dictionnaire.

    J'ai laissé le reste de la macro en commentaires mais je suis aussi ouverte à toute suggestion pour améliorer ce code.

    Merci beaucoup
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Suppression de lignes avec critère
    Par crespo12 dans le forum Lisp
    Réponses: 1
    Dernier message: 28/03/2012, 12h01
  2. [XL-2003] Macro de suppression de ligne avec un mot
    Par harisman87 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/07/2010, 16h50
  3. [WD-2007] Modèle Word - Suppression de ligne avec puce si vide
    Par vincent DD dans le forum Word
    Réponses: 1
    Dernier message: 26/08/2009, 22h14
  4. Suppression des lignes avec condition
    Par tientinou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 12h35
  5. suppression des lignes avec sed
    Par dngaya dans le forum Linux
    Réponses: 1
    Dernier message: 29/09/2008, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo