Comparer deux colonnes avec N° commençant par

MsVixene

XLDnaute Nouveau
Bonjour,

j'ai un code qui ne fonctionne pas et je ne sais pas quoi faire car ce n'est pas moi qui l'ai fait et je n'arrive pas à le lire en plus :p L'exécution est plutot longue.

J'aimerais comparer deux colonnes de deux onglets de ma feuille.

Si la colonne 10 d'EXTRACTION = colonne 1 de A ENLEVER
Alors mettre OUI
Sinon NON

Sachant que la composition de ma colonne 1 de A ENLEVER est par exemple :

9AUTO
9MONT
BAT GARAG1
BAT GARAG2
BAT%------------------------->tout les N° commençant par BAT
12605
15896

Code:
Sub Comparaison1()
Set sheet1 = ThisWorkbook.Sheets("EXTRACTION")
Set sheet2 = ThisWorkbook.Sheets("A ENLEVER")
Ecol_no = 2
Erow_no = 2
Do While Not IsEmpty(sheet1.Cells(Erow_no, Ecol_no).Value)
   Acol_no = 1
   Arow_no = 1
   flag_found = "N"
   Do While Not IsEmpty(sheet2.Cells(Arow_no, Acol_no).Value)
      If (sheet1.Cells(Arow_no, 2).Value = sheet2.Cells(Erow_no, 1).Value) Then
         flag_found = "Y"
         Exit Do
      End If
      Arow_no = Arow_no + 1
   Loop
   If (flag_found = "N") Then
      Worksheets("EXTRACTION").Cells(Erow_no, 10).Value = "Oui"
      Else: Worksheets("EXTRACTION").Cells(Erow_no, 10).Value = "Non"
   End If
   Erow_no = Erow_no + 1
Loop
End Sub

Donc cette maccro me met des OUI sur toutes les lignes sauf 2. (pour lesquelles les conditions ne sont pas respectées).

J'étais partie sur ceci que je comprenais mais j'ai des bloquants aussi :

Code:
Sub ComparerN°Inv2()
Dim I As Single
Dim J As Single
For I = 1 To Worksheets("EXTRACTION" ).Range("B2" ).End(xlDown).Row
For J = 1 To Worksheets("A ENLEVER" ).Range("A1" ).End(xlDown).Row
If I.Value = J.Value Then
Worksheets("EXTRACTION" ).Cells(I, 10).Value = "Oui"
Else: Worksheets("EXTRACTION" ).Cells(I, 10).Value = "Non"
End If
Next I
End Sub

Merci
 

CHALET53

XLDnaute Barbatruc
Re : Comparer deux colonnes avec N° commençant par

Bonjour,

Sans fichier, pas très facile de t'aider
toutefois dans ton dernier code, il me semble qu'il te manque Next J avant le Next I
Ensuite tu compares la valeur I à la valeur J
Il faut sans doute comparer la valeur contenue sur la ligne et la colonne 2 (peut-être) : Sheets("xxxx").cells(I,2) à
la valeur contenue dans l'autre feuille sur la ligne J : sheet("yyyy").cells(J,1)

a+
 
Dernière édition:

MsVixene

XLDnaute Nouveau
Re : Comparer deux colonnes avec N° commençant par

Voici le fichier avec le strict minimum dessus :D

Les deux codes que jai mis sont les modules 3 et 9 =) Merci

EDIT: J'ai essayé de mettre ce que tu m'as dit, mais il doit y avoir encore qqchose à voir.
 

titiborregan5

XLDnaute Accro
Re : Comparer deux colonnes avec N° commençant par

Bonjour le fil, le forum,

la question que je me pose c'est
Si la colonne 10 d'EXTRACTION = colonne 1 de A ENLEVER
Alors mettre OUI
Sinon NON
on met OUI ou NON où ça???

Parce que chez moi, dans la feuille Extraction la colonne 10 n'a que des oui ou des non et la colonne 1 de A Enlever correspond plutôt à la colonne 2 de la feuille Extraction.

Ya qqch ou c'est moi qui n'ai rien compris???

Tibo
 

MsVixene

XLDnaute Nouveau
Re : Comparer deux colonnes avec N° commençant par

:D On met Oui ou Non en colonne 10 (Comme il a déjà été testé) en fonction de la comparaison de la colonne 1 de A ENLEVER avec la colonne 2 de EXTRACTION.

Je me suis trompée quelque part pour que tu me dises ceci ?

merki
 

CHALET53

XLDnaute Barbatruc
Re : Comparer deux colonnes avec N° commençant par

Essaie ce code : (je commence par mettre non sur toute la colonne)

Sub ComparerN°Inv2()
Dim I As Single
Dim J As Single
ligextract = Sheets("EXTRACTION").Range("B2").End(xlDown).Row
Sheets("EXTRACTION").Range("J2:J" & ligextract) = "Non"

ligenlev = Sheets("A ENLEVER").Range("A1").End(xlDown).Row
For I = 2 To ligextract 'Sheets("EXTRACTION").Range("B2").End(xlDown).Row
For J = 1 To ligenlev 'Sheets("A ENLEVER").Range("A1").End(xlDown).Row
If Sheets("EXTRACTION").Cells(I, 2) = Sheets("A ENLEVER").Cells(J, 1) Then
Worksheets("EXTRACTION").Cells(I, 10).Value = "Oui"
J = ligenlev

'Else: Worksheets("EXTRACTION").Cells(I, 10).Value = "Non"
End If
Next J
Next I
End Sub
 

titiborregan5

XLDnaute Accro
Re : Comparer deux colonnes avec N° commençant par

:D On met Oui ou Non en colonne 10 (Comme il a déjà été testé) en fonction de la comparaison de la colonne 1 de A ENLEVER avec la colonne 2 de EXTRACTION.

Je me suis trompée quelque part pour que tu me dises ceci ?

merki

c'est ton si qui est mal formulé dans ton 1er message alors!
C'est si colonne 2 extraction = colonne 1 à enlever alors en colonne 10 oui ou non selon le cas...

J'ai compris l'inverse dans ta phrase
Si la colonne 10 d'EXTRACTION = colonne 1 de A ENLEVER
Alors mettre OUI
Sinon NON
 

MsVixene

XLDnaute Nouveau
Re : Comparer deux colonnes avec N° commençant par

Ah je n'avais pas vu ton post #6 !! J'ai mis le fichier en #3 au cas où.

Donc j'ai 3 oui et le reste est des non.

En fait, dans l'extraction je n'ai mis que des exemples avec un résultat en colonne 10 qui doit être NON (car ne doit pas être inventorié).
Donc normalement on devrait avoir que des non :S
 

pierrejean

XLDnaute Barbatruc
Re : Comparer deux colonnes avec N° commençant par

Bonjour à tous

A tester

Edit: A priori j'obtiens le même résultat que Chalet !!!!!
 

Pièces jointes

  • Test 2 XLDL.xlsm
    59.7 KB · Affichages: 42
  • Test 2 XLDL.xlsm
    59.7 KB · Affichages: 44
  • Test 2 XLDL.xlsm
    59.7 KB · Affichages: 49
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Comparer deux colonnes avec N° commençant par

Re

Les 3 en question sont dans la colonne 1 de A enlever et dans la colonne B de EXTRACTION
Si ce n'est pas ce que l'on doit avoir alors il convient de mieux exposer ton problème !!!!
 

MsVixene

XLDnaute Nouveau
Re : Comparer deux colonnes avec N° commençant par

S'ils sont dans les deux colonnes, on doit avoir NON car ils ne sont pas à inventorier. A ENLEVER signifie que je ne les veux pas dans la liste des N° à inventorier.
Tout ceux qui sont dans la colonne B de EXTRACTION sont dans l'onglet A ENLEVER de toute façon...C'était pour voir s'ils fonctionnaient tous. Donc on doit avoir NON partout...

Je ne comprends pas où est-ce que je m'exprime mal :(
 

Discussions similaires

Réponses
6
Affichages
227

Statistiques des forums

Discussions
312 075
Messages
2 085 078
Membres
102 772
dernier inscrit
bluetesteur