j'ai dans la feuille 1 une base de données avec des Noms; des prénoms;
des adresses; etc etc.....
dans la feuille 2 j'ai des Noms et des prénoms
je dois retirer de la base de données les lignes ayant le Nom et le
prénom de la feuille 2 sachant qu'il est possible que dans la feuille de
données il y ait plusieurs fois
le nom et le prénom de la feuille 2
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '-------------- -- Salutations JJ
"RGI" a écrit dans le message de news:
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms
et des prénoms
Ceci devrait faire:
'-----------
Sub jj()
For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row)
For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1
If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then
Rows(i).Delete
End If
Next
Next
End Sub
'--------------
--
Salutations
JJ
"RGI" <nospam.gilbert@discussions.microsoft.com> a écrit dans le message de
news: uFr5XuC9GHA.2268@TK2MSFTNGP05.phx.gbl...
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des
adresses; etc etc.....
dans la feuille 2 j'ai des Noms et des prénoms
je dois retirer de la base de données les lignes ayant le Nom et le prénom
de la feuille 2 sachant qu'il est possible que dans la feuille de données
il y ait plusieurs fois
le nom et le prénom de la feuille 2
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '-------------- -- Salutations JJ
"RGI" a écrit dans le message de news:
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
lSteph
Bonjour RGI,
Une idée: ajouter un champ "verif" ex en colonne c dans la Feuil2 de réf: ¢&"-"&B2
un champ "purge" dans la base à purger =NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+ lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
-- - -
Bonjour RGI,
Une idée: ajouter
un champ "verif" ex en colonne c dans la Feuil2 de réf:
¢&"-"&B2
un champ "purge" dans la base à purger
=NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+
lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des
adresses; etc etc.....
dans la feuille 2 j'ai des Noms et des prénoms
je dois retirer de la base de données les lignes ayant le Nom et le prénom de
la feuille 2 sachant qu'il est possible que dans la feuille de données il y
ait plusieurs fois
le nom et le prénom de la feuille 2
Une idée: ajouter un champ "verif" ex en colonne c dans la Feuil2 de réf: ¢&"-"&B2
un champ "purge" dans la base à purger =NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+ lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
-- - -
RGI
Merci Jacky
sur plus de mille données il m'en reste une qui n'est pas traitée ? traitement environ 4minutes je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '--------------
Merci Jacky
sur plus de mille données il m'en reste une qui n'est pas traitée ?
traitement environ 4minutes
je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms
et des prénoms
Ceci devrait faire:
'-----------
Sub jj()
For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row)
For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1
If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then
Rows(i).Delete
End If
Next
Next
End Sub
'--------------
sur plus de mille données il m'en reste une qui n'est pas traitée ? traitement environ 4minutes je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '--------------
RGI
Merci lSteph
j'ai également fait cette méthode mais comme avec Jacky il me reste des lignes non traitées j'ai donc créé une boucle pour supprimer la totalité
Merci à vous deux
Bonjour RGI,
Une idée: ajouter un champ "verif" ex en colonne c dans la Feuil2 de réf: ¢&"-"&B2
un champ "purge" dans la base à purger =NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+ lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
Merci lSteph
j'ai également fait cette méthode mais comme avec Jacky il me reste des
lignes non traitées
j'ai donc créé une boucle pour supprimer la totalité
Merci à vous deux
Bonjour RGI,
Une idée: ajouter
un champ "verif" ex en colonne c dans la Feuil2 de réf:
¢&"-"&B2
un champ "purge" dans la base à purger
=NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+
lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des
prénoms; des adresses; etc etc.....
dans la feuille 2 j'ai des Noms et des prénoms
je dois retirer de la base de données les lignes ayant le Nom et le
prénom de la feuille 2 sachant qu'il est possible que dans la feuille
de données il y ait plusieurs fois
le nom et le prénom de la feuille 2
j'ai également fait cette méthode mais comme avec Jacky il me reste des lignes non traitées j'ai donc créé une boucle pour supprimer la totalité
Merci à vous deux
Bonjour RGI,
Une idée: ajouter un champ "verif" ex en colonne c dans la Feuil2 de réf: ¢&"-"&B2
un champ "purge" dans la base à purger =NB.SI(Feuil2!C:C;Feuil1!A2&"-"&Feuil1!B2)
puis trier sur la valeur duchamp et supprimer tout ce qui est > 0
@+ lSteph
Bonjour
j'ai dans la feuille 1 une base de données avec des Noms; des prénoms; des adresses; etc etc..... dans la feuille 2 j'ai des Noms et des prénoms je dois retirer de la base de données les lignes ayant le Nom et le prénom de la feuille 2 sachant qu'il est possible que dans la feuille de données il y ait plusieurs fois le nom et le prénom de la feuille 2
pouvez-vous m'aiguiller SVP
Merci
RGI
Jacky
Re..
il m'en reste une qui n'est pas traitée ? Majuscule peut-être ??
'--------- If UCase(c & c.Offset(0, 1)) = UCase(Cells(i, 1) & Cells(i, 2)) Then '---------- -- Salutations JJ
"RGI" a écrit dans le message de news:
Merci Jacky
sur plus de mille données il m'en reste une qui n'est pas traitée ? traitement environ 4minutes je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '--------------
Re..
il m'en reste une qui n'est pas traitée ?
Majuscule peut-être ??
'---------
If UCase(c & c.Offset(0, 1)) = UCase(Cells(i, 1) & Cells(i, 2)) Then
'----------
--
Salutations
JJ
"RGI" <nospam.gilbert@discussions.microsoft.com> a écrit dans le message de
news: eoWwI2D9GHA.4084@TK2MSFTNGP05.phx.gbl...
Merci Jacky
sur plus de mille données il m'en reste une qui n'est pas traitée ?
traitement environ 4minutes
je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des
Noms et des prénoms
Ceci devrait faire:
'-----------
Sub jj()
For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row)
For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1
If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then
Rows(i).Delete
End If
Next
Next
End Sub
'--------------
il m'en reste une qui n'est pas traitée ? Majuscule peut-être ??
'--------- If UCase(c & c.Offset(0, 1)) = UCase(Cells(i, 1) & Cells(i, 2)) Then '---------- -- Salutations JJ
"RGI" a écrit dans le message de news:
Merci Jacky
sur plus de mille données il m'en reste une qui n'est pas traitée ? traitement environ 4minutes je garde la formule
RGI
Bonjour,
j'ai dans la feuille 1 une base de données dans la feuille 2 j'ai des Noms et des prénoms
Ceci devrait faire: '----------- Sub jj() For Each c In Sheets("Feuil2").Range("a1:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 1 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Rows(i).Delete End If Next Next End Sub '--------------
lSteph
RGI a formulé :
lignes non traitées des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
@+
-- - -
RGI a formulé :
lignes non traitées
des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
lignes non traitées des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
@+
-- - -
Garette
Bonjour,
Quelques petites modifs : ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la fin pour compacter tout) Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il y en a.
Sub jj2() x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents End If Next Next Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort Key1:=Range("A1") End Sub
Bonjour,
Quelques petites modifs :
ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la
fin pour compacter tout)
Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il
y en a.
Sub jj2()
x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row)
For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1
If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then
Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents
End If
Next
Next
Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort
Key1:=Range("A1")
End Sub
Quelques petites modifs : ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la fin pour compacter tout) Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il y en a.
Sub jj2() x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents End If Next Next Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort Key1:=Range("A1") End Sub
RGI
Pour les même raisons que j'ai stipulé à Jacky au dessus le Hoeß par exemple le ß n'est pas reconnu et me provoque un oubli Merci encore
RGI a formulé :
lignes non traitées des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
@+
Pour les même raisons que j'ai stipulé à Jacky au dessus
le Hoeß par exemple le ß n'est pas reconnu et me provoque un oubli
Merci encore
RGI a formulé :
lignes non traitées
des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
Pour les même raisons que j'ai stipulé à Jacky au dessus le Hoeß par exemple le ß n'est pas reconnu et me provoque un oubli Merci encore
RGI a formulé :
lignes non traitées des Espaces, l'orthographe, la CaSse.?
sinon si tu as mis la formule jusqu'au bout....vois pas pourquoi.
@+
RGI
En ajoutant Application.ScreenUpdating = False / True je gagne aussi un peu de temps mais pas très significatif en plus toutes les lignes avec des formules se retrouvent en fin de base
Merci de l'intervention
@+++
Bonjour,
Quelques petites modifs : ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la fin pour compacter tout) Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il y en a.
Sub jj2() x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents End If Next Next Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort Key1:=Range("A1") End Sub
En ajoutant Application.ScreenUpdating = False / True
je gagne aussi un peu de temps mais pas très significatif
en plus toutes les lignes avec des formules se retrouvent en fin de base
Merci de l'intervention
@+++
Bonjour,
Quelques petites modifs :
ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la
fin pour compacter tout)
Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il
y en a.
Sub jj2()
x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row)
For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1
If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then
Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents
End If
Next
Next
Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort
Key1:=Range("A1")
End Sub
En ajoutant Application.ScreenUpdating = False / True je gagne aussi un peu de temps mais pas très significatif en plus toutes les lignes avec des formules se retrouvent en fin de base
Merci de l'intervention
@+++
Bonjour,
Quelques petites modifs : ClearContents au lieu de Delete ça devrait aller plus vite (+ un tri à la fin pour compacter tout) Un démarrage en A2 pour éviter de traiter les nom de champs de la base s'il y en a.
Sub jj2() x = Sheets("Feuil1").Range("IV1").End(xlToLeft).Column For Each c In Sheets("Feuil2").Range("a2:a" & Range("a65536").End(3).Row) For i = Sheets("Feuil1").Range("a65536").End(3).Row To 2 Step -1 If c & c.Offset(0, 1) = Cells(i, 1) & Cells(i, 2) Then Sheets("Feuil1").Range(Cells(i, 1), Cells(i, x)).ClearContents End If Next Next Range("A1", Cells(Sheets("Feuil1").Range("a65536").End(3).Row, x)).Sort Key1:=Range("A1") End Sub
Garette
En fait, la premiere version va plus vite. Le fait de supprimer les lignes avec Delete diminue la zone à traiter => accélération.
En fait, la premiere version va plus vite.
Le fait de supprimer les lignes avec Delete diminue la zone à traiter =>
accélération.