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 :

Match en Macro: [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut Match en Macro:
    Bonjour,


    Voila je reviens vers vous avec une autre question

    Je dispose de 2 fichiers

    1-

    Nom couleur
    sam bleu
    loic vert
    jean rouge
    stef orange


    2-
    Nom couleur
    jean
    sam


    j aimerais savoir s il est possible de rappatrier les couleurs dans le fichier numero 2 (correspondant aux noms respectifs...) - tout cela en passant par une macro bien sur

    si oui comment faire je suis perdu :'(

    Amicalement





    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
    Sub match()
    Dim Var As Variant, Nom As String, Prenom As String, Groupe As String, Repertoire As String
     
    ''''''Worksheets("sheet3").Select
    ''''''Range("A1").Select
    Worksheets("sheet1").Activate
    Range("a2:a100").Select
     
    For Each a In Selection
    Nom = Range(a.Address)
    couleur = Range(a.Address).Offset(0, 1)
     
    Var = Application.Index(Worksheets("sheet2").Range("A1", "A100"), Application.match(a, Worksheets("sheet2").Range("A1", "A100"), 0), 1)
     
    If Not IsError(Var) Then
    Worksheets("sheet2").Select
    ''''''''Range("A2").Select
    ActiveCell.Value = Var
    ActiveCell.Offset(0, 1).Value = couleur
    ''''''''ActiveCell.Offset(1, 2).Value = Nom
    ''''''''ActiveCell.Offset(0, 1).Select
    Worksheets("sheet1").Activate
    End If
    Next a
    End Sub
    ...

    voici une idee de balbutiement de code... mayday mayday :'(

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    si j'ai bien compris, un début de solution peut-être...

    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
     
    Sub WbLookUp()
    Dim WBsrc As Workbook, SHsrc As Worksheet
    Dim WBdest As Workbook, SHdest As Worksheet
    Dim C As Range
     
    'définir les classeur
    'a adapter selon les cas
    Set WBsrc = Workbooks(1)
    Set WBdest = Workbooks(2)
     
    For Each C In WBdest.Sheets(1).Range(WBdest.Sheets(1).Cells(2, 1), WBdest.Sheets(1).Cells(1, 1).End(xlDown)).Cells ' a adapter selon les cas
        C.Offset(0, 1) = Application.WorksheetFunction.VLookup(C, WBsrc.Sheets(1).Range("A1:B100"), 2, False)
    Next C
     
    End Sub

  3. #3
    Membre chevronné Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Par défaut
    Avec FIND :

    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
     
    Sub match()
     
    Set F1 = Worksheets("Feuil1")
    Set F2 = Worksheets("Feuil2")
     
    NbreLigne1 = F1.Cells(1, 1).End(xlDown).Row
    NbreLigne2 = F2.Cells(1, 1).End(xlDown).Row
     
    With F1.Range("a1:a" & NbreLigne1)
     
    For i = 2 To NbreLigne2
        Set c = .Find(F2.Cells(i, 1), LookIn:=xlValues)
        If Not c Is Nothing Then
             F2.Cells(i, 2).Value = F1.Cells(c.Row, 2).Value
        End If
    Next i
     
    End With

  4. #4
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut
    je vais m y atteler ...ve voir ce code par contre le vlookup me fait peut c pas trop lourd?....car en fait je compte adapter ce code pour des fichiers bien plus gros..

    en tous cas merci pour la reactivite - je vous tiens au jus...

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

Discussions similaires

  1. [XL-2010] Creation d'une macro "matching data"
    Par geo86 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/08/2012, 10h29
  2. Match en Macro Version 2.0 - plus complique
    Par casual92 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/07/2010, 20h47
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  4. Qu'est-ce qu'une macro ?
    Par karli dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/09/2002, 03h38
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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