Transformer date texte en date chiffre

Mike_81 - 30 déc. 2012 à 13:52
 Mike_81 - 30 déc. 2012 à 16:29
Bonjour,

je reçois régulièrement vos mails d'information, mais là je sèche. J'ai un peu de mal avec le vba qui me parrait pourtant parfaitement addapté à mes besoins

J'ai créer sur une feuille (2) un menus déroulant des 12 mois
ou j'ai appliqué le code suivant:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
Sheets("Base").Range("B16") = Target
End If
End Sub

J'ai créer sur une feuille (1) un tableau, avec une cellule de base, pour d'autres feuilles contenant des calendriers et ou j'ai appliqué le code suivant:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$16" Then
Sheets("Taux qualité ferroviaire").Range("B1") = Target
End If
End Sub

Je n'arrive pas transformer "If Target.Address = "$B$16" Then" de façon à ce que ce ne soit pas le mois qui apparaisse mais le chiffre correspondant au mois. C'est à dire pour janvier le chiffre 1, ect..

Dois-je rester sur le même module et modifier mon code ou créer un autre module afin de mettre un autre code. Mais quel code.

J'en profit pour vous souhaiter à tous de bonne fête de fin d'année et que l'année 2013 soit toujours aussi riche d'informations de qualité pour les néophites que nous sommes.

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 déc. 2012 à 14:05
Bàonjour,
je suis toujours estomaqué de constater la confusion entre VB6, la présente section,
Forum > Visual Basic 6
et VBA, dont la section correspondante est Langages dérivés > VBA !
Bref ...
Pour en revenir à ton problème (du VBA, pas du VB6) :
1) apprends à préciser systématiquement la propriété utilisée ( = target me fait mal au coeur, personnellement)
2) intéresse-toi à la fonction Month (ton aide en VBA)
3) on reste quand-même dans le flou, puisque tu ne précise pas les formats des cellules !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonjour,

Réponse rapide qui renvois à ses lacune. Désolé de cette méprise.
Je serais plus atentif la prochaine fois.
Je vais donc m'intérésser à l'aide en VBA.

Bonne journée
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 déc. 2012 à 16:21
Salut

Catégorie modifiée

Que signifie / Que fait cette instruction, d'après toi :
Sheets("Base").Range("B16") = Target
Pour plus de clarté, il est préférable d'écrire des syntaxes complètes :
Sheets("Base").Range("B16").Value2 = Target.Value2

Ah, tiens, il utilise .Value2.
Y aurait-il un .Value tout court ?
Quelle différence ?
En écrivant tout, on s'oblige à se poser des questions, et notamment à s'intéresser au format des données ... et à celle que l'on souhaite.
(voir aussi .Text)

Dans ton énoncé, on devine que B1 ou B16 sont des dates ?

En VBA, il ne faut pas confondre la donnée stockée dans une cellule avec la donnée affichée dans une cellule, ce sont deux choses différentes.
Exemple :
La date, en VBA, est toujours stockée sous forme d'un chiffre de type Double. Par contre, pas vraiment pratique (mais ça dépend des besoins), d'où le recours au format de cellule pour changer l'affichage.
Mais, quand on s'adresse à cette cellule, c'est toujours le chiffre qui est là (voir la différences des propriétés .Value, .Value2 et .Text).

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Bonjour,

Merci pour cette réponse et cette précision. j'ai été trop vite sans détaillé.
mais je me lance dans le VBA que je trouve très bien.

Je détaillerais mieux à l'occasion.

Bonne fête de fin d'année.
0
Rejoignez-nous