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...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Pour ne garder que les caractère avant " (" :
VB:
Sub cal6()

    fin = Cells(Rows.Count, 2).End(xlUp).Row
   For n = 2 To fin
        sup = InStr(Cells(n, 2), "(")
        If sup > 0 Then Cells(n, 2) = Left(Cells(n, 2), sup - 1)
    Next

End Sub

P.S. c'est mieux avec des déclarations de variables.

cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Alors je m'arrêterai là puisque le forum proscrit le pompage de site sans autorisation particulière.

Extrait des CGU de l'équipe :
La Société est le propriétaire exclusif, de tous les droits de propriété intellectuelle portant sur la structure et les Contenus du (des) Support(s) Numérique(s), dans le monde entier, exception faite des Contributions envoyées par les Utilisateurs ou Contributeurs. Les présentes CGU n'entraînent le transfert d'aucun droit de propriété intellectuelle au profit de l'Utilisateur, de l'Abonné ou du Contributeur sur la structure et/ou sur les Contenus du (des) Support(s) Numérique(s).
Les Contenus, dont les flux RSS, sont accessibles à l'Utilisateur dans le cadre d'un usage personnel, privé, non collectif et non commercial.
Ainsi, l'Utilisateur s'engage notamment à ne pas utiliser les Contenus de manière à porter atteinte aux droits de la Société et à ce que cette utilisation ne constitue pas une contrefaçon ou une concurrence déloyale ou parasitaire des Contenus.
Tout autre usage que celui prévu aux présentes CGU est soumis à autorisation écrite et préalable de la Société.

Vous pouvez utliser leur Flux RSS.

Cordialement
 
Bonjour Chasse, Roblochon, le forum

vite fait !

Cordialement, @+
VB:
Sub Test_cal6_2()
    Dim Tableau_en_Cours, Range_en_Cours, Compteur As Long
    Set Range_en_Cours = Range("B2:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    Tableau_en_Cours = Range_en_Cours.Value
    For Compteur = LBound(Tableau_en_Cours, 1) To UBound(Tableau_en_Cours, 1)
        Tableau_en_Cours(Compteur, 3) = "00:" & Left(Tableau_en_Cours(Compteur, 1), InStr(1, Tableau_en_Cours(Compteur, 1), "'") - 1) & ":" & Mid(Tableau_en_Cours(Compteur, 1), InStr(1, Tableau_en_Cours(Compteur, 1), "'") + 1, InStr(1, Tableau_en_Cours(Compteur, 1), "''") - (InStr(1, Tableau_en_Cours(Compteur, 1), "'") + 1))
        Tableau_en_Cours(Compteur, 2) = Mid(Tableau_en_Cours(Compteur, 1), InStr(1, Tableau_en_Cours(Compteur, 1), "''") + 2, 2)
        Tableau_en_Cours(Compteur, 1) = Tableau_en_Cours(Compteur, 3): Tableau_en_Cours(Compteur, 3) = ""
    Next Compteur
    Range_en_Cours.Value = Tableau_en_Cours
 End Sub
 

Pièces jointes

  • Test Chasse.xlsm
    17.3 KB · Affichages: 5
un peu moins vite fait !
VB:
Sub Test_cal6_2()
    Dim Tableau_en_Cours, Range_en_Cours As Range, Compteur&, Val_en_Cours$ 'définition des variables
    Set Range_en_Cours = Range("B2:C" & Cells(Rows.Count, 2).End(xlUp).Row) 'référencement du tableau final des cellules sur deux colonnes
    Tableau_en_Cours = Range_en_Cours.Value 'création du tableau Vb en mémoire
    For Compteur = LBound(Tableau_en_Cours, 1) To UBound(Tableau_en_Cours, 1) 'boucle sur toutes les lignes du tableau
        Val_en_Cours = Trim(Tableau_en_Cours(Compteur, 1)) 'la colonne 1 de chaque ligne est copiée dans val en cours, correspond à la valeur en colonne B
        Tableau_en_Cours(Compteur, 1) = "00:" & Left(Val_en_Cours, InStr(1, Val_en_Cours, "'") - 1) & ":" & _
            Mid(Val_en_Cours, InStr(1, Val_en_Cours, "'") + 1, InStr(1, Val_en_Cours, "''") - (InStr(1, Val_en_Cours, "'") + 1)) 'extraction des données minutes et secondes en recherchant les caractères de séparation ' et écrasement des données en colonne 1
        Tableau_en_Cours(Compteur, 2) = Mid(Val_en_Cours, InStr(1, Val_en_Cours, "''") + 2, 2) 'extraction des centièmes en 2e colonne du tableau
    Next Compteur
    Range_en_Cours.Value = Tableau_en_Cours 'on écrase les valeurs des cellules avec les valeurs du tableau
End Sub
 
Dernière édition:

Chasse

XLDnaute Occasionnel
Bonsoir Le forum et Yeahou

Je ne s’est pas si vous suivez toujours ce fil, si oui temp mieux

La macro que vous m'avez fournie est top, mais seulement avec ce format « 1'00''62 (+12''14) »

Quand la cellule est avec celui-ci « 59''71 (+0''52) » elle bug

Plus j’essayer d’adapter la macro plus le constat de mon ignorance en VBA me donne des complexes. Merci de m’aider encore une fois.

PS Merci Yeahou pour tes explications
 

Pièces jointes

  • Tri3.xlsm
    17.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour Chasse, Roblochon, Yeahou,
Quand la cellule est avec celui-ci « 59''71 (+0''52) » elle bug
Pas de problème avec cette macro :
VB:
Sub MMSS()
Dim tablo, i&, x$, s, ub%
With Sheets("Données brut").[A1].CurrentRegion.Columns(2).Resize(, 2) 'colonnes B et C
    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---
    .Columns(1).NumberFormat = "mm:ss"
    .Columns(2).NumberFormat = "00"
    .Value = tablo
End With
End Sub
A+
 

Discussions similaires

Réponses
12
Affichages
537
Réponses
3
Affichages
274