Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

ClementP7

XLDnaute Nouveau
Bonjour à tous,

J'écris ce post car j'aimerais réaliser la chose suivante :

J'ai ceci -> [{"value_Mesure":"32","timestamp_Mesure":"1424452331"},{"value_Mesure":"29","timestamp_Mesure":"1424460271"},{"value_Mesure":"22","timestamp_Mesure":"1424468213"}] dans une cellule Excel et je souhaiterai récupérer uniquement dans une première colonne (32,29,22) et dans une deuxième colonne (1424452331,1424460271,1424468213). Je n'ai vraiment aucune idée pour pouvoir faire ceci.

Help me please.

Je vous remercie par avance.
Bonne journée à vous :)
ClementP7
 

NezQuiCoule

XLDnaute Occasionnel
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Bonjour Clément,

Une proposition en VBA, si votre cellule Excel est en "A1" et vous souhaitez le résultat en "A2:C4"

Code:
Sub Obtenir_Valeurs()
    Texte = Split(Range("A1"), ":""") 'Changer "A1" par la cellule contenant l'extraction
    For i = 2 To UBound(Texte) Step 2
        Range("A" & 1 + CInt(i / 2)) = Left(Texte(i - 1), InStr(1, Texte(i - 1), Chr(34)) - 1) 'Changer ["A" & 1] par la colonne et le décallage en nombre de lignes voulu
        Range("B" & 1 + CInt(i / 2)) = Left(Texte(i), InStr(1, Texte(i), Chr(34)) - 1) 'Changer ["B" & 1] par la colonne et le décallage en nombre de lignes voulu
    Next
End Sub
À tester en adaptant le code à votre fichier,
Bonne journée ! :)
 

Tibo62

XLDnaute Occasionnel
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Bonjour,
Voici un élément de réponse : à adapter à ton besoin car sans fichier exemple compliqué de t'aider.

Dim chiffre As String, texte As String, entier As String
' Initialisation des variables
chiffre = ""
texte = ""
' Récupère le texte contenu dans la cellule
entier = Range("A1").Value
' Sépare les chiffres et les caractères
For n = 1 To Len(entier)
If Asc(Mid(entier, n, 1)) > 47 And Asc(Mid(entier, n, 1)) < 58 Then
chiffre = chiffre & Mid(entier, n, 1)
Else
texte = texte & Mid(entier, n, 1)
End If
Next
' Supprime l'espace en début du texte (si existe)
If Asc(Left(texte, 1)) = 32 Then texte = Mid(texte, 2)
 

ClementP7

XLDnaute Nouveau
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Merci de vos réponse aussi rapide !
J'ai effectivement oublié de joindre un Excel je le fait dans ce post si cela peut être plus clair.

Encore merci pour votre aide.
ClementP7
 

Fichiers joints

NezQuiCoule

XLDnaute Occasionnel
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Re Clément, salut Tibo62,

Ma solution fonctionnera pour ton fichier, en modifiant les adresses comme cela est précisé dans les commentaires.

Bonne journée
 

ClementP7

XLDnaute Nouveau
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Merci beaucoup tu es génial !!!
J'aurais juste une dernière requête je voudrai sauter une ligne et commencer les valeurs à la ligne 3 ? et non la ligne 2 comme sur la PJ.

Encore merci.
ClementP7
 

Fichiers joints

NezQuiCoule

XLDnaute Occasionnel
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Re,

Pas de soucis, content que ça fonctionne :)

Pour commencer à la ligne 3 :
Au lieu de Range("A" & 1 mets Range("A" & 2, et faire la même chose pour Range("B" & 1

Bonne journée !
 

ClementP7

XLDnaute Nouveau
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Merci beaucoup pour ton aide.

Je te souhaite une excellente journée à bientôt. :)

ClementP7
 

ClementP7

XLDnaute Nouveau
Re : Récupérer uniquement les chiffres d'un cellule et les insérer dans une colonne

Bonjour,

Pourriez-vous m'expliquer avec des mots ce que font ces lignes de code, car je me rend compte que je ne suis pas sur d'avoir compris. :

"Sub Obtenir_Valeurs()
Texte = Split(Range("B1"), ":""") 'Changer "A1" par la cellule contenant l'extraction de la page web
For i = 2 To UBound(Texte) Step 2

Range("D" & 2 + CInt(i / 2)) = Left(Texte(i - 1), InStr(1, Texte(i - 1), Chr(34)) - 1) 'Changer ["A" & 1] par la colonne et le décallage en nombre de lignes voulu
Range("B" & 2 + CInt(i / 2)) = Left(Texte(i), InStr(1, Texte(i), Chr(34)) - 1) 'Changer ["B" & 1] par la colonne et le décallage en nombre de lignes voulu

Next

End Sub"

Je vous remercie par avance pour votre aide :)
ClementP7
 

Discussions similaires


Haut Bas