Résolu Récupération de donnée entre deux classeurs Excel avec condition

ColdFenrir

Nouveau membre
Bonjour,

Je débute actuellement en VBA et l'on m'a demandé de créer une macro permettant de récupérer des informations sur un classeur excel et de le copier dans un autre mais avec certaines condition.

Je m'explique : Dans le tableau ou je dois copier les informations j'ai deux colonnes qui servent de référence "Nom" et "Prénom" et donc si ces cellules sont remplis et identique dans les deux tableaux je dois faire remonter les info du fichier 2 dans le fichier 1.

J'ai essayé plusieurs méthode mais aucune n'a été concluante c'est pour cela que je me tourne vers des personnes plus expérimentés

Merci d'avance pour vos réponse.
 

drul

Obscur pro du hardware
Staff
Salut, rien de bien sorcier en effet, post ce que tu as essayé et qui te semblait le plus pertinent ... et on verra pour faire fonctionner tout ça ;)
Par contre j'ai pas tout fait compris ce que tu désires copier ...
Si j'ai bien compris tu as les colonnes "Nom" et "Prénom" dans les 2 fichiers (disons A et B)
ton code doit être qqch du genre:
Code:
si (A.Prénom = B.Prénom) ET (A.Nom = B.Nom) alors je copie certaines données de A vers B
C'est bien ça ? (précises quelles sont les données à copier, et ou tu veux les copier ...
 

ColdFenrir

Nouveau membre
Bonjour drul

Désolé pour l'attente de ma réponse.
tout d'abord j'ai essayer la méthode ADO, puis la méthode avec ouverture et fermeture du deuxième fichier.
Et concernant les données à copié c'est exactement ce que tu as compris.
 

drul

Obscur pro du hardware
Staff
Ben non justement, j'ai pas compris ce qui devait être copié, ni ou ... les conditions c'est bon ,mais les données non ...
C'est quoi la méthode ADO ?
 

ColdFenrir

Nouveau membre
Dans le fichier2 j'ai trois informations qu'il faut que je copie si le "Nom" et le "Prénom" sont les mêmes dans les deux fichiers
 

drul

Obscur pro du hardware
Staff
Non, mais tu peux mettre des prints screens sur un site partage d'image (casimage, hostingpics par exemple)
 

drul

Obscur pro du hardware
Staff
Faut les uploader via un site comme www.casimages.com et copier le lien forum ici.
 

drul

Obscur pro du hardware
Staff
Donc,
Si 1.nom = 2.nom ET 1.prénom = 2.prénom alors on copie info0, info1 et info2 de fichier 2 vers fichier 1
c'est bien ça ?

Fichier1 et Fichier2 sont déjà "ouvert" ou faut les ouvrir via le code? Le code est situé dans quel fichier ?

P.S. le contenu de chrome n'intéresse personne ici, la prochaine fois ne copie que la fenêtre active (Alt + PrintScreen)
 

ColdFenrir

Nouveau membre
Désolé pour la page internet je n'avais pas vu que mon deuxième écran avait été pris dans le screen.

Effectivement la condition est celle la et de préférence que le fichier 2 ne soit pas ouvert ou qu'il l'ouvre et le referme
 

drul

Obscur pro du hardware
Staff
Une idée:
Code:
Option Explicit
Sub test()
Dim shFichier1 As Worksheet
Dim wbFichier2 As Workbook
Dim shFichier2 As Worksheet
Dim derLigne1 As Long
Dim derLigne2 As Long
Dim i As Long
Dim j As Long
'initialisation
Set shFichier1 = ThisWorkbook.Sheets("feuil1")
'on cherche la dernière société présente dans le fichier 1
derLigne1 = shFichier1.Cells(Rows.Count, "A").End(xlUp).Row

Set wbFichier2 = Workbooks.Open(ThisWorkbook.Path & "\fichier2.xlsx")
Set shFichier2 = wbFichier2.Sheets("feuil1")
derLigne2 = shFichier2.Cells(Rows.Count, "A").End(xlUp).Row

For i = 2 To derLigne1 'En ligne 1 ya les entêtes
    For j = 2 To derLigne2
        If (shFichier1.Cells(i, 1).Value = shFichier2.Cells(j, 1).Value) _
            And (shFichier1.Cells(i, 2).Value = shFichier2.Cells(j, 2).Value) Then
            
            shFichier2.Range(shFichier2.Cells(j, 3), shFichier2.Cells(j, 5)).Copy shFichier1.Range(shFichier1.Cells(i, 3), shFichier1.Cells(i, 5))
        End If
        
    Next
Next
wbFichier2.Saved = True
wbFichier2.Close
End Sub
 

ColdFenrir

Nouveau membre
bah étant donné que j'avais déjà pas mal bosser dans mon coin dans mon cas tu n'avais pas besoin ^^
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 064
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut