Comparer une cellule à toute une colonne

kraenys

XLDnaute Junior
Bonjour à tous,

Me voici devant une question qui n'a rien à voir avec mes autres posts. J'ai beau trouver plein de semblants de réponses, aucun ne conviennent vraiment.

Voici mon problème. Je souhaite comparer ce qu'il y a dans une cellule (Cells(intLig, 22)) à une colonne entière, pour chercher si je trouve la même valeur Range("W2:W1010")

Petite difficulté, je ne peux pas comparer Cells et Range.

Voici le code en question, je vais souligner la partie me posant le problème (désolé d'avance si le code semble chaotique, je l'ai gratté rapidement en début d'après midi^^)

Sub PMID_PMRQ()
Dim intLig As Long
Dim intCol As Long
Dim derling As Long

intLig = 2
derlig = 1010
Do While intLig <> derlig

If Cells(intLig, 22) = "-" Then
Cells(intLig, 26) = "Conserver la ligne"
Else
If Cells(intLig, 22) = Range("W2:W1010") Then
If Cells(intLig, 21) = "CRED" Then
Cells(intLig, 26) = "Effacer ligne de PMRQ en relation"
Else
If Cells(intLig, 21) = "CRBY" Then
Cells(intLig, 26) = "Effacer cette ligne"
Else
Cells(intLig, 26) = "Conserver la ligne"

intLig = intLig + 1

End If
End If
End If
End If
Loop

End Sub


Merci d'avance de votre aide.

Kraenys
 

kraenys

XLDnaute Junior
Re : Comparer une cellule à toute une colonne

Bonjour Caillou, le forum.

Je joins ici mon fichier excel contenant la macro qui actuellement ne tourne pas (ou mal) La cellule Z1 explique bien le résultat attendu. Le but étant de ne pas se servir des colones X et Y qui seront par la suite effacées. Les résultats doivent être affichés dans la colone Z.

J'ai commenté mon code pour qu'il soit plus clair.

Merci d'avance à qui pourra me dire d'où vient le problème.

Bien à vous.

Kraenys
 

Pièces jointes

  • XLD.xlsm
    153.7 KB · Affichages: 24
  • XLD.xlsm
    153.7 KB · Affichages: 31
  • XLD.xlsm
    153.7 KB · Affichages: 46
Dernière édition:

kraenys

XLDnaute Junior
Re : Comparer une cellule à toute une colonne

Suite à une erreur sur le fichier joint, celui-ci dans le message précédent est désormais le bon.
Autre chose, j'ai vu que la fonction rechercheV pourrait régler le problème. J'ai donc utilisé l'enregistreur de macro et obtenu:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],R2C[-2]:R82477C[-1],2,FALSE)"
Quelqu'un peut-il m'aider à l'adapter à cette macro dejà créée:

Sub PMID_PMRQ()
Dim intLig As Long
Dim intCol As Long
Dim i As Long

intLig = 2


For i = 2 To 1010 ' compteur permettant de parcourir toutes les lignes de la colone W
If Cells(intLig, 22) = "-" Then ' intLig, 22 permet de parcourir toutes les lignes de la colone 22 (ici V)
Cells(intLig, 26) = "Conserver la ligne" ' on met "conserver la ligne" dans Z si la case V de cette ligne n'a qu'un "-"
Else
If Cells(intLig, 22) = Range("W2" & i) Then ' C'est la ligne qui cloche sans doute, je souhaite comparer la cellule aux coordonnées (intLig, 22) à toutes les lignes de la colone W. Et si un seul résultat correspond, Then:
If Cells(intLig, 21) = "CRED" Then 'Si la colone U vaut CRED alors noter dans la colone Z "effacer la ligne de PMRQ en relation"
Cells(intLig, 26) = "Effacer ligne de PMRQ en relation"
If Cells(intLig, 21) = "CRBY" Then
Cells(intLig, 26) = "Effacer cette ligne" 'Si la colone U vaut CRBY alors noter dans la colone Z "effacer cette ligne"
Else
Cells(intLig, 26) = "Conserver la ligne" 'Sinon (=Si U vaut ni CRBY, ni CRED), alors ecrire en Z "conserver la ligne"



End If
End If
End If
End If
intLig = intLig + 1 'incrémentation de 1 à chaque fois pour pouvoir faire le calcul sur toutes les lignes
Next


End Sub


Merci d'avance de votre aide.

Kraenys.
 

Discussions similaires

Réponses
1
Affichages
205
Réponses
0
Affichages
187

Statistiques des forums

Discussions
312 652
Messages
2 090 542
Membres
104 572
dernier inscrit
saumech