vba macro transformet date en texte

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
305
Réponses
2
Affichages
468
  • Question Question
Réponses
25
Affichages
1 K
Retour