Copier cellules d'une feuille à une autre en fonction d' un ID
MagBota
Messages postés
5
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je me trouve avec un classeur avec deux feuilles, la colonne A correspond à des identifiants.
Les identifiants sont les mêmes pour les deux feuilles.
La feuille 1 contient souvent plusieurs échantillons (plusieurs lignes) avec le même identifiant, tandis que la feuille 2 contient un échantillon (1 ligne) pour un identifiant.
La feuille 1 contient des colonnes où il manque des informations (cellules vides dans les colonnes G, K et N), qui se trouvent dans la feuille 2 (resp. colonne D, E et F).
Je souhaite copier les infos de la feuille 2, et les coller dans la feuille 1 :
lorsque l'identifiant de la feuille 1 correspond à 1 identifiant de la feuille 2.
Par exemple, si la valeur de la cellule A2 de la feuille1 = valeur de la cellule A6 de la feuille2, alors,
cellule G2.feuille1 = cellule D6. feuille2
cellule K2.feuille1 = cellule E6. feuille2
cellule N2.feuille1 = cellule F6. feuille2
puis, on passe à la cellule A3, et on réitère sur toutes les cellules de la colonne A.feuille1.
Si un identifiant de la feuille 1 n'est pas dans la feuille 2, je voudrais que la macro ne fasse rien et passe au suivant.
Voici le schéma que j'ai en tête, je pense que ça doit être relativement simple à coder (ou pas ?), mais il faudrait que je m'en sorte vite, et je n'en suis qu'au stade d'apprentissage du langage... Donc je n'ai pas fini !
Merci d'avance pour votre aide !
(je ne sais pas si je peux vous fournir une PJ ?)
je me trouve avec un classeur avec deux feuilles, la colonne A correspond à des identifiants.
Les identifiants sont les mêmes pour les deux feuilles.
La feuille 1 contient souvent plusieurs échantillons (plusieurs lignes) avec le même identifiant, tandis que la feuille 2 contient un échantillon (1 ligne) pour un identifiant.
La feuille 1 contient des colonnes où il manque des informations (cellules vides dans les colonnes G, K et N), qui se trouvent dans la feuille 2 (resp. colonne D, E et F).
Je souhaite copier les infos de la feuille 2, et les coller dans la feuille 1 :
lorsque l'identifiant de la feuille 1 correspond à 1 identifiant de la feuille 2.
Par exemple, si la valeur de la cellule A2 de la feuille1 = valeur de la cellule A6 de la feuille2, alors,
cellule G2.feuille1 = cellule D6. feuille2
cellule K2.feuille1 = cellule E6. feuille2
cellule N2.feuille1 = cellule F6. feuille2
puis, on passe à la cellule A3, et on réitère sur toutes les cellules de la colonne A.feuille1.
Si un identifiant de la feuille 1 n'est pas dans la feuille 2, je voudrais que la macro ne fasse rien et passe au suivant.
Voici le schéma que j'ai en tête, je pense que ça doit être relativement simple à coder (ou pas ?), mais il faudrait que je m'en sorte vite, et je n'en suis qu'au stade d'apprentissage du langage... Donc je n'ai pas fini !
Merci d'avance pour votre aide !
(je ne sais pas si je peux vous fournir une PJ ?)
A voir également:
- Copier cellules d'une feuille à une autre en fonction d' un ID
- Fonction si et - Guide
- Comment copier une vidéo youtube - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Bureautique
- Bruler une feuille de laurier - Guide
1 réponse
Bonjour,
(je ne sais pas si je peux vous fournir une PJ ?)
Oui, c'est mieux.
Pour la prochaine fois déposer le fichier de travail sur cjoint.com et coller ici le lien fourni.
Un exemple :
Je n'écrase pas, les données ne sont copiées que si la cellule destination est vide.
https://www.cjoint.com/?DCygCUwyifz
eric
(je ne sais pas si je peux vous fournir une PJ ?)
Oui, c'est mieux.
Pour la prochaine fois déposer le fichier de travail sur cjoint.com et coller ici le lien fourni.
Un exemple :
Sub maj()
Dim sh2 As Worksheet, c As Range, lig As Long
Set sh2 = Worksheets("Feuil2")
Application.ScreenUpdating = False
For lig = 2 To sh2.Cells(Rows.Count, 1).End(xlUp).Row
Set c = Columns(1).Find(sh2.Cells(lig, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
If Cells(c.Row, 7) = "" Then Cells(c.Row, 7) = sh2.Cells(lig, 4)
If Cells(c.Row, 11) = "" Then Cells(c.Row, 11) = sh2.Cells(lig, 5)
If Cells(c.Row, 14) = "" Then Cells(c.Row, 14) = sh2.Cells(lig, 6)
End If
Next lig
End Sub
Je n'écrase pas, les données ne sont copiées que si la cellule destination est vide.
https://www.cjoint.com/?DCygCUwyifz
eric