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 :

Code VBA Figer le temps dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2017
    Messages : 11
    Par défaut Code VBA Figer le temps dans une cellule
    Bonjour,

    J'aimerai figer le temps dans la colonne D suivant le mot "ok" en colonne E qui serait donnée par la somme des cellules des colonne F et G.

    Cellule E1 =si((F1+G1)=2;"ok";"").
    Cellule E2 =si((F2+G2)=2;"ok";"").
    .......

    N'étant pas une spécialiste du code VBA serait-il possible de compléter ou de modifier le code ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Intersect(Target, Range("e1:e16")) Is Nothing Then Exit Sub
     
        If Target.Value = "ok" Then Target.Offset(0, -1).Value = Time
     
    End Sub
    Merci.
    Bonne journée.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Réagit au changement de valeurs dans les colonnes F ou G

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("f1:f16")) Is Nothing Then
            If Target.Offset(0, -1).Value = "ok" Then Target.Offset(0, -2).Value = Time Else: Target.Offset(0, -2).Value = ""
        ElseIf Not Intersect(Target, Range("g1:g16")) Is Nothing Then
            If Target.Offset(0, -2).Value = "ok" Then Target.Offset(0, -3).Value = Time Else: Target.Offset(0, -3).Value = ""
        End If
    End Sub
    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2017
    Messages : 11
    Par défaut
    Bonjour Arthuro83.
    Ne serait-il pas possible de réagir juste sur le "OK" en colonne E;
    Pour pouvoir l'adapter à plusieurs tableaux.

    Merci.

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonsoir,

    Vous pouvez essayer ceci, mais cela va réagir à chaque fois que l'on modifie une valeur entrant dans la composition d'une formule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option compare text
    Private Sub Worksheet_Calculate()
        For i = 1 To 16
            If Cells(i, "E") = "Ok" Then Cells(i, "D") = Time Else: Cells(i, "D") = ""
        Next i
    End Sub
    Cdlt

  5. #5
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2017
    Messages : 11
    Par défaut
    Re,

    Ca fonctionne, mais ça ne fige pas le temps.
    Quand je rentre une donnée dans la ligne du dessous toutes les heures change.
    N' y a-t-il pas moyen de figer l'heure avec ce code.
    Merci.

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Compare Text
    Private Sub Worksheet_Calculate()
        For i = 1 To 16
            If Cells(i, "E") = "Ok" And Cells(i, "D") = "" Then Cells(i, "D") = Time
        Next i
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2017
    Messages : 11
    Par défaut
    Merci,
    Problème résolu.
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. répéter le même code en fonction du nom dans une cellule
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/02/2009, 09h44
  2. Savoir le code couleur de la valeur dans une cellule.
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/01/2009, 13h36
  3. comment en VBA mettre les mots dans une cellule en oblique
    Par antoine.dandois dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2007, 17h10
  4. [VBA] aligner le texte dans une cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/01/2006, 17h07
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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