Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RECHERCHE ENTRE DEUX TABLEAUX

1 réponse
Avatar
Vincent CHRISTOL
Bonjour à tous,

J'ai deux fichiers séparés avec dans chaque :
- une colonne A qui comporte les mêmes textes dans les deux fichiers
- une colonne B avec des textes aléatoires

Exemple :
Fichier 1
Colonne A Colonne B
AABBC il fait beau
AABCA il fait pas beau
ABCAD il est noir


Fichier 2
Colonne A Colonne B
AABBC texte récupéré du fichier 1
AABBC "
AABCE "
AABBC "
ABCAD "

Je souhaite dans le fichier 2, inscrire les textes de la colonne B
automatiquement, en récupérant les infos du fichier 1 en me servant du code
de la colonne A

J'espère que quelqu'un me trouvera une solution que j'imagine toute simple,
et surtout que mes explications sont compréhensibles

;-)
20/100

1 réponse

Avatar
michdenis
Bonjour Vincent,

Une façon rapide de faire :

A ) Copie la macro suivante dans un module standard de ton classeur
où tu veux compléter ta colonne B:B
Tu ouvres l'éditeur de code VBA -> raccourci clavier F11
Barre des menus / Insertions / Module

B ) Tu dois ajouter une référence à ton projetVBA. Pour ce faire :
Barres des menus / outils / référence / et tu coches dans la liste :
"Microsoft Activex Data objects 2.8 library"

C ) Le code suivant suppose que tu n'as pas de ligne d'étiquettes
de tes colonnes pour tes 2 colonnes A et B dans le classeur où tu
veux extraire tes données et que tes données débutent en ligne 1

D ) Tu lis la procédure et tu adaptes 2 choses :
Le nom des feuilles (2 places)
Le chemin et le fichier où sont tes données source

'---------------------------------------------
Sub RequêteAvecADO_Feuille()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String, C As Range
Dim File As String, Plage As Range

'Nom de la feuille du fichier où sont les données complètes
NomFeuille = "Feuil1" 'Nom à adapter

'Chemin et nom du fichier où sont tes 2 colonnes remplies:
File = "c:UsersDMDocumentsClasseur1.xls" 'à adapter

'Plage des données, tes données sont dans les colonnes A:B
'et ils débutent en ligne 1
Set Plage = Range("A:B")

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""

'La requête qui sera exécutée.
Requete = "SELECT * From [" & NomFeuille & "$" & _
Plage.Address(0, 0) & "]"
'Exécution de la requête
Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic

Application.ScreenUpdating = False
Application.EnableEvents = False

'Adapte le nom de la feuille où sont
'tes données à remplir
With Worksheets("Feuil2") 'à adapter
For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Rst.Find "F1 Like " & "'" & C.Value & "'"
If Rst.EOF = False Then
C.Offset(, 1).Value = Rst(1).Value
Else
Rst.MoveFirst
End If
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True

Rst.Close: Conn.Close
Set Rst = Nothing: Set Conn = Nothing
End Sub
'---------------------------------------------



"Vincent CHRISTOL" a écrit dans le message de groupe de
discussion : C7ED05B5.35389%
Bonjour à tous,

J'ai deux fichiers séparés avec dans chaque :
- une colonne A qui comporte les mêmes textes dans les deux fichiers
- une colonne B avec des textes aléatoires

Exemple :
Fichier 1
Colonne A Colonne B
AABBC il fait beau
AABCA il fait pas beau
ABCAD il est noir


Fichier 2
Colonne A Colonne B
AABBC texte récupéré du fichier 1
AABBC "
AABCE "
AABBC "
ABCAD "

Je souhaite dans le fichier 2, inscrire les textes de la colonne B
automatiquement, en récupérant les infos du fichier 1 en me servant du code
de la colonne A

J'espère que quelqu'un me trouvera une solution que j'imagine toute simple,
et surtout que mes explications sont compréhensibles

;-)
20/100