Recherche avec condition

djo973

XLDnaute Nouveau
Bonjour à tous :)

Voilà, je dois faire une recherche sur une colonne entière (A) et si la valeur recherchée est trouvée, je dois écrire dans la colonne (D).

Exemple:

Colonne A

10.10.148.XX
10.10.152.XX
10.10.164.XX
etc

Je voudrais faire:

Si je trouve "10.10.148" à "10.10.151" dans la colonne (A)
Alors j'écris "ok" dans les cellules correspondantes de la colonne (D)
Si je trouve "10.10.152" à "10.10.163" dans la colonne (A)
Alors j'écris "ok2" dans la colonne (D)
etc

Je pensais faire des "CASE"...
 

job75

XLDnaute Barbatruc
Re : Recherche avec condition

Bonjour djo973, salut Bruno :)

En effet ce n'est pas très très clair, mais peut-être essayer en D2 :

Code:
=SI(ET(GAUCHE(A2;9)>="10.10.148";GAUCHE(A2;9)<="10.10.151");"ok1";SI(ET(GAUCHE(A2;9)>="10.10.152";GAUCHE(A2;9)<="10.10.163");"ok2";""))
A+
 

job75

XLDnaute Barbatruc
Re : Recherche avec condition

Re,

On peut aussi essayer ceci :

Code:
=CHOISIR(EQUIV(GAUCHE(A2;9);{"";"10.10.148";"10.10.152";"10.10.164"});"";"ok1";"ok2";"")
Edit : oublié de dire qu'il faut tirer ces formules vers le bas, mais c'est évident...

A+
 
Dernière édition:

djo973

XLDnaute Nouveau
Re : Recherche avec condition

Salut Bruno, job

Voici le fichier (exemple)
J'aimerai intégrer le code dans une macro déjà existante :rolleyes:

Merci beaucoup!
 

Pièces jointes

  • Book.xlsx
    8.3 KB · Affichages: 42
  • Book.xlsx
    8.3 KB · Affichages: 51
  • Book.xlsx
    8.3 KB · Affichages: 54

djo973

XLDnaute Nouveau
Re : Recherche avec condition

Je vais essayer d'expliquer ma requête autrement:

Comme vous avez pu le voir, la colonne A contient des adresses IP.
Suivant l'adresse IP, j'aimerai écrire le nom du réseau correspondant dans la colonne D.

Ex: de 10.10.148.0 à 10.10.151.0 -> "compta"
de 10.10.152.0 à 10.10.163.0 -> "paye"

Voilà ;)
 

job75

XLDnaute Barbatruc
Re : Recherche avec condition

Re,

Si vous voulez absolument une macro, en voici une :

Code:
Sub Recherche()
Dim plage As Range
Set plage = Range("D1:D" & [A65536].End(xlUp).Row)
plage.FormulaR1C1 = "=CHOOSE(MATCH(LEFT(RC1,9),{"""",""10.10.148"",""10.10.152"",""10.10.164""}),"""",""compta"",""paye"","""")"
plage = plage.Value 'facultatif, supprime les formules
End Sub
Tout bonnement elle entre en colonne D la formule de mon post #4 :cool:

Edit : remplacé "ok1" et "ok2" par "compta" et "paye".

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche avec condition

Bonjour djo973, le forum,

Je reviens avec une "légère" simplification :

- au post #3 remplacer les GAUCHE(A2;9) par... A2

- au post #4 remplacer GAUCHE(A2;9) par T(A2)

La fonction T() pour le cas où A2 n'est pas du texte (cellule vide, valeur numérique ou logique).

La macro devient :

Code:
Sub Recherche()
Dim plage As Range
Set plage = Range("D1:D" & [A65536].End(xlUp).Row)
plage.FormulaR1C1 = "=CHOOSE(MATCH(T(RC1),{"""",""10.10.148"",""10.10.152"",""10.10.164""}),"""",""compta"",""paye"","""")"
plage = plage.Value 'facultatif, supprime les formules
End Sub
A+
 

Discussions similaires

Réponses
21
Affichages
395
Réponses
6
Affichages
448

Statistiques des forums

Discussions
312 504
Messages
2 089 086
Membres
104 023
dernier inscrit
zerarka mohamed