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 :

Recuperer la valeur d'une cellule en doublon


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut Recuperer la valeur d'une cellule en doublon
    Bonjour,
    J'ai un petit code Vba qui me permet d'identifier des cellule en doublons.
    La cellule à gauche de la cellule en doublon devient rouge.
    Je souhaiterais insérer dans cette cellule rouge, le contenu de la cellule à gauche de la cellule en doublon.
    Je vous joins une image de ce que je souhaiterais faire.
    Voici ci dessous mon code vba
    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
    Sub Doublon()
     
        Dim Plage As Range
        Dim Cel As Range
     
        With Worksheets("Feuil1")
     
           Set Plage = .Range(.Cells(3, 3), .Cells(.Rows.Count, 6).End(xlUp))
     
        End With
     
     
         For Each Cel In Plage
     
            If Application.CountIf(Plage, Cel.Value) > 1 Then
     
            Cel.Offset(0, -2).Interior.ColorIndex = 3
     
            End If
     
        Next Cel
     
    End Sub
    Voici l'image
    Nom : Capture.PNG
Affichages : 275
Taille : 6,5 Ko
    Je souhaiterais, inserer dans les cellules rouges, le numéro à gauche du prénom en doublon
    ex :
    A gauche de la cellule 001, j'aurais 036 qui correspond au numéro du doublon Pierre
    A gauche de la cellule 036, j'aurais 001 qui correspond au numéro du doublon Pierre

    A gauche de la cellule 003, j'aurais 038 qui correspond au numéro du doublon Rachel
    A gauche de la cellule 038, j'aurais 003 qui correspond au numéro du doublon Rachel

    Etc....

    Est ce possible ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par facteur Voir le message
    Bonjour,

    Une solution possible :

    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
     
    Sub Doublon()
     
    Dim Plage1 As Range, Plage2 As Range
     
        With Worksheets("Feuil1")
     
             Set Plage1 = .Range(.Cells(3, 3), .Cells(.Rows.Count, 3).End(xlUp))
             Set Plage2 = .Range(.Cells(3, 6), .Cells(.Rows.Count, 6).End(xlUp))
     
             ChercherLesDoublonsDansDeuxPlages Plage1, Plage2
             ChercherLesDoublonsDansDeuxPlages Plage2, Plage1
     
             Set Plage1 = Nothing
             Set Plage2 = Nothing
     
        End With
     
    End Sub
     
    Sub ChercherLesDoublonsDansDeuxPlages(ByVal MaPlage1 As Range, ByVal MaPlage2 As Range)
     
    Dim Cel1 As Range, Cel2 As Range
     
             For Each Cel1 In MaPlage1
                 For Each Cel2 In MaPlage2
                     If Cel1 = Cel2 Then
                        With Cel1.Offset(0, -2)
                             .Value = Cel2.Offset(0, -1)
                             .Interior.ColorIndex = 3
                             .Font.Color = RGB(255, 255, 255)
                        End With
                    End If
                 Next Cel2
             Next Cel1
     
    End Sub

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par facteur Voir le message
    Je souhaiterais, inserer dans les cellules rouges, le numéro à gauche du prénom en doublon
    Pourquoi utiliser une macro alors qu'une combinaison de EQUIV() et INDEX() peut faire ça très simplement ?
    Avec une petite SIERREUR() pour englober tout ça et afficher un vide plutôt qu'un message d'erreur.

    En supposant que te première liste est en B1:C10 et que ta seconde liste est en E1:F10,
    met en A1 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(E$1:E$10;EQUIV(C1;F$1:F$10;0)))
    Copier A1 vers le bas autant que nécessaire.

    Et pour la mise en rouge de la cellule, une petite mise en forme conditionnelle (valeur différente de vide) fera ça en quelques secondes.

Discussions similaires

  1. recuperer la valeur d'une cellule de tableau HTML
    Par cfouc dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 13h34
  2. recuperer la valeur d'une cellule ayant le focus
    Par stefano dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/03/2006, 20h07
  3. [SWING][JTable] recuperer la valeur d'une cellule
    Par Psykorel dans le forum Composants
    Réponses: 1
    Dernier message: 05/01/2006, 20h53
  4. [VB.NET] Recuperer la valeur d'une cellule d'un DataTable
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/03/2005, 10h59
  5. recuperer la valeur d une cellule
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/01/2005, 18h05

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