Extraire données d'une cellule

Bonjour,

Voici ma question. J'ai une colonne qui ressemble à peu près à ceci:

12-14

13-11-6

14-1-4

6-13-7

6-12-11

7-5

Comme vous pouvez le voir, les nombre avant, après et entre les tirets "-" varient. Et parfois il n'y a que deux nombre.

J'aurais besoin d'isoler les deux premier nombre pour les additionner. Est-ce que quelqu'un pourrait m'aider?

bonsoir, si la mise en page n'est pas figée, je te conseillerai de fonctionner avec 5 colonnes et ainsi de ressortir les chiffres dans chaque colonne et mettre les tirets "-" dans une colonne vide entre chaque chiffre.

cela te permettra de faire tous les calculs que tu desires

voir fichier joint

Cdt

Didier

33classeur3.xls (13.50 Ko)

Bonsoir,

Tu peux utiliser une macro de ce type :

Sub Test()
Dim i As Long
Dim Tablo
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        Tablo = Split(Range("A" & i), "-")
        If UBound(Tablo) >= 1 Then
            Range("B" & i) = CInt(Tablo(0)) + CInt(Tablo(1))
        End If
    Next i
End Sub

A+

Terrible... merci Frangy, les cadors sont de sortie ce soir. Étant nul en VBA je garde ton code dans un coin pour le décortiquer

cdt

Didier

Bonjour,

Autre voie sans code : l'icône Convertir du menu Données ! ( TextToColumns en VBA)

J'utilise excel sur iPad. Les fonctions sont un peu plus limitées. Avec les formules gauche() droite() cherche()... y aurait-il un option?

bonjour, pourais tu etre plus précis dans ta demande que dois tu faire exactement avec cette colonne ?

En fait j'ai plusieurs opérations a effectuer avec les deux premiers nombre isolés de chaque coté du premier tiret.

Je suis arrivé a obtenir le nombre a gauche du premier tiret avec la fonction gauche() mais je n'arrive a isoler celui de droite puisque le nombre de caractère a droite du premier tiret peut varier.

Ces nombres represente les victoires et les defaites d'une équipe. Je ne veux pas tenir compte des nuls soit le 3ieme nombre si il y a lieu. Je voudrais que ma cellule retourne le le pourcentage de victoire donc:

Ex : 7-4-1 retourne 7*100/(7+4) = 63%

bonjour, pour se faire il faut modifier le code ainsi

Sub Test()
Dim i As Long
Dim Tablo
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        Tablo = Split(Range("A" & i), "-")
        If UBound(Tablo) >= 1 Then
            Range("B" & i) = CInt(Tablo(0)) * 100 / (CInt(Tablo(0)) + CInt(Tablo(1)))
        End If
    Next i
End Sub

et dans la cellule de resultat du fais affichage personnalisé : 0.00"%" et tu as les % avec 2 chiffres aprés la virgule

Cdt

Didier

Bonjour,

en formule d'extraction de caractère sans VBA :

premier chiffre :

=(GAUCHE(A2;TROUVE("-";A2;1)-1))*1

deuxième chiffre :

=(SIERREUR(STXT(A2;TROUVE("-";A2;1)+1;TROUVE("-";A2;TROUVE("-";A2;1)+1)-TROUVE("-";A2;1)-1);STXT(A2;TROUVE("-";A2;1)+1;NBCAR(A2))))*1

La somme je vous laisse faire...

@ bientôt

LouReeD

Bonjour,

Bonjour LouReed,

Plus court à tester (87 vs 165 caractères).

=GAUCHE(A1;TROUVE("-";A1)-1)+ENT(SUBSTITUE(DROITE(A1;NBCAR(A1)-TROUVE("-";A1));"-";","))

Attendons maintenant de nouvelles propositions.

Cdlt.

Bonjour,

Mon cerveau n'est pas encore cablé avec toutes les ramifications Excel !!!

Transformer un : 14-6 en 14,6 pour en prendre la partie entière !!!!

Alors là vous me bleuflez !!!!

Bravo, à moi de garder cette façon de "penser" en mémoire pour des prochaines fois !!!

@ bientôt

LouReeD

Bonsoir,

Pour ma part, je suis étonné que nos spécialistes en formules ne soient pas intervenus.

Cdlt.

Bonjour,

après 7 jours toujours pas de spécialistes en vue

Et au fait Est-ce que la réponse de jean-éric ou de moi même vous conviennent ?

@ bientôt

Loureed

Rechercher des sujets similaires à "extraire donnees"