Bonjour,
J'ai un petit soucis au niveau de mon format de date, j'aimerais transformer mon format de date en texte/standard tout en gardant une écriture sous la forme : "yyyy-mm-dd"
Voici ma macro, j'arrive à le transformer mais à la fin, le format de ma cellule est personnalisé, et moi je voudrais texte/standard...
Je vous remercie par avance
Julien
J'ai un petit soucis au niveau de mon format de date, j'aimerais transformer mon format de date en texte/standard tout en gardant une écriture sous la forme : "yyyy-mm-dd"
Code:
Sub Traitement()
Dim derligne As Long
Dim x As Range 'cellule affichant le coefficient multiplicateur 100
Dim taille As Range '1ère ligne contenant le symbole % dans les en-tête
Dim colonne As Integer 'n° de la colonne à modifier
Dim lignefin As Integer 'n° de la dernière ligne
Dim ws As Worksheet
On Error Resume Next 'si la feuille n'existe pas !
Application.DisplayAlerts = False: Sheets("traitement").Delete: Application.DisplayAlerts = True
On Error GoTo 0 'plus de gestionnaire d'erreurs
Worksheets("PO - PB").Copy After:=Worksheets("base donnee") 'création de la feuille
ActiveSheet.Name = "traitement" 'nom de la feuille'
Sheets("base donnee").Range("A1:DX1").Copy Sheets("traitement").Range("A1:DX1")
ActiveSheet.AutoFilterMode = False 'desactiver les filtres'
ActiveWindow.FreezePanes = False 'désactiver les volets'
ligne = Range("A" & Rows.Count).End(xlUp).Row
colomne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
With Sheets("traitement")
Set x = Range("A" & ligne + 10)
x.Value = 100
Set taille = .Range("A2:DX100")
For Each cell In taille
If cell.HasFormula = True Then
cell.EntireColumn.Rows("2:775").Select
selection.Copy
selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
[b]'detecter date et la mettre en texte + bon format
ElseIf IsDate(cell) Then
cell.EntireColumn.Rows("2:761").Select
selection.NumberFormat = "@"
selection.NumberFormat = "yyyy-mm-dd"[/b]
ElseIf InStr(1, cell.Text, "€") > 0 Then
cell.EntireColumn.Rows("2:761").Select
selection.NumberFormat = "0.00" 'pour 2 décimales
selection.Copy
selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
ElseIf InStr(1, cell.Text, "%") > 0 Then
colonne = cell.Column
lignefin = cell.End(xlDown).Row
x.Copy
Range(Cells(1, colonne), Cells(lignefin, colonne)).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlMultiply, SkipBlanks:=True
For i = 2 To lignefin
If CStr(Cells(i, colonne)) = "Erreur 2015" Then Cells(i, colonne) = ""
Next i
selection.NumberFormat = "0.00"
selection.Copy
selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
End If
Next
End With
ActiveSheet.UsedRange.Replace What:="/", Replacement:="", LookAt:=xlWhole
ActiveSheet.UsedRange.Replace What:="#REF!", Replacement:="", LookAt:=xlWhole
ActiveSheet.UsedRange.Replace What:="#VALEUR!", Replacement:="", LookAt:=xlWhole
'For Each ws In Worksheets
'Application.DisplayAlerts = False
'If ws.Name <> "traitement" Then ws.Delete
'Next
'Application.DisplayAlerts = True
'ActiveWorkbook.SaveAs Filename:="Traitement", FileFormat:=xlCSV, CreateBackup:=False, local:=True
End Sub
Voici ma macro, j'arrive à le transformer mais à la fin, le format de ma cellule est personnalisé, et moi je voudrais texte/standard...
Je vous remercie par avance
Julien