Formule excel assez bizzard et compliquée :p
Résolu
Oceathys
-
Utilisateur anonyme -
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
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:
- Formule excel assez bizzard et compliquée :p
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
- Formule somme excel colonne - Guide
- Excel mise en forme conditionnelle formule - Guide
7 réponses
heu ....... pourquoi pas faire simplement données ->convertir-> délimité ->mettre " dans autre -> fin et tout est séparé
Re, Finalement j'ai une solution..
A+
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+
Merci beaucoup, c'est c'est super sympa, mais comment je l'intègre ? :p
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+
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+
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
peut-^tre + simple:
Michel
re,
et si tu en as toute une série dans la colonne A (sinon, c'est pas drôle)
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
Heuuu... pourquoi faire simple quand ont peu faire compliquer (rire).
A+
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
:-)