Récupérer par formule texte entre guillemets

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous,

j'aimerais récupérer 13 heures 25 minutes dans le texte suivant: "text" : "13 heures 25 minutes", soit par formule, soit en VBA. Les deux solutions sont les bienvenues. Merci d'avance.




A+ :cool:
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [Résolu pas CISCO] Récupérer par formule texte entre guillemets

Bonjour Lone-wolf, le fil,

Avec du VBA c'est bien simple, mettre dans un module standard cette fonction très générale :

Code:
Function S$(t$, sep$, n%)
If UBound(Split(t, sep)) >= n Then S = Split(t, sep)(n)
End Function
Et si en A1 on a toujours un texte comme "text" : "13 heures 25 minutes"

entrer en B1 =S(A1;"""";3)

Bonne fin de soirée.
 

Lone-wolf

XLDnaute Barbatruc
Re : [Résolu pas CISCO] Récupérer par formule texte entre guillemets

Bonjour Job :D


Code:
Public Const Formula1 As String = "=STXT(Data!$A$30;CHERCHE("":"";Data!$A$30)+3;NBCAR(Data!$A$30)-CHERCHE("":"";Data!$A$30)-4)"
Public Const Formula2 As String = "=STXT(Data!$A$34;CHERCHE("":"";Data!$A$34)+3;NBCAR(Data!$A$34)-CHERCHE("":"";Data!$A$34)-4)"
Public Const wurl As String = "https://www.google.fr/maps/dir/"
Public Const sep As String = "+" & "/"

'------------------------------------------------------------------------------------------------

Private Sub CmdItineraire_Click()
Dim lig As Integer

Depart = TxtDepart.Value
Arrivee = TxtArrivee.Value

Application.ScreenUpdating = False

With Sheets("Data").QueryTables.Add(Connection:="URL;http://maps.google.fr/maps/api/directions/json?origin=" & Depart _
 & "&destination=" & Arrivee & "&sensor=false", Destination:=Sheets("Data").Range("A1"))
  .Name = "itinéraire"
  .BackgroundQuery = True
  .WebSelectionType = xlEntirePage
  .WebFormatting = xlWebFormattingNone
  .Refresh BackgroundQuery:=False
End With

With Sheets("Data")
.Range("a30") = Trim(.Range("a30"))
.Range("a31") = Trim(.Range("a31"))
.Range("a34") = Trim(.Range("a34"))
If .Range("a30") = "" And .Range("a31") = "" And .Range("a34") = "" Then
.Cells.Clear
Sheets("Resultats").Range("a2:d2").ClearContents
LblInfo.Visible = True
Exit Sub
End If
End With

With Sheets("Resultats")
.Range("a2") = TxtDepart.Value
.Range("b2") = TxtArrivee.Value
.Range("c2").FormulaLocal = Formula1
.Range("d2").FormulaLocal = Formula2
LblKm.Caption = .Range("c2")
LblTemps.Caption = .Range("d2")
End With
LblKm.Caption = Replace(LblKm.Caption, "Â", "")
Sheets("Resultats").Range("c2") = LblKm.Caption

Sheets("Resultats").Range("a2:d2").Copy
lig = Sheets("Recherches").Range("a65000").End(xlUp).Row + 1
Sheets("Recherches").Cells(lig, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

dep = TxtDepart.Value
arr = TxtArrivee.Value
On Error GoTo ErrHandler
With Me.WebBrowser1
 Set Ie = CreateObject("internetExplorer.Application")
 Ie.Visible = False
 WaitIE Ie
 Ie.Navigate wurl & dep & sep & arr
.Navigate wurl & dep & sep & arr
End With
ErrHandler:
Set Ie = Nothing
End Sub

Vu que maintenant j'ai deux variables formules, est-ce que la fonction fera l'affaire pour les deux; parce-que pour "text" : "13 heures 25 minutes" pas de problème, mais pour "text" : "1Â 615 km" si je dépasse les 999Km sinon "value" : 1615391???. Moi j'ai mis pour commencer Trim, ensuite Replace "Â " par "" et je récupère le reste. Il y a moyens de faire d'une pierre deux coups?

"text" se trouvant en cellule(fixe) en A30 et "value" idem en A34. Nom de la feuille "Data".

Note: désolé pour le retard :eek:


A+ :cool:
 
Dernière édition:

Statistiques des forums

Discussions
314 222
Messages
2 107 474
Membres
109 831
dernier inscrit
Alammo53