Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2011, 18h12   #1
Membre à l'essai
 
Inscription : juillet 2009
Messages : 102
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : juillet 2009
Messages : 102
Points : 22
Points : 22
Par défaut Extraction du mois et du jour d'une date pour création d'un code numérique

Bonjour,

J'ai un nouveau projet excel qui va nécessiter l'utilisation de macro.

Dans un premier temps, j'aimerais pouvoir créer un code numérique de manière automatique.

A partir d'une date contenue dans une cellule, je voudrais extraire le mois et le jour puis y ajouter un nombre à 4 chiffres

par exemple si la date 16/09/2011, mon code sera 0916XXXX.

Ma question est comment extraire les deux chiffres mois d'une date et les deux chiffres jour d'une date.

Merci pour votre aide.
altra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 18h21   #2
Membre confirmé
 
Avatar de lelensois16
 
Homme Romain M.
Étudiant
Inscription : avril 2009
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Romain M.
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 167
Points : 204
Points : 204
Bonjour,

Voici le code :


Code :
1
2
3
4
Public Function RetourneDate(DateM As Date, Numéro As String) As String
'Date étant la date à convertir , Numéro le numéro à rajouter
RetourneDate = Left(DateM, 2) & Format(Month(DateM), "00") & Numéro
End Function
Bien cordialement
lelensois16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 01h05   #3
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Il faut éviter d'utiliser des fonctions de manipulations de chaines ( left, right, mid..) pour extraire les éléments d'une date .. il y as des fonctions prévues pour cela ( Day, Month , Year ..)

bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 11h30   #4
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 675
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 675
Points : 7 668
Points : 7 668
Bonjour à tous,

Le retour demandé étant une String, Format me semble plus indiqué:
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 08h11   #5
Membre à l'essai
 
Inscription : juillet 2009
Messages : 102
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : juillet 2009
Messages : 102
Points : 22
Points : 22
Bonjour à tous,

Merci pour vos propositions.

J'avais pour ma part trouvé quelque chose d'équivalent en utilisant DatePart mais il fallait que j'unisse le mois et le jour, donc Format semble plus indiqué. Merci

Comment faire si je désire garder le 0 devant le mois lorsque celui est inférieur à dix. Il y a bien mettre le format de cellule en texte, mais je pense que ce n'est pas la seule solution, ni la meilleure.

Concernant le code a 4 chiffres ajouté après la date, j'aimerais que celui ci regarde le code complet (date + 4 chiffres) dans une autre cellule est en fonction de la date (antérieure, postérieure) ajoute ou enlève 1.
Par exemple, si le code est à créer à partir de la date 16/09. Le code précédemment rentré le 16/09 aussi porte le code 09161483. Le second code à créer pour le 16/09 devra être 09161484.

Merci et bonne journée
altra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 08h35   #6
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour,
Right permet de récupérer les caractères de droite
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 15h03   #7
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub gogo()
Dim lngCoddde As Long
Dim lngmonAjout As Long
Dim lngMonResult As Long
 
lngCoddde = Format(Cells(4, 4), "mmdd") 'cellule où figure une date
lngmonAjout = 9999
lngMonResult = lngCoddde & lngmonAjout
 
With Cells(5, 5)
    .NumberFormat = "00000000"
    'If lngMonResult = cells(x,x).value then  lngMonResult= lngMonResult+1 etc... selon contexte **
    .Value = lngMonResult
End With
' ** pour l'ajout ou le retrait,il suffit de faire une opératon de comparaison avec ta cellule cible vu que tu es sur des nombres
 
End Sub
cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web