Comparaison des info dans deux colonnes differentes de deux Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
m
municipum
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 19 février 2014
Version d'Excel : 2007/2010

Message par municipum » 26 mars 2015, 17:37

Bonjour,
j'ai deux fichiers
un premier: donnees ( qui comporte des donnees qui peuvent changer a chanque fois comportant 03 colonnes "nom,date et statut").
un 2eme: comparaison ( avec une liste de donnees qui ne change pas comportant deux colonnes "nom et statut")
le but est de creer un code vba qui prend la valeur de la premiere cellule de la colonne "nom" du fichier "donnees" et la cherche dans la colonne "nom" du fichier "comparaison".
s'il trouve que c'est identique, alors il copie le contenu de la cullule correspondante de la colonne "statut" du fichier "donnees" et la colle dans la cellule correspondante dans la colonne "statut" du fichier "comparaison". s'il la trouve.
s'il la trouve pas, il passe a la cellule suivante (de la colonne "nom du fichier "donnees") et cherche de la meme maniere, jusqu'a la fin.
ex:
PSP1 se trouve dans les fichiers, alors il prend le contenu du "statut" du fichier "donnees" et le colle dans "statut" du fichier "comparaison".
comparaison.xlsx
(13.51 Kio) Téléchargé 71 fois
donnees.xlsx
(13.9 Kio) Téléchargé 56 fois
merci pour votre aide.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'939
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 mars 2015, 17:58

Pas besoin de VBA :
=SIERREUR(RECHERCHEV(E2;[donnees.xlsx]Sheet1!$A:$C;3;0);"???")

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
municipum
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 19 février 2014
Version d'Excel : 2007/2010

Message par municipum » 26 mars 2015, 19:09

bonjour,
et merci pour la réponse. je ne sais pas si je me suis bien exprimé, mais le but est d'automatiser le travail face a 50-70 lignes.
j'ai deux fichiers, je cherche a coller le contenu d'une cellule d'un fichier A dans une autre cellule d'un fichier B si une condition est remplie (un contenu identique entre les deux fichier des cellules de la colonne statut).
merci pour votre retour.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'939
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 mars 2015, 19:36

Tu peux éventuellement partir de cette formule, et créer une macro par apprentissage en finissant par un copier/coller valeurs uniquement dans ce cas.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
municipum
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 19 février 2014
Version d'Excel : 2007/2010

Message par municipum » 27 mars 2015, 10:32

bonjour,
merci pour ce retour. effectivement elle marche, mais il faut la traduire en code VBA !!!
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'939
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 28 mars 2015, 11:05

Dans comparaison :
Sub compare()

Set principal = ThisWorkbook
Set secondaire = Workbooks("donnees.xlsx")

For Each cel In Range("E2:E" & Range("E1").End(xlDown).Row)

    Set C = secondaire.Sheets("Sheet1").Columns("A").Find(cel.Value, Range("A1").End(xlDown), xlValues, xlWhole)
    If Not C Is Nothing Then
        cel.Offset(0, 1).Value = C.Offset(0, 2).Value
    End If

Next

Set secondaire = Nothing
Set principal = Nothing

End Sub

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
municipum
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 19 février 2014
Version d'Excel : 2007/2010

Message par municipum » 31 mars 2015, 10:05

bonjour,
Merci pour ce retour. je vais essayer de la tester.
Avatar du membre
Marc L
Membre dévoué
Membre dévoué
Messages : 791
Appréciation reçue : 1
Inscrit le : 27 janvier 2015
Version d'Excel : 2003 / 2007

Message par Marc L » 31 mars 2015, 11:46

  Bonjour,

  dans la même veine tout en conservant la couleur de fond, démonstration à coller dans le classeur Comparaison :
Sub Demo()
Dim Rs As Range, Rg As Range
Set Rs = Workbooks("donnees.xlsx").Worksheets(1).Cells(1).CurrentRegion.Columns(1)
Application.ScreenUpdating = False

With ThisWorkbook.Worksheets(1)
    For R& = 2 To .Cells(5).CurrentRegion.Rows.Count
           Set Rg = Rs.Find(.Cells(R, 5).Value, , xlValues, xlWhole)
        If Not Rg Is Nothing Then Rg(1, 3).Copy .Cells(R, 6)
    Next
End With

Set Rg = Nothing
Set Rs = Nothing
End Sub
m
municipum
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 19 février 2014
Version d'Excel : 2007/2010

Message par municipum » 1 avril 2015, 14:49

cette macro bloque a la 3eme ligne
Set Rs = Workbooks("donnees.xlsx").Worksheets(1).Cells(1).CurrentRegion.Columns(1)
Avatar du membre
Marc L
Membre dévoué
Membre dévoué
Messages : 791
Appréciation reçue : 1
Inscrit le : 27 janvier 2015
Version d'Excel : 2003 / 2007

Message par Marc L » 1 avril 2015, 14:55

 

  Aucun souci de mon côté en ouvrant les deux fichiers joints initialement !

  Avec le message d'erreur et son aide, tu dois comprendre pourquoi …

 
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message