IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Recherche valeur dans cellule et revoi les caractères suivants


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Recherche valeur dans cellule et revoi les caractères suivants
    Bonjour,

    J'aurais besoin d'un coup de main pour le problème suivant.

    J'ai un tableau dans lequel plusieurs information sont contenue dans la même cellule (voir exemple) et voudrais en extraire les infos.

    En gris mon export.
    En vert le résultat souhaité.

    Marche à suivre:
    - Dans cellule B3, cherche le chiffre suivant le code "#U1" et revoyer le caractère (ou les deux caractères) suivant
    - Idem pour #U2 #U3 #U4
    - Idem pour B4 B5 etc.
    Nom : Exemple.jpg
Affichages : 127
Taille : 48,5 Ko

    Je n'ai pas de solution, si formule, ni VBA..

    Merci d'avance de votre aide.
    Khol

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par khol87 Voir le message
    - Dans cellule B3, cherche le chiffre suivant le code "#U1" et revoyer le caractère (ou les deux caractères) suivant
    Si c'est 1 caractère :
    En supposant que ta ligne "John" est la ligne 3, mettre en C3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT($B3;TROUVE($B3;"#U1")+4;1)
    Si tu supprimais le mot "Réponse" dans les entêtes de C2:F2, il serait possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT($B3;TROUVE($B3;C$2)+4;1)
    Ce qui permettrait de n'avoir qu'une seule formule à copier en C3:F5.

    Si ce que tu cherches à récupérer est 1 ou 2 caractères, la formule va devenir beaucoup plus compliquée.
    Il faudra tester si le caractère en position TROUVE()+5 est un CAR(10) (retour chariot) et avoir une seconde formule si ce n'est pas le cas.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    L'image ci-dessous propose une solution partant de la deuxième formule de Menhir tout en respectant la présentation donnée par khol87.
    Nom : extraction.JPG
Affichages : 106
Taille : 37,3 Ko
    En effet, on peut vérifier dans la barre de formule que le contenu de C2 est #U1 (voir barre de formule) malgré ce qui apparaît à l'écran. Ceci s'obtient en utilisant sur toute la plage C2:F2 le format personnalisé
    ;;;"Reponse "@ .
    Il suffira d'une seule formule sur toute la plage C3:F5 permettant d'extraire un ou deux caractères (l'exemple de khol87 a été modifié en B5 et C5), le problème de l'éventuel CAR(10) (retour chariot) se réglant avec la fonction EPURAGE.
    Cela donne en C3 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EPURAGE(STXT($B3;TROUVE(C$2;$B3)+4;2))
    à recopier sur toute la plage.
    Remarque : Cette formule renvoie du texte (voir l'alignement à gauche du contenu de C3) ce qui n'est peut-être pas la solution attendue si l'on souhaite utiliser les contenus extraits pour des traitements numériques et si l'on regarde l'alignement des cellules dans la vue d'écran de khol87. Il suffit d'utiliser en plus la fonction CNUM , ce qui donne en D3 par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CNUM(EPURAGE(STXT($B3;TROUVE(D$2;$B3)+4;2)))
    Cordialement
    Claude

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup Menhir et papouclo pour vos réponse!

    J'ai également une solution en VBA porposée par vgendron sur un autre forum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub LargeurColonne()
     Fin = Range("B" & Rows.Count).End(xlUp).Row 'on recupère la dernière ligne de la colonne B
    For i = 3 To Fin 'pour chaque ligne du tableau
         s = Split(Range("B" & i), vbLf) 'on met dans un tableau les couples "output/Valeur"
         For k = LBound(s) To UBound(s) 'pour chaque couple
             'output = Split(s(k), " ")(0)
             valeur = Split(s(k), " ")(1) 'la valeur
             Cells(i, k + 3) = valeur 'et on la place dans le tableau
         Next k
    Next i
    End Sub
    Les deux fonctionnent bien, comme toujours à condition d'avoir des données structurées.

    Formule :
    Cherche exactement la ligne souhaitée (en cas de données insérée entre 2 réponses), mais charge le tableau de formule.

    VBA :
    Peut facilement être intégré à mes autres fonctions macros.
    Mais plus difficile de gérer les données parasite.

    Encore une fois merci, je vais réflechir à la solution à utiliser.

    Khol87

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/02/2017, 22h35
  2. [XL-2016] Rechercher remplacer dans Word via Excel : les caractères spéciaux
    Par Milkamelia dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/05/2016, 14h54
  3. recherche valeur dans cellule excel depuis un vbs
    Par Gamack dans le forum VBScript
    Réponses: 4
    Dernier message: 07/01/2014, 17h21
  4. Réponses: 24
    Dernier message: 23/12/2011, 16h20
  5. [XL-2003] Rechercher valeur dans cellule
    Par Cocotte278 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/09/2011, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo