Récuperer donné ds une cellule composée de plusieurs lignes

Bonjour,

J'ai une cellule C contenant 3 informations sur 3 lignes (alt+tab entre chaques), ou parfois 4 sur 4 lignes. Elle se présente donc ainsi:

L=2403

D=12,75 0/-2

d=8,84 ±1

R=67,2"

Je cherche à récupérer l'information diamètre (D=...), c'est à dire copier la valeur correspondante et la coller dans une cellule donnée. (Bonus: Les données inscrites dans la cellule C viennent de la copie d'une zone texte. Du coup la hauteur de cette cellule C a été modifiée. S'il y avait moyen de la forcer à garder le format "une seule ligne", même si du coup je ne vois que L=2403 et que le reste est caché, ce serait super... )

Le problème c'est que je ne sais pas comment procéder, et j'aurai bien besoin dupetit coup de main d'un pro

ps: je suis sous excel 2007. Mes recherches m'ont conduit à tester un truc du genre:

Sub test()

If Cells(1, 1) Like "*D=*" Then

lg = Len(Cells(1, 1).Value)

pos1 = InStr(Cells(1, 1).Value, "32A")

temp = Mid((Cells(1, 1).Value), pos1, lg - pos + 1)

pos2 = InStr(temp, Chr(10))

fin = Mid(temp, 1, pos2)

Cells(1, 1).Offset(0, 2).Value = fin

End If:

End Sub

Mais je ne parviens pas à le faire fonctionner...

Bonjour,

Je ne peux pas vous aider avec votre solution VBA, mais vous pourriez essayer cette formule-ci sur la cellule A1 :

=STXT(A1;TROUVE("D";A1);TROUVE(CHAR(10);A1;TROUVE("D";A1))-TROUVE(CHAR(10);A1;TROUVE("D";A1)-1)-1)

J’espère que cela vous aide.

Cordialement

Bonjour,

Merci mais il faudrait que je code ça sous VBA car la cellule C ne correspond pas à une cellule fixe (genre A3).

Bonjour

On ne te l'a jamais dit ?

En indiquant le résultat que tu veux

Tu auras plus de chance d'avoir une réponse

Ben c'est que du coup mon fichier va être un peu ridicule ^^...

Donc en fait je veux qu'un codage VBA me permette de récupérer la valeur "12,75" située juste après "D=".

Bonjour

A tester

Sub Extrait()
  Range("B1") = Val(Replace(Mid(Range("A1"), InStr(1, Range("A1"), "D=", vbBinaryCompare) + 2), ",", "."))
End Sub

Parfait, je viens d'adapter cette formule qui fonctionne très bien. Merci beaucoup

Du coup il me reste juste un truc, mais là c'est esthétique:

Est-ce que tu sais comment forcer la cellule A1 de mon fichier à s'afficher sur une seule ligne ? (donc pour que je ne vois que L=..., la suite étant accessible par scroll). Le but c'est de garder la mise en page d'une feuille vierge, même après que j'ai collé les données L=, D=... dans la cellule A1

Bonjour

Une solution

Sub Extrait()
  Range("A1").WrapText = False
  Range("B1") = Val(Replace(Mid(Range("A1"), InStr(1, Range("A1"), "D=", vbBinaryCompare) + 2), ",", "."))
End Sub

C'est parfait, merci

Rechercher des sujets similaires à "recuperer donne composee lignes"