Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

job75

XLDnaute Barbatruc
La fonction SI donne 2 résultats de classement selon que le temps est supérieur ou égal au temps précédent.

La ligne 1 contient des textes d'où la fonction N qui renvoie zéro sur cette ligne.
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…