vba macro transformet date en texte

chris6999

XLDnaute Impliqué
Bonjour le Forum

Le paramétrage automatique d'Excel transforme systématiquement tout ce qui ressemble à une date en date.
Et le fait de mettre les cellules concernées au format texte et même de convertir au préalable la colonne en texte n'y change rien.

Moi je souhaiterais avec la macro Private Sub Worksheet_Change(ByVal Target As Range)
pouvoir conserver le format texte si je saisis par exemple février 2018.
Je précise que j'attends pas que la valeur date se mettre en format texte mais bien que la valeur saisie reste une donnée texte.

Selection.NumberFormat = "@"
Ne fonctionne pas car le système remet la date au format nombre..
pas plus que
Target.NumberFormat = "mmmm aaaa"
car si dans la cellule j'ai bien ma valeur mmm aaaa cela reste une donnée date

Existe-il un moyen de parvenir à mes fins?
Je commence à désespérer de trouver une solution.

Merci par avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Chris, bonjour le forum,

À l'édition de la cellule , tu peux commencer par une apostrophe, puis n'importe quoi derrière et le contenu sera transformé automatiquement en texte. Si tu as déjà tes cellules éditées, une simple macro peux remplacer la valeur de la cellule par ' et la valeur de la cellule :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A (à adapter) de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes I de 1 a DL
  O.Cells(I, "A").Value = "'" & O.Cells(I, "A").Value 'ajoute une apostrophe devant la valeur de la cellule
Next I 'prochaine ligne de la boucle
End Sub
 

chris6999

XLDnaute Impliqué
Bonsoir

Le problème comme je le précise dans mon explication c'est que, malgré que la cellule soit au format texte avant la saisie, excel met la valeur validée au format nombre ou date s'il identifie cette valeur comme étant numérique.
Il doit y avoir un paramètre quelque part que je ne parviens pas à identifier.

Je vais continuer à chercher
Merci encore
 

chris6999

XLDnaute Impliqué
Bonjour Chris, bonjour le forum,

À l'édition de la cellule , tu peux commencer par une apostrophe, puis n'importe quoi derrière et le contenu sera transformé automatiquement en texte. Si tu as déjà tes cellules éditées, une simple macro peux remplacer la valeur de la cellule par ' et la valeur de la cellule :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A (à adapter) de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes I de 1 a DL
  O.Cells(I, "A").Value = "'" & O.Cells(I, "A").Value 'ajoute une apostrophe devant la valeur de la cellule
Next I 'prochaine ligne de la boucle
End Sub


Merci encore Robert mais comme cette valeur date est récupérée par ailleurs je ne peux pas mettre une apostrophe avant la valeur.
Je vais trouver autre chose
Bonne soirée
 

Discussions similaires

Réponses
2
Affichages
304
Réponses
25
Affichages
713