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 02/02/2012, 11h32   #1
Invité régulier
 
Inscription : janvier 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 15
Points : 5
Points : 5
Par défaut Date automatique via une macro

Bonjour à tous,

Voila, je souhaite créer une macro qui puisse me permettre de remplir une cellule spécifique de mon fichier excel avec la date du jour + heure.

En détail : quand je complète la celulle B4 en feuille1 par "nom1" ou "nom2" ou "nom3", la date du jour + heure se renseignent automatiquement en H4 de feuille1 et de la feuille2

Etant très très très débutant sur les macros, pouvez vous m'indiquer si cela est possible et m'indiquer le code qui permettrait de réaliser cela !

Merci d'avance pour votre aide !
nico5065 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h35   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Salut,

oui c'est tout à fait envisageable.

Avant de te proposer du code, peux-tu nous dire si la date en question doit :
-être mise à jour à chaque modification de la cellule ?
-être supprimée si la valeur entrée ne fait pas partie des "nom1", 2 ?


La fonction qui retourne la date et l'heure est Now.
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h44   #3
Invité régulier
 
Inscription : janvier 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 15
Points : 5
Points : 5
Merci Jpcheck,

Effectivement si la valeur de la cellule B4 est modifiée, la date devra être mise à jour.

Et bien vu également, quand la valeur est différente de "nom1" ... ou est vide la date devra être supprimée. En faite je vais utiliser une liste déroulante pour "nom1".

PS : j'ai ajouté une petite spécification en plus dans mon premier message.
nico5065 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h49   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Tu peux gérer les modifications de valeur avec l'event OnChange de ta worksheet.

Reste à spécifier la cellule qui doit etre checker (la cellule se nomme target dans l'event) et à appliquer avec un select case le changement de valeur de ta date
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h05   #5
Invité régulier
 
Inscription : janvier 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 15
Points : 5
Points : 5
Waouh merci,

ça semble simple comme ça mais, mon problème c'est que je ne suis pas capable de coder ce que tu viens de m'indiquer :s

Je suis vraiment un gros débutant
nico5065 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h10   #6
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Je t'encourage à profiter des ressources DVP à ta disposition

http://excel.developpez.com/cours

Ici un exemple de code sur l'evènement dont je t'ai parlé
http://silkyroad.developpez.com/VBA/...Feuille/#LII-E
Ca devrait te faire avancer
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 18h40   #7
Invité régulier
 
Inscription : janvier 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 15
Points : 5
Points : 5
Voila ce que j'ai pu en faire :

Code :
1
2
3
4
5
6
7
8
9
10
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Application.Intersect(Target, Range("b4:d" & [d65000].End(xlUp).Row)) Is Nothing Then
        If Target = "Market" Then
            Target.Columns.Offset(-2, 5) = Now
        Else
            Target.Columns.Offset(-2, 5).ClearContents
        End If
    End If
End Sub
T'en penses quoi ?
nico5065 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 18h43   #8
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
C'est pas mal

Reste à l'adapter si tu veux plusieurs cas de valeur dans ta cellule

De plus, ici tu mets une intersection sur toutes les cellules des colonnes B à D, or il me semble que seule la cellule B4 t''intéresse non ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 19h44   #9
Invité régulier
 
Inscription : janvier 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 15
Points : 5
Points : 5
C'est tout a fait juste !

Mais comment intégrer plusieurs valeurs ? ça marche avec un "or" ?

Par exemple :
Code :
1
2
 
If Target = "Market" or "nom2" Then
Merci pour tes indications
nico5065 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 07h38   #10
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Yep,
un or ou un select case

Code :
If Target.value = "Market" or target.value  = "nom2" Then

ou

Code :
1
2
3
4
Select Case Target.Value:
Case "Market","nom2":
Case Else:
End Select
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h19.


 
 
 
 
Partenaires

Hébergement Web