XL 2019 Retirer les traits d'unions dans les cellules

fredbacon

XLDnaute Nouveau
J'aurai besoin d'aide, s'il vous plait.

Exemple:
ma cellule est:

2021-03-04

Je voudrais que ma cellule soit comme ce qui suit, sans les traits d'unions: 20210304

Je voudrais retirer les traits d'unions dans toutes mes cellules pour ensuite que le remplissage instantanée fonctionne sur toutes mes autres cellules (en ayant enlevé les traits d'unions).

Merci :)
 

jm.andryszak

XLDnaute Occasionnel
Bonjour
1-Soit créer une nouvelle colonne
Formule : =SUBSTITUE(A1;"-";"") dans la nouvelle colonne à tirer vers le bas

2-Soit par macro
Pas besoin de nouvelle colonne, on suppose que les cellules à convertir sont en colonne D.
Sub Test()
Dim i
For i = 1 To Range("d" & Rows.Count).End(xlUp).Row
Range("d" & i) = Replace(Range("d" & i), "-", "")
Next
'Format Standard
Range("d1 : " & "d" & Range("d" & Rows.Count).End(xlUp).Row).NumberFormat = "General"
End Sub
 

cp4

XLDnaute Barbatruc
Bonjour,

Sans fichier, en t'inspirant de cette macro
VB:
Sub remplacer()
Range("b1") = Replace(Range("a1"), "-", "") 'résultat en colonne b
Range("a1") = Replace(Range("a1"), "-", "") 'En écrasant la cellule elle même
End Sub
 

job75

XLDnaute Barbatruc
Bonjour fredbacon, le forum,

Il y a 3 possibilités pour que la date soit affichée avec des tirets :

- soit c'est un nombre au format personnalisé "aaaa-mm-jj"

- soit la cellule est au format "Texte"

- soit le texte est précédé d'une apostrophe.

Cette macro traite la colonne A dans les 3 cas :
VB:
Sub Remplacer_tirets()
Dim c As Range
With [A1].CurrentRegion.Columns(1) 'à adapter
    .NumberFormat = "yyymmdd"
    For Each c In .Cells
        c = Replace(c.Value2, "-", "/")
    Next
End With
End Sub
A+
 

Pièces jointes

  • Dates(1).xlsm
    17.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
S'il y a un grand nombre de cellules la macro précédente prendra beaucoup trop de temps.

Il faut alors utiliser un tableau VBA :
VB:
Sub Remplacer_tirets()
Dim tablo, i&
With [A1].CurrentRegion.Columns(1) 'à adapter
    tablo = .Resize(, 2).Value2 'matrice, plus rapide, au moins 2 éléments
    For i = 2 To UBound(tablo)
        tablo(i, 1) = Replace(tablo(i, 1), "-", "/")
    Next
    '---restitution---
    .NumberFormat = "yyymmdd"
    .Value = tablo
End With
End Sub
 

Pièces jointes

  • Dates(2).xlsm
    17.7 KB · Affichages: 1

fredbacon

XLDnaute Nouveau
Bonjour
1-Soit créer une nouvelle colonne
Formule : =SUBSTITUE(A1;"-";"") dans la nouvelle colonne à tirer vers le bas

2-Soit par macro
Pas besoin de nouvelle colonne, on suppose que les cellules à convertir sont en colonne D.
Sub Test()
Dim i
For i = 1 To Range("d" & Rows.Count).End(xlUp).Row
Range("d" & i) = Replace(Range("d" & i), "-", "")
Next
'Format Standard
Range("d1 : " & "d" & Range("d" & Rows.Count).End(xlUp).Row).NumberFormat = "General"
End Sub


Traduction svp
Je suis un novice suivant un cour en adm.
 

Discussions similaires

Réponses
3
Affichages
288

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch