Extraire une phrase et la mettre dans une autre case
Résolu/Fermé
A voir également:
- Extraire une phrase et la mettre dans une autre case
- Extraire une video youtube - Guide
- Extraire son d'une video - Guide
- Aller à la ligne dans une case excel - Guide
- Extraire une photo d'une vidéo iphone - Guide
- Mettre une phrase en majuscule - Guide
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 746
28 mai 2015 à 12:12
28 mai 2015 à 12:12
Bonjour,
Manque de précision...
Tout ce texte se trouve dans la même cellule ou sur plusieurs lignes?
Manque de précision...
Tout ce texte se trouve dans la même cellule ou sur plusieurs lignes?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 746
28 mai 2015 à 12:36
28 mai 2015 à 12:36
Bon, alors deux possibilités :
1- tu veux comme résultat : "Moyenne = 0ms"
2- tu veux comme résultat : 0
Tu peux utiliser ces deux fonctions, soit via VBA en utilisant une variable pour en stocker le résultat, soit directement dans la feuille en utilisant, par exemple, la syntaxe :
=Extrait_Valeur_Moyenne(A1)
1- tu veux comme résultat : "Moyenne = 0ms"
Function Extrait_Moyenne(Rng As Range) As String Application.Volatile Extrait_Moyenne = "Moyenne" & Split(Rng, "Moyenne")(1) End Function
2- tu veux comme résultat : 0
Function Extrait_Valeur_Moyenne(Rng As Range) As Double Dim Debut As Integer, Longueur As Integer, strTexte As String Application.Volatile strTexte = Split(Rng, "Moyenne")(1) Debut = InStr(strTexte, "=") + 2 Longueur = InStr(strTexte, "ms") - Debut Extrait_Valeur_Moyenne = CDbl(Mid(strTexte, Debut, Longueur)) End Function
Tu peux utiliser ces deux fonctions, soit via VBA en utilisant une variable pour en stocker le résultat, soit directement dans la feuille en utilisant, par exemple, la syntaxe :
=Extrait_Valeur_Moyenne(A1)
Bonjour Franck,
Merci pour ton aide, en revanche j'ai pas réussi à le faire marcher (désolé je suis encore débutante en vba :/ )
J'ai mis la fonction au dessus du code et je me suis servie de la syntaxe: =Extrait_Moyenne(A1) pour le faire marcher mais ça me donne: " #NOM? "
Je te montre mon code au cas où ça peut aider à comprendre:
Est ce que tu penses qu'il y a moyen d'avoir: "Moyenne = '(valeur de la moyenne)ms" comme résultat au fur et à mesure que le ping s'execute?
Manar
Merci pour ton aide, en revanche j'ai pas réussi à le faire marcher (désolé je suis encore débutante en vba :/ )
J'ai mis la fonction au dessus du code et je me suis servie de la syntaxe: =Extrait_Moyenne(A1) pour le faire marcher mais ça me donne: " #NOM? "
Je te montre mon code au cas où ça peut aider à comprendre:
Sub Ping()
ToursPrevus = ActiveSheet.Cells(3, 2)
Toursfaits = 0
While (Toursfaits < ToursPrevus)
Adresse = ActiveSheet.Cells(2, 2)
Dim PingExe As String
PingExe = "C:\Windows\System32\PING.exe -l 1024 " + Adresse
Set Sh = CreateObject("WScript.Shell")
Set ShellExe = Sh.Exec(PingExe)
lecture = ShellExe.StdOut.ReadAll
Toursfaits = Toursfaits + 1
CelluleResult = 6 + Toursfaits
ActiveSheet.Cells(CelluleResult, 2) = lecture
Wend
End Sub
Est ce que tu penses qu'il y a moyen d'avoir: "Moyenne = '(valeur de la moyenne)ms" comme résultat au fur et à mesure que le ping s'execute?
Manar
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 746
>
Manar
Modifié par pijaku le 29/05/2015 à 10:08
Modifié par pijaku le 29/05/2015 à 10:08
Bonjour,
Si tu fait tout par macro, n'insère pas de formule dans ta feuille.
Essaye ce code :
De plus, tu utilisais, dans ta formule, le Range A1 (=Extrait_Moyenne(A1)) alors que tes résultats sont en colonne B...........
Si tu fait tout par macro, n'insère pas de formule dans ta feuille.
Essaye ce code :
Sub Ping() ToursPrevus = ActiveSheet.Cells(3, 2) Toursfaits = 0 While (Toursfaits < ToursPrevus) Adresse = ActiveSheet.Cells(2, 2) Dim PingExe As String PingExe = "C:\Windows\System32\PING.exe -l 1024 " + Adresse Set Sh = CreateObject("WScript.Shell") Set ShellExe = Sh.Exec(PingExe) lecture = ShellExe.StdOut.ReadAll Toursfaits = Toursfaits + 1 CelluleResult = 6 + Toursfaits ActiveSheet.Cells(CelluleResult, 2) = lecture 'AFFICHE LA MOYENNE EN COLONNE C ActiveSheet.Cells(CelluleResult, 3) = Extrait_Moyenne(Range("B" & CelluleResult) Wend End Sub Function Extrait_Moyenne(Rng As Range) As String Extrait_Moyenne = "Moyenne = " & Split(Rng, "Moyenne")(1) End Function
De plus, tu utilisais, dans ta formule, le Range A1 (=Extrait_Moyenne(A1)) alors que tes résultats sont en colonne B...........
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 746
>
Manar
29 mai 2015 à 11:07
29 mai 2015 à 11:07
de rien.
A++
A++
Bonjour,
Je reviens sur ce sujet parce que j'ai une question à propos de ce script.
J'ai besoin de le faire executer chaque 20 secondes par exemple, je me suis servie donc de cette commande juste après la boucle While:
Application.OnTime Now + TimeValue("00:00:20"), "Ping"
ça marche bien mais quand le nouveau ping s'execute il remplace l'ancien dans la même case, et moi j'ai besoin de tout garder.
Comment est ce que je peux faire pour faire apparaitre les ping les uns au dessous des autres ?
Merci d'avance
Je reviens sur ce sujet parce que j'ai une question à propos de ce script.
J'ai besoin de le faire executer chaque 20 secondes par exemple, je me suis servie donc de cette commande juste après la boucle While:
Application.OnTime Now + TimeValue("00:00:20"), "Ping"
ça marche bien mais quand le nouveau ping s'execute il remplace l'ancien dans la même case, et moi j'ai besoin de tout garder.
Comment est ce que je peux faire pour faire apparaitre les ping les uns au dessous des autres ?
Merci d'avance
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 746
4 juin 2015 à 10:33
4 juin 2015 à 10:33
Bonjour,
Remplacer la ligne de code :
par :
Remplacer la ligne de code :
CelluleResult = 6 + Toursfaits
par :
CelluleResult = Range("B" & Rows.Count).End(xlUp).Row + 1
28 mai 2015 à 12:19
Tout ce texte se trouve dans la même cellule.
J'ai fait un programme qui lance un ping sur excel et j'ai besoin d'extraire du résultat que la moyenne à chaque fois, et faire un graphe par la suite.
Manar