IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher date du jour à la modification d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Points : 43
    Points
    43
    Par défaut Afficher date du jour à la modification d'une cellule
    Bonjour tout le monde

    Je travail actuellement sur un fichier, voir image ci dessous pour comprendre

    Nom : Image.png
Affichages : 2305
Taille : 5,6 Ko

    Je souhaiterai que lorsque la cellule A22 ou ecore A23 soit différente de vide, la date du jour soit entré dans la cellule d'à coté c'est à dire B22 ou encore B23.
    Et je souhaite le faire en VBA

    merci d'avance

    Bien cordialement
    Images attachées Images attachées  

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 948
    Points : 5 174
    Points
    5 174
    Par défaut
    bonjour
    voir avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Cells(22, 1) <> "" Then Cells(22, 2) = Date
    End Sub

  3. #3
    Membre du Club
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Points : 43
    Points
    43
    Par défaut
    Bonjour Bennasr

    Merci ça fonction en revanche j'ai une question pourquoi on utilise pas Worksheet_Change
    vu que la macro intervient au changement de cellule

    Cdt

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 948
    Points : 5 174
    Points
    5 174
    Par défaut
    je suis autodidacte et débutant donc simplement je sais pas pourquoi
    autre proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$22" Then Exit Sub
    If Target.Value <> "" Then Cells(22, 2) = Date
    End Sub

  5. #5
    Membre du Club
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Points : 43
    Points
    43
    Par défaut
    Débutant ? avec déjà un très bon niveau c'est pas la première fois que tu m'aides

    j'ai une autre question, après je t'embête plus

    je veux que cette macro s'applique a toutes les cellules de la colonne A de A22 à A200, est ce que je dois écrire la ligne pour A22,A23,A24 ? ou existe t-il une autre solution plus simple ?

    Cdt

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 948
    Points : 5 174
    Points
    5 174
    Par défaut
    re
    j'ai une autre question, après je t'embête plus
    pas du tout mon amie, à tout moment et avec plaisir et dans la limite de mes connaissances

    essayez avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, Range("A22:A200")) Is Nothing Then Exit Sub
    If Target.Value <> "" Then Target(, 2) = Date
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Date modification cellule
    Bonjour,
    Dans ma recherche je suis tombé sur cette solution que je souhaite adapter à mon fichier personnel.
    Toutefois, je m'y connais pas beaucoup et je demande :
    1/ où mettre ce code dans un module, ou module classe ?
    2/ Il y a 10 feuilles différentes du fichier où le code devait agir, comment faire ?
    Cordialement.

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Toutefois, je m'y connais pas beaucoup et je demande :
    1/ où mettre ce code dans un module, ou module classe ?
    2/ Il y a 10 feuilles différentes du fichier où le code devait agir, comment faire ?
    Pour la question 1, il faut placer le code dans le module de la feuille (qui est un module de classe)
    Pour la question 2, dans ce cas, il faut utiliser la procédure événementielle Workbook_SheetChange à placer alors dans le module de classe ThisWorkbook. L'argument sh permet de savoir dans quelle feuille a lieu l'événement.

    Pour en savoir plus lés procédures événementielles

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Préciser dans le code les feuilles concernées.
    Merci.
    Ça marche pour l'adaptation automatique du code aux 10 feuilles concernées dans le Workbook.
    Mais n'est il pas possible de préciser dans le code les noms de feuilles en questions qui ont d'ailleurs des noms presque identiques : exemples : donnés A, données B, données C etc.
    Cordialement.

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avez-vous lu les tutoriels que j'ai référencé ?
    Comme je vous l'ai indiqué dans ma précédente réponse, l'argument sh correspond à la feuille où a eu lieu l'événement et donc en utilisant la propriété Name de l'objet sh vous pouvez connaître son nom.
    Il suffit donc d'utiliser une structure décisionnelle telle que If...Then..Else ou Select Case pour décider si pour cette feuille on exécute une tâche ou pas.

    Dans cet exemple on écrira la date du jour si le changement à lieu dans la plage A2;A50 de n'importe quelle feuilles du classeur à l'exclusion des feuilles nommées Accueil et Result et ce à condition que l'on n'ait sélectionné qu'une seule cellule et que celle-ci ne soit pas vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      Select Case LCase(Sh.Name)
         Case "accueil", "result"
         Case Else
           If Not Application.Intersect(Target, Range("A2:A50")) Is Nothing And Target.Count = 1 Then
              If Target.Value <> "" Then Target(, 2) = Date
           End If
      End Select
    End Sub

  11. #11
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Correction de la problématique de Date après modification cellule
    Bonjour et merci pour votre disponibilité manifestée.
    Oui j'ai parcouru le contenu des documents référencés, ils ne m'ont pas transformé en expert mais cela m'a permis de retenir que mon problème a été mal posé, toutes mes excuses :
    1/ Le code agit effectivement quand on saisit dans la même feuille alors que moi je saisis les données dans une Feuille 1 par exemple pour ensuite les renvoyer, par liaisons dans une autre Feuille 2 où je souhaite avoir l'affichage automatique de la date de saisie.
    2/ En détails :
    - Dans la colonne A de ma feuille 2, j'ai de A8:A572 la plage aux cellules vides où j'attends voir s'afficher les dates générées par le code recherché ;
    - Dans la colonne G de la même feuille 2 De G8:G572 se trouve, sous fourme de liens, mes données (résultats d'additions de nombres) saisies dans la feuille 1;
    - Dans cette plage G8:G572 de la colonne G le chiffre "0" est affiché si la valeur d'origine du calcul est nul ou égal à "0" ;
    - Alors, je pense que le code que je cherche c'est pour lire les données de la plage G8:G572 pour ensuite afficher, si le contenu est > 0, la date dans le plage A8:A572 de la même feuille suite à la saisie intervenue dans la feuille 1.
    J'espère avoir été compris.
    Merci d'avance encore une fois.
    Cordialement

Discussions similaires

  1. date du jour ou date de modification d'une cellule ?
    Par sebastien02 dans le forum Excel
    Réponses: 22
    Dernier message: 19/03/2024, 01h46
  2. Date du jour SI modification
    Par vinze60 dans le forum IHM
    Réponses: 6
    Dernier message: 08/10/2008, 13h46
  3. Afficher date du jours
    Par tit_oune dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 10h49
  4. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54
  5. affiche date du jour dans champ texte
    Par pascal.cargouet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/01/2005, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo