Partager via

Trouver une valeur dans une cellule entre deux caractères distincts

Anonyme
2021-07-14T15:40:39+00:00

Bonjour,

Je cherche à repérer dans une cellule une valeur. Cette dernière se situe toujours entre un ";" et "m2/pqt" comme le montre les deux exemples ci-dessous :

Grès cérame Pearl Rett. 600/1200/10 mm; R10 A + B; 1.44 m2/pqt; 2 pces/pqt
Grès cérame Noir Lapp Rett. 1200/1200/9  mm; 2.88 m2/pqt; 2 pces/pqt

Je cherche à repérer, pour la mettre dans une formule, les valeurs 1.44 (1er exemple) et 2.88 (2ème exemple). Je ne peux pas faire uniquement avec la formule CHERCHE des ";" car la valeur n'est pas toujours située en 3ème position. Mais la valeur est toujours située entre "; " et "m2/pqt".

Je remercie par avance toute personne qui pourra m'apporter son aide pour élaborer la formule.

Sandra

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2021-07-15T06:44:46+00:00

Bonjour,

La macro écrit les résultats en colonne F. Les résultats ne sont pas ceux que tu indiques.

Si ton séparateur décimal est le point, essaie :

Sub test1()
Dim C As Range
For Each C In Range("C2", Cells(Rows.Count, 3).End(xlUp))
For Each Item In Split(C, ";")
If InStr(Item, "m2/pqt") > 0 Then
C.Offset(, 3) = C.Offset(, 2).Value / Trim(Split(Item, "m2/pqt")(0))
End If
Next Item
Next C
End Sub

Si c'est une virgule :

Sub test()
Dim C As Range
For Each C In Range("C2", Cells(Rows.Count, 3).End(xlUp))
For Each Item In Split(C, ";")
If InStr(Item, "m2/pqt") > 0 Then
Var = Replace(Trim(Split(Item, "m2/pqt")(0)), ".", ",")
C.Offset(, 3) = C.Offset(, 2).Value / Var
End If
Next Item
Next C
End Sub

Tiens-moi au courant.

Daniel

Cette réponse a-t-elle été utile ?

2 personnes ont trouvé cette réponse utile.
0 commentaires Aucun commentaire

17 réponses supplémentaires

  1. Anonyme
    2021-07-14T18:08:04+00:00

    Bonjour Minhokiller,

    Merci pour cette formule, elle va être efficace pour presque tous les cas !

    Merci de ton aide.

    Sandra

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2021-07-14T16:42:01+00:00

    Bonjour,

    Je vous remercie de votre aide. C'est un super début. En effet, avec la traduction STXT et TROUVE, j'ai le même résultat que vous.

    Pouvez-vous continuer à m'apporter de l'aide ?

    Merci.

    Sandra

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-07-14T16:21:49+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Salut

    Je m’appelle André. Je suis un consultant indépendant.

    >Il y a deux façons de le faire, La première serait avec la fonction = MID, mais comme vous pouvez le voir dans l’impression, il finit par prendre tout ce qui est après la première preuve de ; nous devons donc changer le code. Je vais faire la forme correcte ici, et le coller ici

    répondez ici afin que je puisse continuer à vous aider.

    André.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2021-07-14T16:15:42+00:00

    Bonjour,

    Il faut pouvoir déterminer le début du string, et là, il n'y a rien de fixe. On peut le faire avec une macro.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire