Imbrication de fonction dans un =SI et recherche et affichag

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 (ci-joint).

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 [​IMG] , 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 !

dgfhdfghdfghj

Salut Dimifox,

peut-être peux-tu utiliser un script VBA,

  • avec les fonctions InStr (pour rechercher l'emplacement du mot que tu cherches dans la longue chaîne de caractère), la fonction renvoie si le mot est bien présent, le nombre de caractère qui précède le mot avant que celui-ci commence (ex: Instr("salut","a") donne 2)
  • puis la fonction Mid pour réutiliser ce nombre pour afficher ce que tu cherches (ex: Mid("salut", 4) donne "u").

J'espère que ça t'aide.

Désolé, c'est du VBA.

Blutch

Bonjour,

une solution via une formule

=STXT(A1;TROUVE("(Hyper-V)[";A1;1)+10;TROUVE("]";A1;TROUVE("(Hyper-V)[";A1;1))-TROUVE("(Hyper-V)[";A1;1)-10)

ou en anglais

=MID(A1,FIND("(Hyper-V)[",A1,1)+10,FIND("]",A1,FIND("(Hyper-V)[",A1,1))-FIND("(Hyper-V)[",A1,1)-10)

Salut,

Déjà merci pour vos réponse rapide!

Blutch a écrit :

Salut Dimifox,

peut-être peux-tu utiliser un script VBA,

  • avec les fonctions InStr (pour rechercher l'emplacement du mot que tu cherches dans la longue chaîne de caractère), la fonction renvoie si le mot est bien présent, le nombre de caractère qui précède le mot avant que celui-ci commence (ex: Instr("salut","a") donne 2)
  • puis la fonction Mid pour réutiliser ce nombre pour afficher ce que tu cherches (ex: Mid("salut", 4) donne "u").

J'espère que ça t'aide.

Désolé, c'est du VBA.

Blutch

J'ai déjà pensé a du VBA mais je suis très mauvais en algo et en prog en général , donc j'ai absolument rien compris lorsque j'ai tenter de commencer

[quote="h2so4"]Bonjour,

une solution via une formule

CODE: TOUT SÉLECTIONNER

=STXT(A1;TROUVE("(Hyper-V)[";A1;1)+2;TROUVE("]";A1;TROUVE("(Hyper-V)[";A1;1))-TROUVE("(Hyper-V)[";A1;1)-2)

[/quote]

peut tu m'expliquer ce que fait la fonction? j'ai un peu de mal a comprendre (sorry je débute en excel ^^)

Et j'ai oublier de le préciser , mais du coup j'ai une liste de valeur en colonne A qui correspond au nom de mes machine , et la liste avec les valeur comme montré en colonne G , et je dois du coup rechercher la valeur A1, A2, A3 ect.. dans G et afficher ce qui se trouve après « Host(Hyper-V) » de la cellule ou il a trouver le mot .

Merci d'avance!

Bonjour,

sorry erreur dans la fonction , j'ai corrigé dans ma proposition voir réponse plus haut

=STXT(A1;TROUVE("(Hyper-V)[";A1;1)+10;TROUVE("]";A1;TROUVE("(Hyper-V)[";A1;1))-TROUVE("(Hyper-V)[";A1;1)-10)

prendre le texte qui se trouve entre (Hyper-V)[ et le ] qui suit

stxt(t,p,l) prendre la partie du texte de t qui se trouve au caractère p sur une longueur L

trouve(s,t,p) cherche la position du premier caractère de la chaine de caractères s dans t à partir de la position p

h2so4 a écrit :

Bonjour,

sorry erreur dans la fonction , j'ai corrigé dans ma proposition voir réponse plus haut

=STXT(A1;TROUVE("(Hyper-V)[";A1;1)+10;TROUVE("]";A1;TROUVE("(Hyper-V)[";A1;1))-TROUVE("(Hyper-V)[";A1;1)-10)

prendre le texte qui se trouve entre (Hyper-V)[ et le ] qui suit

stxt(t,p,l) prendre la partie du texte de t qui se trouve au caractère p sur une longueur L

trouve(s,t,p) cherche la position du premier caractère de la chaine de caractères s dans t à partir de la position p

Salut!

Merci pour la petite explication c'est déjà légèrement plus clair (encore un peu flou mais je pense que j'arriverai a l'adapter a ma feuille)

par contre on est d'accord que ta fonction n'effectue pas de recherche?

si j'imbrique ta fonction dans ma fonction =SI qui fait la recherche tu pense que ça peut marcher?

bonjour,

je pense que le mieux sera de passer par une macro.

mets-nous un fichier exemple.

h2so4 a écrit :

bonjour,

je pense que le mieux sera de passer par une macro.

mets-nous un fichier exemple.

Salut,

Je te met en pièce jointe un exemple

3exemple.xlsx (9.02 Ko)

Bonjour,

solution via une fonction personnalisée

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
4guillaumeg.xlsm (14.66 Ko)

Salut!

Petite question qui va te paraître surement vachement débile, mais c'est quoi une macro? et comment tu t'en sert?

EDIT: C'est bon j'ai trouver tout seul!

Merci beaucoup, tout marche nikel , tu vient de me sauver la vie

Je te souhaite une excellente journée!

Rechercher des sujets similaires à "imbrication fonction recherche affichag"