Formule excel assez bizzard et compliquée :p

Résolu
Oceathys -  
 Utilisateur anonyme -
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
 
heu ....... pourquoi pas faire simplement données ->convertir-> délimité ->mettre " dans autre -> fin et tout est séparé
1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Heuuu... pourquoi faire simple quand ont peu faire compliquer (rire).
A+
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup, c'est c'est super sympa, mais comment je l'intègre ? :p
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Salut michel... Bien vu.
0
oceathys Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
 
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   Statut Membre Dernière intervention  
 
c'est bon les gars, ca amrche !! merci beaucoup !! en fait c'est donc : data, text to collums ;) merci encore gg
0
Utilisateur anonyme
 
OUF, me voila rassuré sur Excel (LOL)
0