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 :

Comparaison lignes de 2 feuilles VBA excell


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Par défaut Comparaison lignes de 2 feuilles VBA excell
    Bonjour,

    Le petit casu que je suis a besoin de comparer des cellules de lignes de 2 feuilles Excell différentes.
    Je vous explique le plus clairement possible mon problème .
    Je dois comparer certaines cellules de 2 feuilles excell de 800 lignes et 50 colonnes environ, et mettre en valeur les lignes de la 1ere feuille qui sont identiques à celles de la 2eme feuille.
    On m'a proposé le code suivant :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Option Explicit
     
    Sub ColorieLigne()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim row1 As Range
    Dim row2 As Range
    Dim i As Integer
    Dim egal As Boolean
    Dim nbcolonne1 As Integer
     
     
    Set rng1 = Intersect(Worksheets("Feuil1").Columns("D:G"), Worksheets("Feuil1").UsedRange)
    Set rng2 = Intersect(Worksheets("Feuil2").Columns("E:H"), Worksheets("Feuil2").UsedRange)
     
    Application.ScreenUpdating = False
    For Each row1 In rng1.Rows
      For Each row2 In rng2.Rows
        egal = True
        For i = 1 To row1.Cells.Count
          If row1.Cells(1, i).Value <> row2.Cells(1, i).Value Then egal = False
     
        Next i
        If egal Then
          row1.Interior.Color = row2.Interior.Color
        'tester copie de texte avec :
        row1.Cells(1, 73).Value = row2.Cells(1, 1).Value
        End If
      Next row2
    Next row1
    Application.ScreenUpdating = True
    Ce code soulève 2 petites questions.
    Pourquoi ne colorie -t-il que les cellules de la ligne comparée, au lieu de toute la ligne ? ( comment faire pour colorier toute la ligne ?

    Et pourquoi, quand j'essaie de copier le contenu de la 1ere cellule de ligne de la 2feuille pour la mettre dans la cellule de la première feuille, cela me copie en fait le contenu de la 1ere feuille ?

    Ensuite, ce code met un peu de temps ( quelques minutes) à s'effectuer. Y'aurait il des façons de l'optimiser/ accélérer ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    pour colorier la ligne entière, voir peut-être du côté de la propriété EntireRow

    Pour accélérer, voir le tutoriel Utiliser les variables tableaux en VBA Excel.


    _______________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.


    Et pourquoi pas du format conditionnel? Avec éventuellement du VBA pour automatiser...

    Regarde ma signature: VBA pour Excel? Pensez Excel avant de penser VBA
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Par défaut
    Désolé je ne sais pas ce qu'est du format conditionnel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul du nombre de ligne d'une feuille Excel en VBA
    Par top_eagle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2007, 18h09
  2. Comment transférer une ligne d'une feuille Excel vers une autre
    Par iboulaye1980 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2007, 11h32
  3. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 15h13
  4. [VBA-E] Colorier une ligne dans une feuille excel
    Par skyst3f dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2006, 12h42
  5. VBA - Excel - comparaison de deux feuilles
    Par toto14 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/10/2006, 14h52

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