Bonjour,
Je pense que ce doit être un basique, mais je n 'ai pas la solution.:cry:
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 :D
Version imprimable
Bonjour,
Je pense que ce doit être un basique, mais je n 'ai pas la solution.:cry:
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 :D
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:
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:D
Code: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 . :D :D :ccool:
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 vCode:
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
Cela répond en partie à mon problème.
Ce que je veux faire c 'est sélectionner plusieurs cellules sur la même ligne que V dans la feuille2 mais non contigue et les copier dans la feuille1
Par exemple:
feUILLE2
champ : Code, XXX,code postal, VILLE , yyyyy, zzzz ......
Je veux copier dans la feuille 1
que des champs précis:
Le code
Le code postal
La ville
et d 'autre cellules à sélectionner;
Au départ je voulais faire une ligne de code par celulle .... mais je suis pas assez balèse sur le sujet.
Voila j 'espère que c 'est plus clair pour toi.
:D
Je ne vois pas le problème! du moment que tu as tous les ingrédients
Code:
1
2
3
4
5 '... .range("A" & lastlig1).value=v.value .range("C" & lastlig1).value=v.offset(0,5).value .range("D" & lastlig1).value=v.offset(0,22).value '...etc
Ça marche Nickel Merci beaucoup.
:ccool: