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 22/11/2011, 18h55   #1
Invité régulier
 
Homme CHRISTOPHE
Inscription : février 2008
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme CHRISTOPHE
Localisation : France

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : février 2008
Messages : 16
Points : 6
Points : 6
Par défaut Transformation d'une donnée de type date en format standard

Bonsoir,

J'ai conçu un programme sous excel 2007 en vba qui à un moment:
1 - Récupère dans une cellule A de type date, la date au format jj/mm/aaaa et la met dans une variable de type string.
2- copie la date dans la cellule b de type standard de la façon suivante : valeur de la cellule b " - " valeur de la cellule A

Il peut ainsi y avoir avoir dans la cellule b plusieurs dates à ce format normalement: jj/mm/aaaa - jj/mm/aaaa - jj/mm/aaaa

Malheureusement pour une raison que je comprends pas, la première date et donc le premier copie coller se colle comme une date au format anglais soit mm/jj/aaaa

et bien sûr, avec une facheuse conséquence en lecture

Avez vous une explication et une correction possible ?

Merci pour votre aide
chrisaccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 21h48   #2
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
Montre nous ton code ..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 23h26   #3
Invité régulier
 
Homme CHRISTOPHE
Inscription : février 2008
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme CHRISTOPHE
Localisation : France

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : février 2008
Messages : 16
Points : 6
Points : 6
bonsoir

ci desous le code :
la variable qui sert à déplacer est datr.
D

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
numero = ""
numero = ActiveCell.Row
'verifie si affaire pas close
If Range("i" & numero).Value = "" Then
Else
    MsgBox ("Cet écart est clos, vous ne pouvez faire de relance"), vbCritical, "RELANCE"
    Sheets("PARAMETRES").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets("LISTE").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Exit Sub
End If
 
osr = ""
prestataire = ""
typ = ""
description = ""
datr = ""
descriptionr = ""
dat1mail = ""
 
 
osr = Cells(numero, 1).Value
prestataire = Cells(numero, 2).Value
typ = Cells(numero, 3).Value
description = Cells(numero, 4).Value
dat = Cells(numero, 5).Value
dat1mail = Cells(numero, 6).Value
datr = Cells(numero, 7).Value
descriptionr = Cells(numero, 8).Value
If Cells(numero, 6).Value = "" Then echange = "sans email" Else echange = "avec email"
 
Load UserForm2
UserForm2.hosr.Value = osr
UserForm2.hprestataire.Value = prestataire
UserForm2.htype.Value = typ
UserForm2.hdate.Value = dat
UserForm2.hdescription.Value = description
If dat1mail = "" Then UserForm2.datemail1.Value = "PAS DE MAIL ENVOYE" Else UserForm2.datemail1.Value = dat1mail
UserForm2.hdrelance.Value = datr
UserForm2.hmessages.Value = descriptionr
If typ = "REFUS ETUDE" Then UserForm2.echang.Visible = False
If echange = "avec email" Then UserForm2.echang.Visible = False
UserForm2.Show
 
 
End Sub
 
Sub suite_relance()
 
message = UserForm2.message.Value
 
If typ = "REFUS ETUDE" Then
Else
    If echange = "sans email" Then
        If UserForm2.echangoui Then
            echange = "echange avec email"
        Else
            'test si donnée rempli
            If UserForm2.echangnon Then
            Else
                MsgBox "Vous n'avez pas répondu à la question concernant l'échange", vbCritical, "ALERTE RELANCE"
            Exit Sub
            End If
        End If
    End If
End If
 
 
'test si donnée rempli
If message = "" Then
MsgBox "Vous n'avez pas saisi de COMMENTAIRES", vbCritical, "ALERTE RELANCE"
Exit Sub
End If
 
Unload UserForm2
 
textechange = ""
 
'remplir la feuille LISTE
 
Sheets("LISTE").Activate
If echange = "echange avec email" Then Cells(numero, 6).Value = Range("k2").Value
If datr = "" Then Cells(numero, 7).Value = Date Else Cells(numero, 7).Value = datr & " - " & Date
If descriptionr = "" Then Cells(numero, 8).Value = message Else Cells(numero, 8).Value = descriptionr & " - " & message
Cells(numero, 10).Value = Date
Cells(numero, 11).Value = Cells(numero, 11).Value + 1
petite erreur de manip, alors explications : Dans la premire sub la variable datr récupère l'ensemble des dates et dans le second elle modifie à nouveau la cellule
chrisaccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 10h45   #4
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,

Citation:
Malheureusement pour une raison que je comprends pas, la première date et donc le premier copie coller se colle comme une date au format anglais soit mm/jj/aaaa
vois ceci :

Comprendre et gérer les dates sous Excel et en VBA


Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

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
Vieux 23/11/2011, 11h00   #5
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Essaie avec
Code :
Format(dt, "dd/mm/aaaa")
plutôt que directement la date dt au moment où tu l'ajoute dans la cellule.

En regardant ton code c'est ligne 84 et avec datr ou Date à la place de dt dans ce que je te disais
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 09h00   #6
Invité régulier
 
Homme CHRISTOPHE
Inscription : février 2008
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme CHRISTOPHE
Localisation : France

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : février 2008
Messages : 16
Points : 6
Points : 6
Bonjour,

Merci pour ton aide Zebreloup,

en utilisant ta solution j'ai réussi à bloquer le format comme je le souhaitais.
Pour explication : j'ai rajouter une variable "dates" de type string
J'ai défini son format comme le propose Zebreloup et je me ser de cette dernière pour écrire dans les tableaux

merci pour ton aide
chrisaccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web