Microsoft 365 supprimer espace

Chasse

XLDnaute Occasionnel
Bonjour le forum
Dans la colonne B les données telles que je les récupère: format 1'08''23 (+0''10)
le 9iem car est un espace que dans un 1er temps j'aimerais supprimer ainsi que les suivant ne garder que les 8 car du début format: 1'08''13
avec ce code

VB:
Sub cal6()
fin = Cells(Rows.Count, 2).End(xlUp).Row

For n = 2 To fin
    sup = Split(Cells(n, 2), "(")
        If UBound(sup) > 0 Then
        Cells(n, 2) = Trim(sup(0))
    End If
     
            t = Split(Cells(n, 2), "''")
                If UBound(t) > 0 Then
                Cells(n, 3) = (Replace(t(1), "''", ""))
            End If
                t = Split(Cells(n, 2), "''")
                    If UBound(t) > 0 Then
                    Cells(n, 2) = Trim(t(0))
                    Cells(n, 2) = "00:" & (Replace(Cells(n, 2), "'", ":"))
                    End If
Next
End Sub
j'ai pu supprimer les car qui suive mais l'espace reste toujours
la suite du code sépare les centièmes dans la colonne C "l'espace est toujours là" et met le reste de la chaine au format MM:SS
Comment supprimer cet espace qui me prend la tête
Merci de votre aide
 

Pièces jointes

  • Supp espace.xlsm
    20.1 KB · Affichages: 45
Solution
Mais je n'est aucun résultat
Vous avez dû mal tester.

Mais bon, c'est mieux avec le classement en colonne A, voyez le fichier joint :
VB:
Sub Conversion()
Dim tablo, i&, x$, s, ub%
With Sheets("Données brut").[A1].CurrentRegion.Columns(2).Resize(, 2)
    tablo = .Value
    For i = 2 To UBound(tablo)
        x = tablo(i, 1)
        s = Split(x, "''")
        If UBound(s) > 0 Then
            tablo(i, 2) = Val(s(1))
            x = s(0)
            s = Split(x, "'")
            ub = UBound(s)
            If ub = 0 Then tablo(i, 1) = Val(s(0)) / 86400
            If ub > 0 Then tablo(i, 1) = Val(s(0)) / 1440 + Val(s(1)) / 86400
        End If
    Next
    '---restitution et classement---
    Application.ScreenUpdating = False...

job75

XLDnaute Barbatruc
Mais je n'est aucun résultat
Vous avez dû mal tester.

Mais bon, c'est mieux avec le classement en colonne A, voyez le fichier joint :
VB:
Sub Conversion()
Dim tablo, i&, x$, s, ub%
With Sheets("Données brut").[A1].CurrentRegion.Columns(2).Resize(, 2)
    tablo = .Value
    For i = 2 To UBound(tablo)
        x = tablo(i, 1)
        s = Split(x, "''")
        If UBound(s) > 0 Then
            tablo(i, 2) = Val(s(1))
            x = s(0)
            s = Split(x, "'")
            ub = UBound(s)
            If ub = 0 Then tablo(i, 1) = Val(s(0)) / 86400
            If ub > 0 Then tablo(i, 1) = Val(s(0)) / 1440 + Val(s(1)) / 86400
        End If
    Next
    '---restitution et classement---
    Application.ScreenUpdating = False
    .Columns(1).NumberFormat = "mm:ss"
    .Columns(2).NumberFormat = "00"
    .Value = tablo
    .Sort .Columns(1), xlAscending, .Columns(2), , xlAscending, Header:=xlYes 'tri sur les 2 colonnes B et C
    If .Rows.Count > 1 Then .Cells(2, 0).Resize(.Rows.Count - 1) = "=IF(8640000*B2+C2>8640000*N(B1)+N(C1),ROW()-1,A1)" 'classement
End With
End Sub
Le classement tient compte des ex-aequo.
 

Pièces jointes

  • Supp espace(1).xlsm
    22.6 KB · Affichages: 5

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour Yeahou

je n'y comprends rien? autant de lignes de code pour supprimer un espace
Mais ça fonctionne.

je vous tire mon 👒

et un grand MERCI​

;)
même sans aucune ligne de code ça fonctionne aussi !!!
:cool:
1618356239564.png
 

Pièces jointes

  • Supp espace.xlsm
    24.5 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bonjour le forum,

Bah où avais-je la tête, inutile de calculer les temps, fichier (2) :
VB:
If .Rows.Count > 1 Then .Cells(2, 0).Resize(.Rows.Count - 1) = "=IF((B1=B2)*(C1=C2),A1,ROW()-1)" 'classement
A+
 

Pièces jointes

  • Supp espace(2).xlsm
    22.7 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour Modeste geedee,

Teste ta formule avec 59''71 (+0''52) comme demandé au poste #13, elle ne fonctionne pas.

Par contre cette formule en C2 fonctionne, fichier (3) :
Code:
=--SUBSTITUE("0:"&SUBSTITUE(GAUCHE(B2;TROUVE("''";B2)+3);"''";STXT(1/10;2;1));"'";":")
Fonctionne même si les minutes en colonne B sont à 2 chiffres.

Fonctionne quel que soit le séparateur décimal de l'ordi grâce à STXT(1/10;2;1).

A+
 

Pièces jointes

  • Supp espace(3).xlsx
    13.3 KB · Affichages: 4

Chasse

XLDnaute Occasionnel
Bonjour le Forum, job75,Modeste geedee,
Avec cette formule je ne peux plus additionner les temps des deux manche
voici la suite de la macro
VB:
Sub Addition()
Dim fin&, i&, col2&, lot&, v&
        col2 = Range("j" & Rows.Count).End(xlUp).Row
        fin = Range("c" & Rows.Count).End(xlUp).Row
    For i = 2 To col2
        For v = 2 To fin
            If Cells(i, 10) = Cells(v, 3) Then
            If Cells(i, 10) = Cells(v, 3) And Cells(i, 12) + Cells(v, 5) >= 100 Then
               Cells(i, 12) = Cells(i, 12) + Cells(v, 5) - 100
                Cells(i, 11) = Cells(i, 11) + Cells(v, 4) + TimeValue("00:00:01")
                Cells(i, 11) = Round(Cells(i, 11), 10)
                Exit For
                Else
              Cells(i, 12) = Cells(i, 12) + Cells(v, 5)
                 Cells(i, 11) = Round(Cells(i, 11) + Cells(v, 4), 10)
                Exit For
                End If
        
            End If
            Next
            Next
Range(Cells(1, 8), Cells(Cells(Rows.Count, 12).End(xlUp).Row, 12)).Sort _
key1:=Range("K1"), order1:=xlAscending, dataoption1:=xlSortNormal, _
key2:=Range("L1"), order2:=xlAscending, dataoption2:=xlSortNormal, Header:=xlYes

End Sub

Merci pour vos subjections
 

job75

XLDnaute Barbatruc
En regardant attentivement l'image de votre post #29 je constate que les valeurs des colonnes des temps D et I sont cadrées à gauche, ce seraient donc des textes et pas des nombres ???

Qu'avez-vous donc fait avec les formules de ces colonnes ? Vous avez supprimé les -- sans comprendre qu'ils sont indispensables ?

Je vois aussi que sur votre ordi c'est le point qui est le séparateur décimal mais normalement cela ne doit pas poser de problème.
 

Discussions similaires