Bonjour,
Je pense que ce doit être un basique, mais je n 'ai pas la solution.
Je souhaiterais comparer deux tableaux feuille1 et feuille2, récupérer les ajouts du 2 et les mettre dans le 1.
Merci pour le coup de main![]()
Bonjour,
Je pense que ce doit être un basique, mais je n 'ai pas la solution.
Je souhaiterais comparer deux tableaux feuille1 et feuille2, récupérer les ajouts du 2 et les mettre dans le 1.
Merci pour le coup de main![]()
Ce n'est pas clair
une devinette, chercher les données dans la colonne A de feuil2, si elles ne sont pas dans la colonne A de feuil1, elles sont rajoutées à la finEdit, autrement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 dim c as range, v as range for each v in sheets("feuil2").Range("A1:A" & sheets("feuil2").range("A65536").end(xlup).row) set c=sheets("feuil1").Range("A1:A" & sheets("feuil1").range("A65536").end(xlup).row).find(v, lookin:=xlvalues,lookat:=xlwhole) if c is nothing then sheets("feuil1").Range("A" & sheets("feuil1").range("A65536").end(xlup).row+1)=v next v
Bonjour,
La première macro fonctionne parfaitement quand je compare deux colonnes.
Par contre comment faire pour récupérer lors de la comparaison des informations sur la même ligne ?
Par exemple une adresse un code postal ou un nom.
Merci d 'avance![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part if c is nothing then sheets("feuil1").rows( sheets("feuil1").range("A65536").end(xlup).row+1).value=sheets("feuil2").rows(v.row).value
Merci c 'est super !
Je comprends pas tout mais ça marche très bien.
Sans abuser , est t 'il possible de récupérer les informations de manières sélective ?
C 'est a dire certaines valeurs de la ligne et pas toute la ligne ?
Par exemple je compare deux tableaux avec une référence commune, mais je ne veux récupérer que certaines informations de la ligne et donc des colonnes très précises.
Merci parce que ça me permet d 'apprendre sur des cas concret .![]()
![]()
![]()
Je vais essayer d'éclater le code et de le commentertu as la cellule de la donnée recherchée, tu peux copier n'importe quelle cellule à partir de v
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim c As Range, v As Range Dim LastLig1 As Long, LastLig2 As Long LastLig2 = Sheets("feuil2").Range("A65536").End(xlUp).Row 'Dernière ligne de données de feuil2 With Sheets("feuil1") LastLig1 = .Range("A65536").End(xlUp).Row 'Dernière ligne de données de feuil1 For Each v In Sheets("feuil2").Range("A1:A" & LastLig2) 'pour chaque cellule v de la colonne A de feuil 2 Set c = .Range("A1:A" & LastLig1).Find(v, LookIn:=xlValues, lookat:=xlWhole) 'on cherche v dans colonne A de feuil1 If c Is Nothing Then 'Si v est non trouvée LastLig1 = LastLig1 + 1 .Rows(LastLig1).Value = Sheets("feuil2").Rows(v.Row).Value 'on fait la copie 'ou bien Sheets("feuil2").Range(v.Address & ":" & v.Offset(0, 5).Address).Copy .Range("A" & LastLig1) End If Next v End With Set c=nothing Set v=Nothing
par exemple dans le code ci-haut toute la ligne de v est copié
auparavant, seulement la cellule v est copiée
tu peux adapter, regarde du coté v.offset(0,n)
c'est la cellule se trouvant sur la même ligne que v est décalée de n colonnes
Partager