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

Fermé
marfouzsiaka Messages postés 6 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017 - 4 avril 2017 à 11:45
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 avril 2017 à 11:41
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 4 avril 2017 à 15:51
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 mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017
4 avril 2017 à 16:14
Merci pour ta réponse.
voici le lien du fichier https://mon-partage.fr/f/gJzUQsxf/
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 avril 2017 à 17:24
Bien reçu
Je regarde ca demain...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 avril 2017 à 10:39
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 mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017
5 avril 2017 à 10:49
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 mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017
5 avril 2017 à 10:57
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 mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017
Modifié le 5 avril 2017 à 11:27
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > marfouzsiaka Messages postés 6 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 avril 2017
Modifié le 5 avril 2017 à 11:43
Cherche un peu!
tu as le principe dictionary + variables tableau

bonne continuation
0