XL 2016 Recherche valeur dans cellule et revoi les caractères suivants

  • Initiateur de la discussion Initiateur de la discussion kholzob
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kholzob

XLDnaute Nouveau
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.

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

Merci d'avance de votre aide.
Khol
 

Pièces jointes

  • Exemple.jpg
    Exemple.jpg
    48.5 KB · Affichages: 34
un essai avec ce code
VB:
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
 
Oui à la suite de U4.

Je peux adapter le code :
Code:
For k = LBound(s) To UBound(s) 'pour chaque couple
en
Code:
For k = 0 To 3 'pour chaque couple
pour me limiter au 4 premières lignes.
Mais comme toujours cela dépendra de la rigeur des utilisateurs en entrant les données de la colonne B. (si une ligne est sautée le code ne l'accepte pas et si plusieurs espace sont introduit entre Ux et la réponse un espace vide est indiqué).

J'ai une solution avec formule, plus flexible, mais qui surcharge mon fichier.
Code:
=(MID($B3;FIND(C$2;$B3)+3;2))


Merci beaucoup pour ton aide, je vais voir comment je peux encore adapter le code pour éliminer les erreur des utilisateurs).
 
Bonsoir le fil, le forum

Cela fonctionne sur l'exemple.
(en attendant mieux 😉)
VB:
Sub a()
Dim t, i&, j&
j = Cells(Rows.Count, 2).End(xlUp).Row
For i = j To 3 Step -1
t = Split(Cells(i, 2), vbLf)
Cells(i, 3).Resize(, UBound(t) + 1) = t
Erase t
Next
Range("C3:F" & j).Replace What:="#U? ", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour