Lancer automatiquement une macro Excel
Résolu/Fermé
Mistral_13
Messages postés
17
Date d'inscription
vendredi 28 décembre 2007
Statut
Membre
Dernière intervention
11 février 2008
-
28 déc. 2007 à 10:22
Mistral_13 Messages postés 17 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 11 février 2008 - 31 déc. 2007 à 09:21
Mistral_13 Messages postés 17 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 11 février 2008 - 31 déc. 2007 à 09:21
Bonjour,
Dans une feuille Excel la date du jour s'affiche automatiquement dans la cellule "A1".
Je souhaiterais que si je saisie une valeur alphanumérique dans la cellule "B2", la cellule "A2" prenne la valeur de la date du jour de "A1".
J'ai créé une macro qui copie la valeur de "A1" dans la cellule "A2" mais comment faire pour lancer cette macro automatiquement dès que "B2" ne sera plus vide.
Merci pour votre aide.
Mistral-13
Dans une feuille Excel la date du jour s'affiche automatiquement dans la cellule "A1".
Je souhaiterais que si je saisie une valeur alphanumérique dans la cellule "B2", la cellule "A2" prenne la valeur de la date du jour de "A1".
J'ai créé une macro qui copie la valeur de "A1" dans la cellule "A2" mais comment faire pour lancer cette macro automatiquement dès que "B2" ne sera plus vide.
Merci pour votre aide.
Mistral-13
A voir également:
- Lancer automatiquement une macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Word et excel gratuit - Guide
2 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
28 déc. 2007 à 22:18
28 déc. 2007 à 22:18
bonjour
Pour obtenir la date du jour en colonne A lorsque tu saisis la colonne B en non numérique tu peux utiliser une macro événementielle :
Pour obtenir la date du jour en colonne A lorsque tu saisis la colonne B en non numérique tu peux utiliser une macro événementielle :
Private Sub Worksheet_Change(ByVal sel As Range) If sel.Column = 2 And sel.Count = 1 Then If sel.Value <> "" And Not IsNumeric(sel.Value) Then sel.Offset(0, -1).Value = Date End If End If End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
29 déc. 2007 à 08:18
29 déc. 2007 à 08:18
bonjour
Tu peux simplifier ainsi
Moins il y a de code et plus c'est efficace et facile à maintenir.
Tu peux simplifier ainsi
Private Sub Worksheet_Change(ByVal sel As Range) If sel.Column = 14 And sel.Count = 1 Then If sel.Value <> "" And Not IsNumeric(sel.Value) Then sel.Offset(0, -1).Value = Date Else sel.Offset(0, -1).Value = "" End If End If End Sub
Moins il y a de code et plus c'est efficace et facile à maintenir.
Mistral_13
Messages postés
17
Date d'inscription
vendredi 28 décembre 2007
Statut
Membre
Dernière intervention
11 février 2008
31 déc. 2007 à 09:21
31 déc. 2007 à 09:21
Bonjour,
C'est super! Ca marche super bien et c'est exactement ce que je cherchais.
Un grand merci à toi pour cette solution.
C'est super! Ca marche super bien et c'est exactement ce que je cherchais.
Un grand merci à toi pour cette solution.
29 déc. 2007 à 08:02
Un grand merci à toi Gbinforme c'est exactement ce que je souhaitais.
J'ai modifié ton code non seulement pour l'adapter à ma feuille mais aussi pour effacer la date en cas d'effacement de la cellule située à droite de la date.
N'étant qu'un débutant en VBA Excel peux tu me donner ton avis sur ma façon de faire. Voici ce que j'ai fait :
Private Sub Worksheet_Change(ByVal sel As Range)
If sel.Column = 14 And sel.Count = 1 Then
If sel.Value <> "" And Not IsNumeric(sel.Value) Then
sel.Offset(0, -1).Value = Date
End If
End If
If sel.Column = 14 And sel.Count = 1 Then
If sel.Value = "" Then
sel.Offset(0, -1).Value = ""
End If
End If
End Sub
D'avance merci.
Mistral 13