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 :

Figer fonction "MAINTENANT()"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut Figer fonction "MAINTENANT()"
    Bonjour,

    Je cherche à créer une liste qui figerai le temps en colonne C pour chaque saisie en colonne B et ceci en centième de seconde.

    J'utilise la formule =SI(B2="";"";MAINTENANT()) mais à chaque saisie tout est rafraichit à l'heure de la dernière saisie.

    Je ne peux pas utiliser les touches Ctrl pour figer car j'ai besoin de remplir très rapidement cette liste dans le cadre de chrono analyse, c.-à-d. mesurer des temps de l'ordre de de 5 à 10 secondes voir moins !!!! Donc je pensais à la VBA donc je connais que les balbutiements

    Merci d'avance pour votre aide.

    Vous trouverez le fichier ci dessous.

    Chrono analyse.xlsm

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    MAINTENANT() en VBA est représenté par la fonction Now

    donc en reprenant ta formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C2") = IIf(Range("B2") = "", "", Now)
    Ca inscrira uniquement la valeur, sans formule volatile qui va se rafraichir

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut
    Merci,

    Mes connaissances VBA étant qu'au début de ma petite formation autodidacte, pourriez vous me dire comment appliquer ce code pour la colonne C entière ou du mois pour 200 lignes ????

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Tout dépend le contexte d'utilisation

    si c'est appuyer sur un bouton pour lancer le traitement, ou si ça doit être effectué dans d'autres circonstances

    dans tous les cas, ça se résume à une boucle itérée 200 fois

    admettons que ça soit de C2 à C201

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub toto()
    Dim i As Long
    Application.ScreenUpdating = False
        With ThisWorkbook.Worksheets("Feuil1") ' adapter le classeur / la feuille
            For i = 2 To 201
                .Cells(i, 3).Value = IIf(.Cells(i, 2).Value = "", "", Now)
            Next i
        End With
    Application.ScreenUpdating = True
    End Sub

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target as Range) 
        If Target.Column = 2 Then Target.Offset(0, 1).Value =  Target.Offset(0, 1).Value
    End Sub
    A placer dans le module de la feuille concernée dans VBE.

    Chaque fois que tu feras une saisie en colonne B, ça figera la valeur en colonne C de la même ligne.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Désactive les évènements pour éviter un second appel ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut
    Un grand merci pour vos solutions.

    J'ai utilisé la méthode de Menhir.

    J'espère un jour pouvoir arriver à cela par moi-même mais la route est encore longue.

    Cordialement.

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

Discussions similaires

  1. Fonction Replace pour quote
    Par piero53 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 17/11/2009, 01h19

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