Copie de données d'une feuille excel vers une autre avec conditi

marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour a tous,
J'ai un fichier Excel avec deux feuilles : "Domaines " et "Référentiel Applications PSA".
Sur chacune des feuilles, on a une colonne A comportant les mêmes données que colonne A de la seconde feuille (mais pas dans la même ordre). Donc je veux copier les données de la colonne B de la feuille "Domaines" vers la colonne B de la feuille "Référentiel Applications PSA" avec la condition que la donné compris dans la colonne A de la feuille "Domaines" soit la même que celle de la colonne A de la feuille "Référentiel Applications PSA"
Merci pour votre aide
A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Curieux qu'en 2° année de DUT info, tu poses une telle question !

en attendant
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message





 Michel
0
marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse.
voici le lien du fichier https://mon-partage.fr/f/gJzUQsxf/
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bien reçu
Je regarde ca demain...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
Option Explicit
'------------------------------------------------------------------------------
Sub copier_ss_condition()
Dim Derlig As Integer, T_nom, Idx As Integer, D_nom As Object, T_out
Dim T_psa, T_in
Dim Name As String, Cptr As Integer, Col As Byte

'-------------------------initialisations
Application.ScreenUpdating = False
With Sheets("Domaines")
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
.Range("C2:H" & Derlig).Clear
T_nom = .Range("A2:A" & Derlig)
End With
Set D_nom = CreateObject("scripting.dictionary")
For Idx = 1 To UBound(T_nom)
If Not D_nom.exists(T_nom(Idx, 1)) Then: D_nom.Add T_nom(Idx, 1), Idx
Next
ReDim T_out(1 To D_nom.Count, 1 To 6)
With Sheets("Référentiel Applications PSA")
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_psa = .Range("A2:A" & Derlig)
T_in = .Range("C2:H" & Derlig)
End With
'------------------------------------------------traitement
For Cptr = 1 To UBound(T_psa)
Name = T_psa(Cptr, 1)
If D_nom.exists(Name) Then
Idx = D_nom.Item(Name)
For Col = 1 To 6
T_out(Idx, Col) = T_in(Cptr, Col)
Next
End If
Next
'-----------------------------restitution
With Sheets("Domaines").Range("C2:H" & D_nom.Count + 1)
.Value = T_out
.VerticalAlignment = xlTop
.WrapText = True
.Borders.Weight = xlThin
End With
Sheets("Domaines").Activate
End Sub


0
marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel,
Merci pour tes réponses. Sa marche très bien. Mais au lieu de copier sur la feuille "Référentiel Applications PSA" , sa copie sur la feuille "Domaines". Mais c'est pas grave, le plus dur est déjà fait. Moi même je vais voir comment le copier sur "Domaines" au lieu de "Référentiel Applications PSA"
0
marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai constater une autre imperfection. La feuille Domaines comportant moins de ligne que la feuille "Référentiel Applications PSA", donc les autres lignes restantes n'ont pas été copiées.
0
marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Encore un autre constat : les éléments de la colonne A des deux tables n'étant pas dans le même ordre, c'est pour cela que la correspondance entre chaque cellule doit être faite. Elle n'est pas faite avec le code, donc sa fausse le résultat.
Merci d'avance pour tes nouvelles propositions
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > marfouzsiaka Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Cherche un peu!
tu as le principe dictionary + variables tableau

bonne continuation
0