OVH Cloud OVH Cloud

Requête trop complexe pour moi...

8 réponses
Avatar
Christophe B.
RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B

8 réponses

Avatar
anonymousA
ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B


Avatar
Christophe B.
En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B




Avatar
MichDenis
Bonjour Christophe,

Essaie ceci :

A ) assure toi que tu as une copie de sécurité de ton fichier ...

B ) Remplace le nom des feuilles et de la colonne des cellules pour les Trigrammes dans toute la procédure !

C ) Cette procédure n'est pas sensible à la casse des caractères

'-----------------------------------
Sub Comparer()

Dim G As Variant
Dim A As Integer, B As Integer
Dim Tblo1 As Variant 'page1
Dim Tblo2 As Variant 'page2

Tblo1 = Worksheets("Feuil1").Range("B1:B5")
Tblo2 = Worksheets("Feuil2").Range("B1:B5")
On Error Resume Next
For A = LBound(Tblo2, 1) To UBound(Tblo2, 1)
For B = LBound(Tblo2, 2) To UBound(Tblo2, 2)
G = WorksheetFunction.Match(Tblo2(A, B), Tblo1, 0)
If G = "" Then
Err = 0
Tblo2(A, B) = ""
Else
G = ""
End If
Next
Next

With Worksheets("Feuil2")
.Range("B1:B5") = Tblo2
.Range("B1:B5").SpecialCells(xlCellTypeBlanks).Delete xlUp
End With

End Sub
'-----------------------------------


Salutations!


"Christophe B." a écrit dans le message de news:

RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B
Avatar
anonymousA
bon pour être certain qu'on est bien d'accord sur la loi booleenne à mettre
en oeuvre, l'exemple suivant suit une loi OU entre les variables Trigramme et
opérateur

Sub rrr()

With ActiveWorkbook.Sheets(1)
Set rngA = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngA1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With

With ActiveWorkbook.Sheets(2)
Set rngB = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngB1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With


For I = Application.WorksheetFunction.Max(rngB.Rows.Count,
rngB1.Rows.Count) To 1 Step -1

With ActiveWorkbook.Sheets(2)
tampon = 1: tampon1 = 1
On Error Resume Next
Myvar = Application.WorksheetFunction.Match(.Cells(I, 1).Value,
rngA, 0)
If Err.Number <> 0 Then
Err.Clear
tampon = 0
End If
Myvar1 = Application.WorksheetFunction.Match(.Cells(I, 2).Value,
rngA1, 0)
If Err.Number <> 0 Then
Err.Clear
tampon1 = 0
End If

If tampon1 + tampon = 0 Then .Cells(I, 1).EntireRow.Delete

End With

Next

End Sub

A+



En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B






Avatar
Christophe B.
Bonjour!!!

J'ai deux autres petites questions à ce propos... Premièrement, est-ce
que ça marche si le texte dans mes colonnes de données ne correspond pas
exactement? (admettons que je recherche DUPOND et que dans mes données en
feuille 2 j'ai Dupond ou DuPoND ou alain Dupond ou albert DUPonD, j'aimerais
ne pas effacer ces lignes...). Et deuxième question:

Dans ma feuille 1, il est possible d'avoir tous les noms d'opérateurs ET/OU
tous les trigrammes (dans ce cas, on a "ALL" en feuille 1). Dans ce cas, il
ne faudrait pas effacer de ligne correspondant au nom d'opérateur ET/OU
trigramme... Comment faire pour que ca marche toujours?

"anonymousA" wrote:

bon pour être certain qu'on est bien d'accord sur la loi booleenne à mettre
en oeuvre, l'exemple suivant suit une loi OU entre les variables Trigramme et
opérateur

Sub rrr()

With ActiveWorkbook.Sheets(1)
Set rngA = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngA1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With

With ActiveWorkbook.Sheets(2)
Set rngB = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngB1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With


For I = Application.WorksheetFunction.Max(rngB.Rows.Count,
rngB1.Rows.Count) To 1 Step -1

With ActiveWorkbook.Sheets(2)
tampon = 1: tampon1 = 1
On Error Resume Next
Myvar = Application.WorksheetFunction.Match(.Cells(I, 1).Value,
rngA, 0)
If Err.Number <> 0 Then
Err.Clear
tampon = 0
End If
Myvar1 = Application.WorksheetFunction.Match(.Cells(I, 2).Value,
rngA1, 0)
If Err.Number <> 0 Then
Err.Clear
tampon1 = 0
End If

If tampon1 + tampon = 0 Then .Cells(I, 1).EntireRow.Delete

End With

Next

End Sub

A+



En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B








Avatar
anonymousA
re,

franchement , je ne comprends pas ce que tu veux.

Dans l'exemple que je t'ai transmis, on fait la comparaison cellule par
cellule des valeurs de la feuille 2 par rapport aux valeurs contenues dans la
feuille1 . En conséquence, si il existe un Albert Dupond en feuille 2 et
qu'en feuille1 le seul DuPonD qui existe n'a pas de prénom Albert , le
programme ne le trouvera pas. si par contre en feuille2 il y a DuPonD et
qu'en feuille 1 il y a Albert Dupond et qu'on aménage la formule pour écrire

tampontext= "*" & .cells(I,1).value & "*"
Myvar = Application.WorksheetFunction.Match(tampontext, rngA, 0)

là, le programme détectera qu'il existe une correspondance. Est-ce que tu
saisis la nuance?.

Dans le 1er cas décrit, le programme pas plus qu'Excel d'ailleurs ne peut
détecter une correpondance entre une chaine textuelle 1 plus grande que la
chaine textuelle 2 alors que dans le 2eme cas, il s'agit de retouver une
chaine textuelle 1 comprise dans une chaine textuelle 2 ce que bien sur il
sait faire.

Qaunt à ta 2eme question, là je reconnais que je ne comprends pas ce que tu
demandes. Essaye de donner plus de détails.

A+


Bonjour!!!

J'ai deux autres petites questions à ce propos... Premièrement, est-ce
que ça marche si le texte dans mes colonnes de données ne correspond pas
exactement? (admettons que je recherche DUPOND et que dans mes données en
feuille 2 j'ai Dupond ou DuPoND ou alain Dupond ou albert DUPonD, j'aimerais
ne pas effacer ces lignes...). Et deuxième question:

Dans ma feuille 1, il est possible d'avoir tous les noms d'opérateurs ET/OU
tous les trigrammes (dans ce cas, on a "ALL" en feuille 1). Dans ce cas, il
ne faudrait pas effacer de ligne correspondant au nom d'opérateur ET/OU
trigramme... Comment faire pour que ca marche toujours?

"anonymousA" wrote:

bon pour être certain qu'on est bien d'accord sur la loi booleenne à mettre
en oeuvre, l'exemple suivant suit une loi OU entre les variables Trigramme et
opérateur

Sub rrr()

With ActiveWorkbook.Sheets(1)
Set rngA = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngA1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With

With ActiveWorkbook.Sheets(2)
Set rngB = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngB1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With


For I = Application.WorksheetFunction.Max(rngB.Rows.Count,
rngB1.Rows.Count) To 1 Step -1

With ActiveWorkbook.Sheets(2)
tampon = 1: tampon1 = 1
On Error Resume Next
Myvar = Application.WorksheetFunction.Match(.Cells(I, 1).Value,
rngA, 0)
If Err.Number <> 0 Then
Err.Clear
tampon = 0
End If
Myvar1 = Application.WorksheetFunction.Match(.Cells(I, 2).Value,
rngA1, 0)
If Err.Number <> 0 Then
Err.Clear
tampon1 = 0
End If

If tampon1 + tampon = 0 Then .Cells(I, 1).EntireRow.Delete

End With

Next

End Sub

A+



En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B










Avatar
Christophe B.
C'est vrai que moi-même je me suis embrouillé les pédales... Mais bon, ce
n'est pas mon souci majeur... En fait, mon big pb est qu'en feuille 2 on ait
des noms différents de la feuille 1 dans le sens où les noms de la feuille 2
contiendront toujours au moins les noms de la feuille 1.

ex:

Feuille1 Feuille 2

Robert alain robert
Untel mère michel
Tartanpion bidule tartanpion
machin untel
bidule tartanpion
mère michel
enzo ferrari

Donc là, ce que j'aimerais supprimer de la feuille 2 sont les occurrences
mère michel, mère michel et enzo ferrari.

Et d'après ce que vous me dites ce n'est pas possible...

Christophe.B

"anonymousA" wrote:

re,

franchement , je ne comprends pas ce que tu veux.

Dans l'exemple que je t'ai transmis, on fait la comparaison cellule par
cellule des valeurs de la feuille 2 par rapport aux valeurs contenues dans la
feuille1 . En conséquence, si il existe un Albert Dupond en feuille 2 et
qu'en feuille1 le seul DuPonD qui existe n'a pas de prénom Albert , le
programme ne le trouvera pas. si par contre en feuille2 il y a DuPonD et
qu'en feuille 1 il y a Albert Dupond et qu'on aménage la formule pour écrire

tampontext= "*" & .cells(I,1).value & "*"
Myvar = Application.WorksheetFunction.Match(tampontext, rngA, 0)

là, le programme détectera qu'il existe une correspondance. Est-ce que tu
saisis la nuance?.

Dans le 1er cas décrit, le programme pas plus qu'Excel d'ailleurs ne peut
détecter une correpondance entre une chaine textuelle 1 plus grande que la
chaine textuelle 2 alors que dans le 2eme cas, il s'agit de retouver une
chaine textuelle 1 comprise dans une chaine textuelle 2 ce que bien sur il
sait faire.

Qaunt à ta 2eme question, là je reconnais que je ne comprends pas ce que tu
demandes. Essaye de donner plus de détails.

A+


Bonjour!!!

J'ai deux autres petites questions à ce propos... Premièrement, est-ce
que ça marche si le texte dans mes colonnes de données ne correspond pas
exactement? (admettons que je recherche DUPOND et que dans mes données en
feuille 2 j'ai Dupond ou DuPoND ou alain Dupond ou albert DUPonD, j'aimerais
ne pas effacer ces lignes...). Et deuxième question:

Dans ma feuille 1, il est possible d'avoir tous les noms d'opérateurs ET/OU
tous les trigrammes (dans ce cas, on a "ALL" en feuille 1). Dans ce cas, il
ne faudrait pas effacer de ligne correspondant au nom d'opérateur ET/OU
trigramme... Comment faire pour que ca marche toujours?

"anonymousA" wrote:

bon pour être certain qu'on est bien d'accord sur la loi booleenne à mettre
en oeuvre, l'exemple suivant suit une loi OU entre les variables Trigramme et
opérateur

Sub rrr()

With ActiveWorkbook.Sheets(1)
Set rngA = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngA1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With

With ActiveWorkbook.Sheets(2)
Set rngB = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngB1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With


For I = Application.WorksheetFunction.Max(rngB.Rows.Count,
rngB1.Rows.Count) To 1 Step -1

With ActiveWorkbook.Sheets(2)
tampon = 1: tampon1 = 1
On Error Resume Next
Myvar = Application.WorksheetFunction.Match(.Cells(I, 1).Value,
rngA, 0)
If Err.Number <> 0 Then
Err.Clear
tampon = 0
End If
Myvar1 = Application.WorksheetFunction.Match(.Cells(I, 2).Value,
rngA1, 0)
If Err.Number <> 0 Then
Err.Clear
tampon1 = 0
End If

If tampon1 + tampon = 0 Then .Cells(I, 1).EntireRow.Delete

End With

Next

End Sub

A+



En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B












Avatar
anonymousA
de la facon dont tu présentes désormais les choses , c'est déjà plus simple.
l'idée, c'est qu'on va faire une 1ere série de tests non plus en parcourant
les cellules de la feuille 2 et en les comparant à celle de la feulle 1
mais l'inverse de la manière suivante:
Le principe est le suivant: on parcourt l'ensemble des cellules de la Feuil1
(ici la plage utilisée en colonne A) et on cherche par la méthode Rechercher
(find) les occurences possibles dans la Feuil2 (dans la plage utilisée en
colonne A) qui correspondent à chacune des cellules de la colonne A de la
Feuil1. cette méthode (sans les paramètres LookAt, MatchCase, MatchByte)
supporte la recherche sur une partie de la chaine textuelle et est insensible
à la casse.
On nourrit un tableau redimensionné dynamiquement des adresses de cellules
de la feuille 2 où la recherche a été fructueuse.
Puis à la fin, on compare l'intégralité des adresses de cellule de la
colonne A de la Feuil2 avec les valeurs du tableau. Quand il y a
correspondance, on laisse la ligne et si non , on élimine la ligne.

Cette proc peut être aménagée à tes besoins exacts.

Dim tabl()

With Worksheets("Feuil1")
Set rngA = .Range(.Cells(1, 1), .Cells(.Cells(65536, 1).End(xlUp).Row, 1))
End With

fintab = 0

For Each rng In rngA

With Worksheets("Feuil2").Range("A1:A65536") 'recherche dans colonne
A.Pour ensemeble feuille remplacer par cells
Set c = .Find(What:=rng.Value) 'Attention, si on écrit p.e what`,
il recherchera toutes les cellules comportant 60, c.a.d p.e aussi bien 60 que
360
'si on veut limiter à 60
seulement en écrivant what` quand même, il faudra écrire xlwhole
If Not c Is Nothing Then
fintab = fintab + 1
ReDim Preserve tabl(1 To fintab)
firstaddress = c.Address
tabl(fintab) = c.Address
Set c = .FindNext(c)
While Not c Is Nothing And c.Address <> firstaddress
fintab = fintab + 1
ReDim Preserve tabl(1 To fintab)
tabl(fintab) = c.Address
Set c = .FindNext(c)
Wend
End If

End With

Next

On Error Resume Next
For I = Worksheets("Feuille2").Range("A65536").End(xlUp).Row To 1 Step -1
trouve = Application.WorksheetFunction.HLookup(Cells(I, 1).Address,
tabl, 1, False)
If Err.Number <> 0 Then
Err.Clear
Worksheets("Feuil2").Cells(I, 1).EntireRow.Delete
End If
Next



C'est vrai que moi-même je me suis embrouillé les pédales... Mais bon, ce
n'est pas mon souci majeur... En fait, mon big pb est qu'en feuille 2 on ait
des noms différents de la feuille 1 dans le sens où les noms de la feuille 2
contiendront toujours au moins les noms de la feuille 1.

ex:

Feuille1 Feuille 2

Robert alain robert
Untel mère michel
Tartanpion bidule tartanpion
machin untel
bidule tartanpion
mère michel
enzo ferrari

Donc là, ce que j'aimerais supprimer de la feuille 2 sont les occurrences
mère michel, mère michel et enzo ferrari.

Et d'après ce que vous me dites ce n'est pas possible...

Christophe.B

"anonymousA" wrote:

re,

franchement , je ne comprends pas ce que tu veux.

Dans l'exemple que je t'ai transmis, on fait la comparaison cellule par
cellule des valeurs de la feuille 2 par rapport aux valeurs contenues dans la
feuille1 . En conséquence, si il existe un Albert Dupond en feuille 2 et
qu'en feuille1 le seul DuPonD qui existe n'a pas de prénom Albert , le
programme ne le trouvera pas. si par contre en feuille2 il y a DuPonD et
qu'en feuille 1 il y a Albert Dupond et qu'on aménage la formule pour écrire

tampontext= "*" & .cells(I,1).value & "*"
Myvar = Application.WorksheetFunction.Match(tampontext, rngA, 0)

là, le programme détectera qu'il existe une correspondance. Est-ce que tu
saisis la nuance?.

Dans le 1er cas décrit, le programme pas plus qu'Excel d'ailleurs ne peut
détecter une correpondance entre une chaine textuelle 1 plus grande que la
chaine textuelle 2 alors que dans le 2eme cas, il s'agit de retouver une
chaine textuelle 1 comprise dans une chaine textuelle 2 ce que bien sur il
sait faire.

Qaunt à ta 2eme question, là je reconnais que je ne comprends pas ce que tu
demandes. Essaye de donner plus de détails.

A+


Bonjour!!!

J'ai deux autres petites questions à ce propos... Premièrement, est-ce
que ça marche si le texte dans mes colonnes de données ne correspond pas
exactement? (admettons que je recherche DUPOND et que dans mes données en
feuille 2 j'ai Dupond ou DuPoND ou alain Dupond ou albert DUPonD, j'aimerais
ne pas effacer ces lignes...). Et deuxième question:

Dans ma feuille 1, il est possible d'avoir tous les noms d'opérateurs ET/OU
tous les trigrammes (dans ce cas, on a "ALL" en feuille 1). Dans ce cas, il
ne faudrait pas effacer de ligne correspondant au nom d'opérateur ET/OU
trigramme... Comment faire pour que ca marche toujours?

"anonymousA" wrote:

bon pour être certain qu'on est bien d'accord sur la loi booleenne à mettre
en oeuvre, l'exemple suivant suit une loi OU entre les variables Trigramme et
opérateur

Sub rrr()

With ActiveWorkbook.Sheets(1)
Set rngA = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngA1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With

With ActiveWorkbook.Sheets(2)
Set rngB = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngB1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
End With


For I = Application.WorksheetFunction.Max(rngB.Rows.Count,
rngB1.Rows.Count) To 1 Step -1

With ActiveWorkbook.Sheets(2)
tampon = 1: tampon1 = 1
On Error Resume Next
Myvar = Application.WorksheetFunction.Match(.Cells(I, 1).Value,
rngA, 0)
If Err.Number <> 0 Then
Err.Clear
tampon = 0
End If
Myvar1 = Application.WorksheetFunction.Match(.Cells(I, 2).Value,
rngA1, 0)
If Err.Number <> 0 Then
Err.Clear
tampon1 = 0
End If

If tampon1 + tampon = 0 Then .Cells(I, 1).EntireRow.Delete

End With

Next

End Sub

A+



En fait, c'est en simultané... J'aimerai garder les lignes comprenant les
noms OU les trigrammes OU les deux bien sur

"anonymousA" wrote:

ta question est-elle: faire un 1er balayage avec recherche de non
correspondance des noms puis 2eme balayage avec recherche de non
correspondance des trigrammes ou un mix des 2, mais du coup selon quelle loi
logigue ?
Des méthodes existent evidemment en VBA pour réaliser ce travail de
scrutation des onon correspondances qui est des + classiques.
A+


RERERERERERERERERe!

Voila maintenant ce que je voudrais faire:

J'ai dans une feuille1:
une colonne avec des noms d'opérateurs
une autre avec des trigrammes (ex DFI, AFR...)

J'ai une autre feuille (2) avec plein de données et admettons en colonne A
des noms d'opérateurs et en colonne B des trigrammes.

Comment faire pour supprimer les lignes de cette deuxième feuille dont le
nom opérateur ou le trigramme est différent de tous ceux des colonnes de la
première feuille?

Merci,

Christophe.B