Formule excel assez bizzard et compliquée :p

Résolu/Fermé
Oceathys - 1 nov. 2010 à 14:45
 Utilisateur anonyme - 1 nov. 2010 à 16:52
Bonjour, voilà mon problème :
Admettons une case A1, contenant tout ce bordel là :

"0.93"3192"2601.0"2831.4"72.9"0.00"583.1"958.8"1801.8"0.0"0.46"298"69.7"69.7"67.8"

Existe t'il une formule permettant d'afficher en B1 C1 etc ... les données comprises entre les guillemets ? Je m'explique, on aura donc :
En B1 : 0.93
En C1 : 3192
En D1 : 2601.0
Etc ....

Il faut en fait que ça reconnaisse les données entre les guillemets :(
Nota bene : La formule Mid qui sert a compter les caractère et en afficher le nombre que le veux ne marche pas, enfin si, mais non , je m'explique :
La colonne A1 en fait :
"0.93"3192"2601.0"2831.4"72.9"0.00"583.1"958.8"1801.8"0.0"0.46"2982"69.7"69.7"67.8
Mais du coup cette formule devra s'appliquer a A2 A3 A4 etc ...
Le seul bémol de la formule Mid, c'est que le nombre de caractère ne sera pas toujours le même, car des fois en B2 par exemple, j'aurai 0,931, ce qui fait donc 5 caractères et non pas 4 comme B1 .... Donc pour mid, c'est mort, il faut vraiment une formule capable d'afficher les données entre les "" ..

Si qqun comprend mon charabia là, merci de m'aider , vraiment :p
PS ( C'est pour la reprogramation des calculateurs de voitures)

Merci d'avance, Jonathan




A voir également:

7 réponses

Utilisateur anonyme
1 nov. 2010 à 16:20
heu ....... pourquoi pas faire simplement données ->convertir-> délimité ->mettre " dans autre -> fin et tout est séparé
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 nov. 2010 à 16:28
Bonjour,
Heuuu... pourquoi faire simple quand ont peu faire compliquer (rire).
A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 nov. 2010 à 16:38
re,re

OK, hombourgeois. Ce qui m'avait emmener sur la macro est le guillemet au départ qui crée une case vide... bien que ca soit pas trop gênant car on peut s'en contenter ou supprimer la colonne
à oceathys de choisir

Bonne soirée à tous
:-)
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 nov. 2010 à 15:36
Re, Finalement j'ai une solution..
Sub Separe2()
Dim i As Integer, Deb As Integer, Fin As Integer, V As Double, L As Integer
Dim Lig As Long, Col As Integer
Dim R As Range
    Lig = 3: Col = 1
    Set R = Range("A1")
    L = Len(R)
    For i = 1 To L
        If Mid(R, i, 1) = Chr(34) Or i = L Then
            If Deb = 0 Then
                Deb = i + 1
            Else
                Fin = i - IIf(i < L, 1, 0)
                V = CDbl(Replace(Mid(R, Deb, Fin - Deb + 1), ".", ","))
                Cells(Lig, Col) = V
                Lig = Lig + 1
                Deb = Fin + 2
            End If
        End If
    Next i
End Sub


A+
0
oceathys Messages postés 3 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 1 novembre 2010
1 nov. 2010 à 15:47
Merci beaucoup, c'est c'est super sympa, mais comment je l'intègre ? :p
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 nov. 2010 à 16:13
Tu as beaucoup de données à séparer ?
Si oui, donne la plage à traiter et la colonne et ligne où commnencer la transcription.
S'il n'y en a qu'une tu adapte la cellule A1 et Lig à la première ligne des résultat et idem pour Col.
Ensuite soit tu lie la sub à un bouton soit tu met le curseur dans la sub et tu tape F5
A+
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
1 nov. 2010 à 16:09
une autre solution a voir sur ce lien

http://www.cijoint.fr/cjlink.php?file=cj201011/cijtGogUEs.xls

la plage B1:B20 a été nommée Tab elle peut etre modifiée

cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 1/11/2010 à 16:28
Bonjour,

peut-^tre + simple:

Sub separer_guillemet() 
Dim tablo() As String 
tablo = Split(Right(Range("A1"), Len(Range("A1")) - 1), Chr(34)) 
Range("B1").Resize(1, UBound(tablo) + 1) = tablo 
End Sub

Michel


re,
et si tu en as toute une série dans la colonne A (sinon, c'est pas drôle)

Sub separer_guillemet(source, cible)
Dim tablo() As String
tablo = Split(Right(source, Len(source) - 1), Chr(34))
cible.Resize(1, UBound(tablo) + 1) = tablo
End Sub

Sub test()
Dim derlig As Long, lig As Long
derlig = Cells(Cells.Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For lig = 1 To derlig
separer_guillemet Cells(lig, 1), Cells(lig, 2)
Next
End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 nov. 2010 à 16:21
Salut michel... Bien vu.
0
oceathys Messages postés 3 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 1 novembre 2010
Modifié par oceathys le 1/11/2010 à 16:46
HA wééééé c'est ce qu'on me dit aussi sur msn, mais j'ai excel sur mac, et je n'ai pas : donnée convertir (en plsu je l'ai en anglais :( )

http://cjoint.com/data3/3lbqAQunOVl.htm en B1 voila ce que ej veux que ca fasse
0
Utilisateur anonyme
1 nov. 2010 à 16:46
pas données convertir en version anglaise ??? curieux cela !!
je l'ai eu dans toutes les version depuis v.97 (windows)
0
oceathys Messages postés 3 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 1 novembre 2010
1 nov. 2010 à 16:51
c'est bon les gars, ca amrche !! merci beaucoup !! en fait c'est donc : data, text to collums ;) merci encore gg
0
Utilisateur anonyme
1 nov. 2010 à 16:52
OUF, me voila rassuré sur Excel (LOL)
0