Effacer des lignes à partir d'un tableau de référence

elokapo

XLDnaute Junior
Bonjour,

J'aimerai savoir si je suis sur le bon chemin ou si c'est carrément trop compliqué ce dans quoi je me lance : (je vous envoie le début de ma macro au plus vite)

En fait je voudrai à partir du tableau 1 de référence, effacer toutes les lignes du tableau 2 (sheet2) qui ne sont pas dans le tableau 1.

Pour cela, je me suis lancé sur des lclsits, 2 en fait, un pour chaque tableau. Ensuite de lui faire un rows(counter).delete !... Mais vous verrez par vous meme quand vous aurez la macro, qu'elle est bien compliqué ! Alors si vous avez une astuce à me donner, je suis preneur.

Merci par avance pour toutes vos bonnes idées !
Elokapo
 

Pièces jointes

  • effaceleslignes.xls
    13.5 KB · Affichages: 52
  • effaceleslignes.xls
    13.5 KB · Affichages: 50
  • effaceleslignes.xls
    13.5 KB · Affichages: 55

ninbihan

XLDnaute Impliqué
Re : Effacer des lignes à partir d'un tableau de référence

Bonsoir le forum et Elokapo,


Voici un petit essai,

A tester,

Bonne nuit
 

Pièces jointes

  • effaceleslignes.xls
    22 KB · Affichages: 73
  • effaceleslignes.xls
    22 KB · Affichages: 64
  • effaceleslignes.xls
    22 KB · Affichages: 69

Gorfael

XLDnaute Barbatruc
Re : Effacer des lignes à partir d'un tableau de référence

elokapo à dit:
Bonjour,

J'aimerai savoir si je suis sur le bon chemin ou si c'est carrément trop compliqué ce dans quoi je me lance : (je vous envoie le début de ma macro au plus vite)

En fait je voudrai à partir du tableau 1 de référence, effacer toutes les lignes du tableau 2 (sheet2) qui ne sont pas dans le tableau 1.

Pour cela, je me suis lancé sur des lclsits, 2 en fait, un pour chaque tableau. Ensuite de lui faire un rows(counter).delete !... Mais vous verrez par vous meme quand vous aurez la macro, qu'elle est bien compliqué ! Alors si vous avez une astuce à me donner, je suis preneur.

Merci par avance pour toutes vos bonnes idées !
Elokapo
Salut
lclsits :confused: Désolé, je ne parle pas le vénusien
vous verrez par vous meme quand vous aurez la macro Quand on l'aura, on pourra voir :)

Sub test()
dim Cel as range
dim Lig as long
dim F_1 as Worksheet
dim F_2 as Worksheet
dim Flg_Supp as boolean

set F_1 = sheets("Sheet1")
set F_2 = sheets("Sheet2")

for lig= f_2.[A65536].end(xlup).row to 3 step -1
flg_supp=true
for each cel in f_1.range(f_1.[A3],f1.[A65536].end(xlup))
if cel =f_2.range("A" & lig) then
flg_supp=false
exit for
end if
next cel
next lig
if flg_supp then f_2.rows(lig).delete
end sub

Pour chaque ligne de tableau 2 en partant de la dernière et en remontant
drapeau = Vrai
pour chaque cellule de la colonne A de tableau 1
si cellule A tableau 2 en cours = cellule A tableau 1
drapeau = Faux
sortie boucle

si drapeau=Vrai supprimer ligne testée tableau 2

Fait à la main sur le forum, donc pas testée, mais normalement elle doit fonctionner
A+
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Effacer des lignes à partir d'un tableau de référence

Bonjour



Moi aussi, j'ai été intrigué par ce terme :lclsits

Peut-etre :

lclsist= listes
lclsits= CLSID (Mais qu'est ce que cela aurait a voir avec la question)
lclsits= lclsits = le nom d'une combobox
lcsits= une plage nommée dans la feuille
 

elokapo

XLDnaute Junior
Re : Effacer des lignes à partir d'un tableau de référence

Staple1600 à dit:
Bonjour



Moi aussi, j'ai été intrigué par ce terme :lclsits

Peut-etre :

lclsist= listes
lclsits= CLSID (Mais qu'est ce que cela aurait a voir avec la question)
lclsits= lclsits = le nom d'une combobox
lcsits= une plage nommée dans la feuille

Bonsoir tout le monde !!!

Alors je voulais dire lclist : Set lclist = Range("a1").CurrentRegion......!! ;) désolé mais j'ai surement dérapé ! Sinon merci pour vos solutions, la première de ninbihan fonctionne plutot pas mal. Mais il y a quand meme quelques hic : lorsqu'il y a un zéro en colonne A, la ligne ne s'efface pas... Ensuite j'aurai aimé qu'il n'y ait pas de blanc entre chaques données.

Or là, si on a Jean en ligne 4 et rien de la ligne 5 à 9, puis Louis en ligne 10, il y aura des lignes vides ... pas bien !!! ;) Je ne connais encore pas assez de fonctions pour bosser la dessus : je voulais lui dire que si la cellule était vide, alors il efface, mais je n'y arrive pas... J'y travaille en attendant votre solution :)

Gorfael, je teste ton idée, et je vois si je peux l'adapter !

Merci 1000 fois !

A plus !

Elokapo
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22