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 :

Doublons sur plusieurs feuilles [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut Doublons sur plusieurs feuilles
    Bonjour
    Je souhaiterai savoir s'il est possible de trouver des doublons d'une colonne sur plusieurs feuilles excel
    Sur une feuille, je sais faire j'applique une mise en forme conditionnelle. s'il y a un doublon, il m'applique une couleur rouge.
    Mais si j'ai le même chiffre sur une autre feuille comment faire?
    Mon problème se pose pour 2 colonnes bien distinctes (la colonne B d'un côté et la colonne E d'un autre côté)....
    Je vous joins un fichier pour exemple.
    Merci pour votre aide

  2. #2
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    tu veux trouver toute les valeur "23537" dans toute les feuilles sur les colonnes B et la valeur "81330" dans toutes les feuilles sur la colonne E ? c'est bien ca ?

    Si c'est le cas, il faut que tu mette le test deja effectué dans une boucle.

    pour chaque elements différents de la colonne B feuille 1, tu vérifier dans les colonnes des feuilles 2 et 3.

  3. #3
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Salut,
    c'est un peu tirer par les cheveux mais ceci doit fonctionner, a mettre dans un module.
    Le code compare la feuille A avec la feuille B, puis la Feuille A avec la Feuille C, si il trouve des valeurs identiques il applique une mise en forme.
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub reperer_doublons()
    Dim plage1 As Range, plage2 As Range, plage3 As Range, plage4 As Range
     
    Sheets(1).Activate
     
    'Définie la colonne B feuil A pour lecture
    Set plage1 = Sheets(1).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
     
    'Définie la colonne E feuil A pour lecture
    Set plage3 = Sheets(1).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
     
    'Je boucle sur les Feuilles à partir de la 2e jusque la dernière
    For i = 2 To Sheets.Count
      Sheets(i).Activate
     
    'définie la plage de comparaison colonne B feuil 2 puis 3
    Set plage2 = Sheets(i).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
     
      'pour chaque cellule colonne B feuil A
      For Each c1 In plage1
       'je regarde dans chaque cellule colonne B feuil 2 puis 3
       For Each c2 In plage2
        'si la Cellule feuille A est égale cellule feuil B alors
        If c1.Value = c2.Value Then
         'j'applique ma mise en forme
         c2.Interior.Color = 255
         c2.Font.Bold = True
         c2.Font.ThemeColor = xlThemeColorDark1
        End If
       Next c2
      Next c1
     
    'Je fais la même chose pour la colonne E
    Set plage4 = Sheets(i).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
     
      For Each c1 In plage3
       For Each c2 In plage4
        If c1.Value = c2.Value Then
         c2.Interior.Color = 255
         c2.Font.Bold = True
         c2.Font.ThemeColor = xlThemeColorDark1
        End If
       Next c2
      Next c1
    Next i
    End Sub
    Il y a certainement mieux que ce code mais bon.

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Merci pour vos réponses
    - Nako_lito : Oui c'est tout à fait ca... Mais en boucle tu fais comment
    - rvtoulon : Je vais essayer ton code et je te dirais... Même s'il y a mieux l'essentiel est que ca marche

  5. #5
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Salut,
    j'ai réduit un peu le code :
    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
    33
    34
    35
    36
    37
    38
    39
    Sub reperer_doublons()
    Dim plage1 As Range, plage2 As Range, plage3 As Range, plage4 As Range
    Dim tableau1 As Range, tableau2 As Range
    Sheets(1).Activate
     
    'Définie la colonne B feuil A pour lecture
    Set plage1 = Sheets(1).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
     
    'Définie la colonne E feuil A pour lecture
    Set plage2 = Sheets(1).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
     
    'je regroupe les deux plages
    Set tableau1 = Union(plage1, plage2)
    'Je boucle sur les Feuilles à partir de la 2e jusque la dernière
    For i = 2 To Sheets.Count
      Sheets(i).Activate
     
    'définie la plage de comparaison colonne B feuil 2 puis 3
    Set plage3 = Sheets(i).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
    'Je fais la même chose pour la colonne E
    Set plage4 = Sheets(i).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
    'je regroupe les deux plages
    Set tableau2 = Union(plage3, plage4)
     
      'pour chaque cellule  tableau1 feuil A
      For Each c1 In tableau1
       'je regarde dans chaque cellule tableau2 feuil 2 puis 3
       For Each c2 In tableau2
          'si la Cellule feuille A est égale cellule feuil B alors
          If c1.Value = c2.Value Then
            'j'applique ma mise en forme
            c2.Interior.Color = 255
            c2.Font.Bold = True
            c2.Font.ThemeColor = xlThemeColorDark1
          End If
       Next c2
      Next c1
    Next i
    End Sub

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Salut
    J'ai essayé ton code hier, il me marque un message d'erreur au niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c2.Font.ThemeColor = xlThemeColorDark1
    donc je ne sais pas pourquoi...
    Je vais essayer avec ton nouveau code et je te dirais...
    Encore merci

    Ah oui autre chose aussi que j'ai oublié de demander. Là il compare la feuille 1 avec la feuille 2 puis 3, mais est-ce que la feuille 2 est comparée avec la 3?
    Merci par avance

  7. #7
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Salut,
    1° remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c2.Font.ThemeColor = xlThemeColorDark1
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c2.Font.Color = RGB(255, 255, 255)
    il compare la feuille 1 avec la feuille 2 puis 3
    Réponse : OUI

    mais est-ce que la feuille 2 est comparée avec la 3
    Réponse : NON.

    Tu as tout pour y arriver

  8. #8
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Merci je vais essayer tout ca et je te teindrais au courant

  9. #9
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    re,
    j'avais un peu de temps, donc
    mais est-ce que la feuille 2 est comparée avec la 3
    maintenant oui :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub reperer_doublons()
    Dim plage1 As Range, plage2 As Range, plage3 As Range, plage4 As Range
    Dim tableau1 As Range, tableau2 As Range
    Dim numfeuille As Integer, i As Integer, x As Integer, z As Integer
    numfeuille = Sheets.Count - 1
    z = 2
    For x = 1 To numfeuille
    Sheets(x).Activate
     
    'Définie la colonne B feuil A pour lecture
    Set plage1 = Sheets(x).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
     
    'Définie la colonne E feuil A pour lecture
    Set plage2 = Sheets(x).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
     
    'je regroupe les deux plages
    Set tableau1 = Union(plage1, plage2)
    'Je boucle sur les Feuilles à partir de la 2e jusque la dernière
    For i = z To Sheets.Count
      Sheets(i).Activate
     
    'définie la plage de comparaison colonne B feuil 2 puis 3
    Set plage3 = Sheets(i).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
    'Je fais la même chose pour la colonne E
    Set plage4 = Sheets(i).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
    'je regroupe les deux plages
    Set tableau2 = Union(plage3, plage4)
     
      'pour chaque cellule  tableau1 feuil A
      For Each c1 In tableau1
       'je regarde dans chaque cellule tableau2 feuil 2 puis 3
       For Each c2 In tableau2
          'si la Cellule feuille A est égale cellule feuil B alors
          If c1.Value = c2.Value Then
            'j'applique ma mise en forme
            c2.Interior.Color = 255
            c2.Font.Bold = True
            c2.Font.Color = RGB(255, 255, 255)
          End If
       Next c2
      Next c1
    Next i
    z = z + 1
    Next x
    End Sub

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Je te remercie beaucoup..
    Je vais alors essayer tout de suite
    Alors j'ai essayé pour le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c2.Font.Color = RGB(255, 255, 255)
    Ca marche mieux...
    Par contre j'ai un autre problème (oui je suis un peu pénible désolé)...
    Le code que tu m'as fourni marche très bien si j'ai un doublon sur ma 1ère feuille. Par contre si mon doulbon n'est pas sur ma 1ère feuille il ne marche pas... Je m'explique si je reprend mon exemple mon doublon 23537 (dans ma colonne B) n'est pas présent sur ma feuille A mais ce chiffre apparait une seule fois dans ma feuille B et/ou C le code ne marche plus..
    Est ce que tu sais pourquoi?

    J'ai l'impression que tu t'y connais très bien, je profite pour te demander autre chose. J'ai posté sur un autre sujet (vba pour titre graphique) si tu as une solution je suis preneuse car personne a pu me répondre

    Encore merci tu m'as beaucoup aidé...

  11. #11
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    salut,
    essai ceci : remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If c1.Value = c2.Value Then
            'j'applique ma mise en forme
            c2.Interior.Color = 255
            c2.Font.Bold = True
            c2.Font.Color = RGB(255, 255, 255)
          End If
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If c1.Value = c2.Value Then
            c1.Interior.Color = 255
            c1.Font.Bold = True
            c1.Font.Color = RGB(255, 255, 255)
     
            'j'applique ma mise en forme
            c2.Interior.Color = 255
            c2.Font.Bold = True
            c2.Font.Color = RGB(255, 255, 255)
          End If
    Oh non je m'y connais pas très bien je ne fais de vba que depuis 1 an j'ai beaucoup appris grâce a ce site et a beaucoup de recherche perso.
    Pour le graphique je ne m'y connais pas, désolé.

  12. #12
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    salut

    j'ai essayé ton code ca ne change rien ca ne marche pas.
    En tout cas merci pour ton aide et tant pis pour moi pour mes graphiques. Déjà tu m'aides beaucoup pour ce problème

  13. #13
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    si je reprend mon exemple mon doublon 23537 (dans ma colonne B) n'est pas présent sur ma feuille A mais ce chiffre apparait une seule fois dans ma feuille B et/ou C le code ne marche plus..
    Excuse moi mais je comprend mal ceci!
    Si le chiffre n'apparait qu'une fois pour les 3 feuilles alors il n'y a pas de doublons donc la macro ne fait rien.

    Si le chiffre apparait deux fois dans les feuilles alors la macro fonctionne.

  14. #14
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Je vais essayer d'expliquer...
    Effectivement le chiffre apparait qu'une fois sur les 3 feuilles mais pour mon boulot justement cela pose un problème le chiffre doit apparaitre qu'une fois sur une des 3 feuilles, au sinon c'est qu'il y a une erreur dans les n°.
    C'est plus clair?
    Par contre effectivement si j'ai un doublon (sur ma 1ere feuille) cela marche bien...

  15. #15
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bon on reprend:
    voici le code complet :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub reperer_doublons()
    Dim plage1 As Range, plage2 As Range, plage3 As Range, plage4 As Range
    Dim tableau1 As Range, tableau2 As Range
    Dim numfeuille As Integer, i As Integer, x As Integer, z As Integer
    numfeuille = Sheets.Count - 1
    z = 2
    For x = 1 To numfeuille
    Sheets(x).Activate
     
    'Définie la colonne B feuil A pour lecture
    Set plage1 = Sheets(x).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
     
    'Définie la colonne E feuil A pour lecture
    Set plage2 = Sheets(x).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
     
    'je regroupe les deux plages
    Set tableau1 = Union(plage1, plage2)
    'Je boucle sur les Feuilles à partir de la 2e jusque la dernière
    For i = z To Sheets.Count
      Sheets(i).Activate
     
    'définie la plage de comparaison colonne B feuil 2 puis 3
    Set plage3 = Sheets(i).Range(Cells(7, 2), Cells(Range("B65000").End(xlUp).Row, 2))
    'Je fais la même chose pour la colonne E
    Set plage4 = Sheets(i).Range(Cells(7, 5), Cells(Range("B65000").End(xlUp).Row, 5))
    'je regroupe les deux plages
    Set tableau2 = Union(plage3, plage4)
     
      'pour chaque cellule  tableau1 feuil A
      For Each c1 In tableau1
       'je regarde dans chaque cellule tableau2 feuil 2 puis 3
       For Each c2 In tableau2
          'si la Cellule feuille A est égale cellule feuil B alors
          If c1.Value = c2.Value Then
            c1.Interior.Color = 255
            c1.Font.Bold = True
            c1.Font.Color = RGB(255, 255, 255)
     
            'j'applique ma mise en forme
            c2.Interior.Color = 255
            c2.Font.Bold = True
            c2.Font.Color = RGB(255, 255, 255)
          End If
       Next c2
      Next c1
    Next i
    z = z + 1
    Next x
    End Sub
    Avec ton fichier Exemple (doublons.xls mis en pièce jointe) et cette macro, si dans la feuille A il n' y a pas 25537 mais qu'il y est dans La Feuille B ET dans la feuille C alors les deux seront mis en rouge. Donc ça fonctionne, Je confirme j'ai essayé.

    ATTENTION on est d'accord cette macro ne recherche les doublons que d'une feuille sur l'autre, pas dans la même feuille.

    Maintenant si ce chiffre ne doit apparaître qu'une seule fois dans une des trois feuilles le problème n'est plus le même que la question d'origine car la macro ne sert qu'a identifier les doublons, pas les supprimer.
    Faut-il les supprimer, si oui dans la première ou les autres feuilles?
    que Faut-il supprimer? La ligne entière ou uniquement le contenu de la cellule ?

  16. #16
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Bonjour

    J'ai essayé le code là il marche..
    Moi je voulais juste qu'il me repère les doublons et non qu'il me les supprime.
    Par contre si j'ai un doublon sur la feuille B et C et non sur la A, là il n'en tient pas compte. Est-ce normal?
    En tout cas je te remercie encore car tu m'as enlevé déjà une grosse épine du pied..
    Bonne journée

  17. #17
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Dans un module public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub CDouble(RngA As Range, RngB As Range)
    Dim c As Range, v As Range
     
    For Each c In RngA
        Set v = RngB.Find(c.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not v Is Nothing Then
            If c.Parent.Name & c.Address <> v.Parent.Name & v.Address Then
                c.Interior.ColorIndex = 3
                v.Interior.ColorIndex = 3
                Set v = Nothing
            End If
        End If
    Next c
    End Sub
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Appliquer()
    Dim i As Byte, j As Byte
    Dim LastLigA As Long, LastLigB As Long
     
    Application.ScreenUpdating = False
    For i = 1 To Worksheets.Count
        LastLigA = Worksheets(i).Cells(Rows.Count, 1).End(xlUp).Row
        For j = i To Worksheets.Count
            LastLigB = Worksheets(j).Cells(Rows.Count, 1).End(xlUp).Row
            CDouble Worksheets(i).Range("B7:B" & LastLigA), Worksheets(j).Range("B7:B" & LastLigB)
            CDouble Worksheets(i).Range("E7:E" & LastLigA), Worksheets(j).Range("E7:E" & LastLigB)
        Next j
    Next i
    End Sub

  18. #18
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Merci mercatog.
    Mais comme je ne m'y connais pas très bien en vba. A quoi sert le module public?

  19. #19
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si tu n'y connait pas en vba, il fallait commencer par les cours d’initiation (très intéressants sur ce site).
    On crée une procédure publique CDouble qui recherche les doublons entre 2 plages rngA et rngB entrés en paramètre.
    cette procédure est appelée dans la Sub Appliquer qui boucle sur les feuilles du classeur

  20. #20
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Points : 52
    Points
    52
    Par défaut
    Ok merci.
    Par contre j'ai encore une question. Pour le forum, j'avais mis un fichier simplifié.
    Mais dans mon fichier original, les feuilles en sont pas nommés comme ca et les colonnes sont décalées. Pour les colonnes pas de problème j'ai juste à changer les lettres. mais est ce qu'il faut que je change quelque part les noms des feuilles pour que mon code marche? car là mon fichier se bloque et je ne peux plus rien faire?
    Autre question si plus que 3 feuilles est ce que le code marche aussi? Ou faut-il rajouter autre chose?
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Contrôle des doublons sur plusieurs feuilles, puis suppression
    Par DeathLighT dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/03/2013, 12h14
  2. chercher les doublons sur plusieurs feuilles
    Par huître dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/06/2011, 15h48
  3. macro sur plusieurs feuilles
    Par lolo_bob2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2006, 16h51
  4. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 15h56
  5. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23

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