Transformer date texte en date chiffre

Mike_81 - 30 déc. 2012 à 13:52 - Dernière réponse :  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.
Afficher la suite 

4 réponses

Répondre au sujet
ucfoutu 18024 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 7 janvier 2018 Dernière intervention - 30 déc. 2012 à 14:05
0
Utile
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.
Commenter la réponse de ucfoutu
0
Utile
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
Commenter la réponse de Mike_81
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscriptionModérateurStatut 28 août 2015 Dernière intervention - 30 déc. 2012 à 16:21
0
Utile
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)
Commenter la réponse de cs_Jack
0
Utile
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.
Commenter la réponse de Mike_81

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.