Mise à jour de données par l'identifiant

Bonjour à tous,

J'ai un petit souci et je ne trouve pas de solution et cela me surprend vu l'usine à gaz qu'est Excel. Donc pour résumer, j'ai deux fichiers, pour chacun d'eux la première colonne représente un id, il y a en plusieurs milliers, sur ces milliers d'identifiants 98% sont similaires entre les deux fichiers.

Mon objectif est d'importer le deuxième fichier dans le premier et que les données de celui-ci se retrouvent dans la colonne correspondant en fonction de l'identifiant.

Exemple :

Fichier 1

colonne id

1

2

3

4

Fichier 2

colonne id colonne données

1 foot

2 basket

3 handball

5 pétanque

En important le fichier 2 dans le 1 je souhaite donc obtenir le résultat :

colonne id colonne données

1 foot

2 basket

3 handball

4 -

Pour ceux qui connaissent je souhaite obtenir l'équivalent de la commande SQL :

UPDATE `base-de-données`.`table` SET `colonne-donnees` = 'valeur [1]' WHERE `table`.`colonne-id` = 'valeur [2]';

Merci par avance à ceux qui auront une idée,

Bonjour,

Une piste à

Option Explicit
Option Compare Text

Sub MisAjour()
Dim MyDico, Lig As Long, i As Integer
Dim Col1 As Integer, Col2 As Integer, LigC As Integer
Dim Wks As Worksheet
    Set Wks = Workbook("Fichier2.xls").Sheets("Feuil1")
    Set MyDico = CreateObject("Scripting.Dictionary")
    Col2 = 2 'N° de la colonne avec les identifiants du fichier 2
    With Wks
        For Lig = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
            MyDico.Add Cells(Lig, Col2).Value, Lig
        Next Lig
    End With

    Col1 = 1 'N° de la colonne avec les identifiants du fichier 1
    With Workbook("Fichier1.xls").Sheets("Feuil1")
        For Lig = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
            If MyDico.exists(.Cells(Lig, Col1).Value) Then
                LigC = MyDico.Item(.Cells(Lig, Col1).Value)
                .Cells(Lig, Col1).Offset(, 1).Value = Wks.Cells(ligD, Col2).Offset(, 1).Value
            End If
        Next Lig
    End With
    Set Wks = Nothing
    Set MyDico = Nothing
End Sub

Tu dois adapter les noms et les colonnes.

Pas sûr que ça fonctionne du premier coup, j'ai pas tester. (j'ai pas tes classeurs)

A+

Merci lermite pour ta piste mais j'ai trouvé encore plus simple donc je met le lien ici au cas ou quelqu'un aurait besoin un jour http://support.microsoft.com/kb/136699

Cela permet de faire des jointures entre deux feuilles directement depuis les requêtes de Microsoft query. Cela fonctionne parfaitement (je crois que je suis meilleur en requête de base de données qu'en code Excel... )

Impeccable le lien, je ne connaissais pas ce système.

merci à toi du retour.

A+

Rechercher des sujets similaires à "mise jour donnees identifiant"