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

conversion format date en texte en conservant un format de date

  • Initiateur de la discussion Initiateur de la discussion jujudeo
  • Date de début Date de début

jujudeo

XLDnaute Nouveau
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"

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
 

Pièces jointes

  • suivi.xlsx
    33.1 KB · Affichages: 37
  • suivi.xlsx
    33.1 KB · Affichages: 33

jujudeo

XLDnaute Nouveau
Re : conversion format date en texte en conservant un format de date

arf je vais jamais m'en sortir ! j'ai trouvé des cellules au format date qui ont du texte --' (le proprio pense pas a nous je crois). Donc, serait il possible que si la cellule est au format date mais quelle contient du texte de la transformer en format texte ? (et il faudrait si possible que la date soit yyyy-mm-dd si possible) ?
 
Dernière modification par un modérateur:

jujudeo

XLDnaute Nouveau
Re : conversion format date en texte en conservant un format de date

a oui pardon

c'est par exemple a la fin de ce fichier dans la colonne rouge

Car la le soucis c'est que avec l'étape de supprimer d'avant, il me supprime du coup toute cette colonne ...
 

Pièces jointes

  • suivi.xlsx
    29 KB · Affichages: 41
  • suivi.xlsx
    29 KB · Affichages: 38

thebenoit59

XLDnaute Accro
Re : conversion format date en texte en conservant un format de date

As-tu toujours le même nombre de colonnes, hormis la colonne commentaires ?
Si c'est le cas nous bouclerons jusqu'à l'avant dernière colonne seulement.
 

jujudeo

XLDnaute Nouveau
Re : conversion format date en texte en conservant un format de date

la c'est juste un fichier test pour te montrer ! mon fichier a beaucoup de données confidentielles... la personne risque de rajouter des colonnes par la suite normalement
 

Discussions similaires

Réponses
10
Affichages
444
Réponses
2
Affichages
327
Réponses
3
Affichages
837
Réponses
2
Affichages
449
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…