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 :

Formule Vba pour zone de texte [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Dav1961
    Homme Profil pro
    Futur retraité
    Inscrit en
    Septembre 2022
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Futur retraité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 132
    Par défaut Formule Vba pour zone de texte
    Bonjour le forum,

    Je viens requérir votre aide afin de remplir une zone de texte (pas une TextBox, mais une zone de texte par insertion "zone de texte").
    Dans cette zone je souhaite avoir la date du jour et l'heure sous cette forme :

    Aujourd'hui nous sommes le : jeudi 22 décembre 2022
    et il est exactement : 17:51:20

    L'heure doit se mettre à jour à la manière d'un chronomètre.

    Je vous joint un petit fichier exemple. C'est peut-être la fatigue, mais je peine à trouver la solution en Vba.
    Merci par avance pour votre aide

    EssaiZoneTexte.xlsm

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Il faut écrire la formule dans une cellule, éventuellement masquée par la zone de texte, sélectionner la zone de texte et utiliser =cellule dans la barre de formule, cellule étant l'adresse de la cellule contenant la formule

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 510
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 510
    Par défaut
    Salut,

    Une textbox est un objet Shape, une vilaine bestiole d'après ce que j'ai pu lire à droite et à gauche (pas de moyen simple pour mettre le texte à jour).

    J'ai trouvé quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Sh As Excel.Shape
    Set Sh = Feuil1.Shapes("TextBox 1")
     
    Dim Chrs As Excel.Characters
    Set Chrs = Sh.TextFrame.Characters()
     
    Chrs.Text = "some text"

  4. #4
    Membre confirmé Avatar de Dav1961
    Homme Profil pro
    Futur retraité
    Inscrit en
    Septembre 2022
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Futur retraité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 132
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour

    Il faut écrire la formule dans une cellule, éventuellement masquée par la zone de texte, sélectionner la zone de texte et utiliser =cellule dans la barre de formule, cellule étant l'adresse de la cellule contenant la formule
    Bonjour,
    Il me semble que c'est ce que j'ai fait dans mon fichier joint.
    Merci toutefois pour ta participation

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    RE

    Je n'ouvre pas toujours les fichiers...

    Une unique formule suffit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CONCAT("Aujourd'hui nous somme le ";TEXTE(AUJOURDHUI();"jjjj jj mmmm aaaa");" ";CAR(10);" et il est exactement ";(TEXTE(MAINTENANT();"hh:mm:ss")))
    Cependant que ce soit en formule ou VBA cela nécessite un timer pour raffaichir et en général cela sature plus ou moins le fonctionnement d'Excel

  6. #6
    Membre confirmé Avatar de Dav1961
    Homme Profil pro
    Futur retraité
    Inscrit en
    Septembre 2022
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Futur retraité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 132
    Par défaut
    Merci pour votre réponse, je vais essayer dans mon projet.

    Par contre je bute sur une autre formule.

    "I19" = si(cellule active dans la plage (D8:J13) est égale à une cellule de Fériés[Date] alors "JOUR FERIE" sinon "JOUR NORMAL".

    Féries[Date] étant une zone nommée d'un tableau structuré.

    Peux-tu m'aider s'il te plaît ? Mon cerveau marche au ralenti en ce moment...
    Je t'en remercie par avance

  7. #7
    Membre confirmé Avatar de Dav1961
    Homme Profil pro
    Futur retraité
    Inscrit en
    Septembre 2022
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Futur retraité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 132
    Par défaut
    J'ai réussi à faire ce code mais le résultat en H19 est toujours "JOUR NORMAL".
    Le format cellule dans D3:J13 est Date "jj"
    et celui des cellules G4:G16 est Date "jj/mm/aaaa"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Cel as Range
    For Each Cel In Worksheets("Calend").Range("D8:J13")
            If Not IsError(Application.Match(Cel.Value, Worksheets("Données").Range("G4:G16"), 0)) Then
                [H19].Value = "JOUR FERIE"
            Else
                [H19].Value = "JOUR NORMAL"
            End If
        Next Cel
    Merci par avance pour votre aide

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 245
    Par défaut
    Hello,
    Citation Envoyé par Dav1961 Voir le message
    Je viens requérir votre aide afin de remplir une zone de texte (pas une TextBox, mais une zone de texte par insertion "zone de texte").
    Dans cette zone je souhaite avoir la date du jour et l'heure sous cette forme :

    Aujourd'hui nous sommes le : jeudi 22 décembre 2022
    et il est exactement : 17:51:20

    L'heure doit se mettre à jour à la manière d'un chronomètre.
    Avec ce code dans un module VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Dim SchedRecalc As Date
     
     
    Sub Recalc()
    With ActiveSheet.Range("A1")
    .Value = Format(Time, "hh:mm:ss AM/PM")
    End With
    Call SetTime
    End Sub
     
     
    Sub SetTime()
    SchedRecalc = Now + TimeValue("00:00:01")
    Application.OnTime SchedRecalc, "Recalc"
    End Sub
     
     
    Sub Disable()
    On Error Resume Next
    Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False
    End Sub
    et la formule à 78chris voici ce que l'on peut obtenir :
    Nom : zonetexte.gif
Affichages : 1182
Taille : 194,1 Ko

    Les soucis sont :
    1 - Quand on fait de l'édition dans la feuille active Excel l'heure ne se met plus à jour.
    2 - Toutes les secondes le curseur busy apparaît furtivement.

    Ami calmant, J.P

  9. #9
    Membre confirmé Avatar de Dav1961
    Homme Profil pro
    Futur retraité
    Inscrit en
    Septembre 2022
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Futur retraité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 132
    Par défaut
    Bonjour jurassic pork,

    Merci beaucoup pour ton aide.
    Je vais tester ça plus tard.

    Joyeuses fêtes de fin d'année

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

Discussions similaires

  1. Formule VBA pour modifier contenu celules
    Par Phoceens dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/03/2009, 18h37
  2. Réponses: 1
    Dernier message: 04/11/2008, 14h37
  3. VBA et zone de texte
    Par Wanted_Gulli dans le forum VBA Access
    Réponses: 13
    Dernier message: 15/05/2007, 18h33
  4. Masque de saisie pour zone de text
    Par achos dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/02/2007, 10h34
  5. javascript pour zone de text
    Par ridondo dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/12/2005, 16h43

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