Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimer lignes si valeur existe dans une feuille

10 réponses
Avatar
J&B
Bonjour,

j'ai en feuille "TMP" une liste de valeurs en colonne A
j'ai en feuille "Completed" des données avec certaines en colonne qui ont la
même valeur
Je souhaiterai suprimmer la ligne entiere concernée de la feuille
"Completed"
Le nombre de lignes en TMP est Completed est variable

Merci pour votre
J&B

10 réponses

Avatar
FdeCourt
Salut,

En supposant que toute les cellules sont renseignées, il qu'il n'y a
pas de trou (a adapter en focntion du besoin) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("2")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(1, 1), .Cells(Lgnref, 1))
End With

With Sheets("1")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 1 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To Lgnref Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.
Avatar
Jacky
Bonsoir,
Je souhaiterai suprimmer la ligne entiere concernée de la feuille
"Completed"


'----------------
Sub jj()
With Sheets("Completed")
For Each c In Sheets("TMP").Range("A1:a" &
Sheets("TMP").[a65536].End(3).Row)
For i = .[a65536].End(3).Row To 1 Step -1
If c = .Cells(i, 1) Then .Rows(i).Delete
Next
Next
End With
End Sub
'----------------

--
Salutations
JJ


"J&B" a écrit dans le message de news:
48ecf3df$0$14750$
Bonjour,

j'ai en feuille "TMP" une liste de valeurs en colonne A
j'ai en feuille "Completed" des données avec certaines en colonne qui ont
la même valeur
Je souhaiterai suprimmer la ligne entiere concernée de la feuille
"Completed"
Le nombre de lignes en TMP est Completed est variable

Merci pour votre
J&B



Avatar
J&B
Merci mais ça ne marche pas
ou je me suis mal exprimé
exemple
en feuille 1 colonne A = 1.2.3.4.5.6
En feuille 2 ColonneA = 1.3.4.6.7.8

La macro doit supprimer en feuille 2 les lignes 1.3.4.6

Parce ce que ces valeurs existent en feuille1

Merci




"FdeCourt" a écrit dans le message de news:

Salut,

En supposant que toute les cellules sont renseignées, il qu'il n'y a
pas de trou (a adapter en focntion du besoin) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("2")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(1, 1), .Cells(Lgnref, 1))
End With

With Sheets("1")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 1 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To Lgnref Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.
Avatar
FdeCourt
Bonjour,
C'est ce que la macro fait. Si besoin, modifier les feuilles de
référence et de donnée.

Cette macro récupère les information contenu dans la feuille 2 (qui
sert de référence) et les compare avec celle de la feuille 1. SI elles
sont identiques, alors la ligne dans la feuille 1 est supprimé, sinon
elle est conservée.

Cordialement,

F.
Avatar
J&B
Bonjour,

Désolé mais ça ne marche vraiement pas
ça ne supprime que la premiere ligne
Je joint un fichier exemple
Merci
J

http://www.cijoint.fr/cjlink.php?file=cj200810/cijFP42wpc.xls




"FdeCourt" a écrit dans le message de news:

Bonjour,
C'est ce que la macro fait. Si besoin, modifier les feuilles de
référence et de donnée.

Cette macro récupère les information contenu dans la feuille 2 (qui
sert de référence) et les compare avec celle de la feuille 1. SI elles
sont identiques, alors la ligne dans la feuille 1 est supprimé, sinon
elle est conservée.

Cordialement,

F.
Avatar
Jacky
Re...
La proposition faite dans ce fil ne convient pas ??
--
Salutations
JJ


"J&B" a écrit dans le message de news:
48ede75d$0$5901$
Bonjour,

Désolé mais ça ne marche vraiement pas
ça ne supprime que la premiere ligne
Je joint un fichier exemple
Merci
J

http://www.cijoint.fr/cjlink.php?file=cj200810/cijFP42wpc.xls




"FdeCourt" a écrit dans le message de news:

Bonjour,
C'est ce que la macro fait. Si besoin, modifier les feuilles de
référence et de donnée.

Cette macro récupère les information contenu dans la feuille 2 (qui
sert de référence) et les compare avec celle de la feuille 1. SI elles
sont identiques, alors la ligne dans la feuille 1 est supprimé, sinon
elle est conservée.

Cordialement,

F.





Avatar
FdeCourt
Salut,

Essayes avec cette macro (elle ne prend pas la première ligne) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("OUT")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(2, 1), .Cells(Lgnref, 1))
End With

With Sheets("IN")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 2 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To UBound(tabloRef) Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.
Avatar
J&B
Merci de prendre du temps, mais j'en suis vraiement désolé ça ne marche pas
ça ne suprime que la première valeur que l'on trouve sur la feuille IN

Je repete ce que je souhaite par un exemple

J'ai en feuille "IN" des valeurs en colonne
A1 : toto
A2 : titi
A3 : tata
A4 : tete
A5 : bobo
A6 : tyty

En Feuille "OUT"
A1 : toto
A2 : tata
A3 : tete
A4 : baba
A5 : bobo
A6 : lulu
A7 : titi

En lançant dans la macro il doit rester uniquement
en feuille "OUT" que les lignes qui contiennent

baba
lulu

Parce que les autres valeurs sont dans la feuille IN


Merci






"FdeCourt" a écrit dans le message de news:

Salut,

Essayes avec cette macro (elle ne prend pas la première ligne) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("OUT")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(2, 1), .Cells(Lgnref, 1))
End With

With Sheets("IN")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 2 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To UBound(tabloRef) Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.
Avatar
isabelle
bonjour J&B,

Sub Macro1()
Set r1 = Sheets("IN").Range("A1:A" & Range("A65536").End(xlUp).Row)
For i = Sheets("OUT").Range("A65536").End(xlUp).Row To 1 Step -1
If Not IsError(Application.Match(Sheets("OUT").Range("A" & i), r1, 0)) Then
Sheets("OUT").Rows(i).Delete Shift:=xlUp
End If
Next
End Sub


isabelle

J&B a écrit :
Merci de prendre du temps, mais j'en suis vraiement désolé ça ne marche pas
ça ne suprime que la première valeur que l'on trouve sur la feuille IN

Je repete ce que je souhaite par un exemple

J'ai en feuille "IN" des valeurs en colonne
A1 : toto
A2 : titi
A3 : tata
A4 : tete
A5 : bobo
A6 : tyty

En Feuille "OUT"
A1 : toto
A2 : tata
A3 : tete
A4 : baba
A5 : bobo
A6 : lulu
A7 : titi

En lançant dans la macro il doit rester uniquement
en feuille "OUT" que les lignes qui contiennent

baba
lulu

Parce que les autres valeurs sont dans la feuille IN


Merci






"FdeCourt" a écrit dans le message de news:

Salut,

Essayes avec cette macro (elle ne prend pas la première ligne) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("OUT")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(2, 1), .Cells(Lgnref, 1))
End With

With Sheets("IN")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 2 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To UBound(tabloRef) Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.




Avatar
J&B
Superrrrrrrrrrrrrrrrrrrrrrrrrr
Grand Merciiiiiiiiiiiiiiiiiiiiiiiiiiiii
ça Marche


"isabelle" a écrit dans le message de news:

bonjour J&B,

Sub Macro1()
Set r1 = Sheets("IN").Range("A1:A" & Range("A65536").End(xlUp).Row)
For i = Sheets("OUT").Range("A65536").End(xlUp).Row To 1 Step -1
If Not IsError(Application.Match(Sheets("OUT").Range("A" & i), r1, 0))
Then
Sheets("OUT").Rows(i).Delete Shift:=xlUp
End If
Next
End Sub


isabelle

J&B a écrit :
Merci de prendre du temps, mais j'en suis vraiement désolé ça ne marche
pas ça ne suprime que la première valeur que l'on trouve sur la feuille
IN

Je repete ce que je souhaite par un exemple

J'ai en feuille "IN" des valeurs en colonne
A1 : toto
A2 : titi
A3 : tata
A4 : tete
A5 : bobo
A6 : tyty

En Feuille "OUT"
A1 : toto
A2 : tata
A3 : tete
A4 : baba
A5 : bobo
A6 : lulu
A7 : titi

En lançant dans la macro il doit rester uniquement
en feuille "OUT" que les lignes qui contiennent

baba
lulu

Parce que les autres valeurs sont dans la feuille IN


Merci






"FdeCourt" a écrit dans le message de news:

Salut,

Essayes avec cette macro (elle ne prend pas la première ligne) :
Option Base 1
Sub SupprLgnVide()
Dim tabloRef
With Sheets("OUT")
Lgnref = .Cells(65536, 1).End(xlUp).Row
tabloRef = .Range(.Cells(2, 1), .Cells(Lgnref, 1))
End With

With Sheets("IN")
LgnData = .Cells(65536, 1).End(xlUp).Row
For x = LgnData To 2 Step -1
ValCel = .Cells(x, 1).Value
For y = 1 To UBound(tabloRef) Step 1
If ValCel = tabloRef(y, 1) Then Rows(x).EntireRow.Delete:
GoTo Suite
Next
Suite:
Next
End With

End Sub

Cordialement,

F.