Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Imbrication de fonction dans un =SI et recherche et affichage de mots précis.

Dimifox

XLDnaute Nouveau
Bien le bonjour!

Je me permets d’écrire ici car je bloque complètement sur un problème.
J’ai dans un fichier une plage de donnée de plus de 200ligne avec des cellules contenant des phrases plutôt énormes.
Ce que je cherche à faire c’est rechercher si un mot est présent dans cette plage, et si ce mot et présents, afficher un certain endroit de la plage de donnée.
J’ai déjà réussie à trouver comment faire pour trouver si le mot était présent mais ça fait plus de 2 jour que je bloque complétement sur comment afficher ce que je veux.
Voici la formule que j’ai pour le moment qui permet d’afficher si le mot est là ou pas :
=SI(NB.SI(Feuille1!A$1:Feuille1!AE$240; A3)>0;"présent";"Nop")

Je sais qu’il est possible d’imbriquer une fonction dans celle-ci pour que a la place de « présent » elle affiche autre chose, mais mon le souci c’est que je n’arrive pas à voir quel formule je peux utiliser pour ca
Voici à quoi ressemble les données dans lequel je cherche.



(Oui, Oui, ceci est le contenu d'une seule cellule sur les 200+ présente )
Pour des raisons de confidentialité j’ai dû cacher le nom des machine et l’adresse des hosts, mais dans l’idée je dois récupérer à chaque fois le nom qui est entre [ ] et qui se trouve après « Host(Hyper-V) », et je n’ai aucune idée de comment je peux faire , sachant que a chaque cellule la taille de la "phrase" change.

Merci d’avance pour votre aide ! et s’il y a besoin d’info complémentaire je les fournirai avec grand plaisirs !
 

djidji59430

XLDnaute Barbatruc
Re
dans la premiere ligne :
Avec la fonction cherche, je trouve la place du premier [ . Pareil pour le premier ]
avec stxt, j'extrais les caractères entre ces deux bornes
Mais la fonction cherche a 2 paramètres, le second étant la place du caractère a partir duquel se fais la recherche
dans la deuxième ligne, je fais la même chose, mais je commence a partir de la position du ] +1
Donc au fur et a mesure que tu descends, tu extrais ligne par ligne les contenus des [ ] successifs.

Cdlmnt
 

Dimifox

XLDnaute Nouveau
Salut,

Je pense que j'ai mal expliquer le problème, j'ai une liste de valeur en colonne A qui correspond au nom de mes machine , et la liste avec les valeur comme montré dans le screen en colonne G , et je dois du coup rechercher la valeur A1 pui A2 puis A3 ect.. dans G et afficher ce qui se trouve après « Host(Hyper-V) » de la cellule ou il a trouver le mot .
 

Dimifox

XLDnaute Nouveau
Salut!

J'ai trouver une solution en vba qui marche bien
(enfin on m'a aider a trouver )

Function cherchehost(r, s)
'recherche s dans la plage r et retourne le nom du host(Hyper-V) dans la ligne trouvée
Set re = r.Find(s, lookat:=xlPart)
If Not re Is Nothing Then
st = re.Value
p1 = InStr(st, "(Hyper-V) [")
If p1 <> 0 Then
p2 = InStr(p1, re.Value, "]")
cherchehost = Mid(re.Value, p1 + 11, p2 - p1 - 11): Exit Function
End If
End If
cherchehost = "non trouvé"
End Function

du coup mon problème est résolu

Merci de ton aide !

je te souhaite une excellente journée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…