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

OpenOffice & LibreOffice Discussion :

Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    À distance
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : À distance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Bonjour à toutes et tous.

    Je suis novice en Basic.
    Suite à des longues recherches pour obtenir une horloge dynamique (horloge actuelle qui s'affiche sur le bureau) sur une feuille de calculs je tombé sur une horloge en VBA.
    Je ne veux pas utiliser < l'Option VBA Support 1 > mais un code propre au Basic.

    Je demande votre aide pour effectuer la conversion.

    D'avance merci


    Voici le code :

    Dim marche As Boolean

    Sub horlogeDynamique()

    marche = (Not marche)
    Do While marche = True
    DoEvents
    Range("b4") = Now
    Loop

    End Sub

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 298
    Par défaut
    Sub horlogeDynamique()
    Dim marche As Boolean
    marche = (Not marche)
    Do While marche = True
    DoEvents
    Range("b4") = Now
    Loop

    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    À distance
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : À distance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Par défaut
    Bonjour mach1974,

    Merci pour ta réponse mais le code est toujours en VBA.
    Je voudrais un code équivalent en BASIC pour LibreOffice Calc.

    Salut.

  4. #4
    Membre Expert
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 294
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 294
    Par défaut
    Pour faire ce genre de chose, il faut passer par un timer.
    Ce qui peut se faire simplement en installant l'extension EasyDev

  5. #5
    Membre habitué
    Homme Profil pro
    À distance
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : À distance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Bonsoir à toutes et tous,

    Après quelques recherches, j'ai adapté la macro au format Basic, elle fonctionne.
    Cependant en utilisant la formule ci-après pour un tirage aléatoire.

    {=INDEX(B7:B13&" "&A7:A13;ALEA.ENTRE.BORNES(1;NBVAL(A7:A13));0)}

    Elle s'actualise avec la touche "F9" ou tout simplement en effectuant une action dans le classeur.

    Une fois la macro de l'horloge est lancée, le tirage ne s'arrête pas, elle tourne en boucle indéfiniment jusqu'à l'arrêt de la macro.
    J'ai constaté que la boucle "Do While => Loop" provoque cette action.

    J'ai aussi une autre macro qui faut lancer avec un bouton.
    La boucle "Do While => Loop" est présente également.

    Je demande votre aide pour remédier à ce phénomène.

    D'avance MERCI.


    Bonne soirée à toutes et à tous.
    Fichiers attachés Fichiers attachés

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 221
    Par défaut
    Hello,
    ben c'est normal que ton tirage se mette en route quand tu mets en oeuvre l'horloge : a chaque fois que tu mets à jour l'heure dans ton classeur cela déclenche un tirage

    Tu n'as pas pris en compte le conseil de Bidouille . Le souci avec le basic c'est qu'il est monotâche. Par contre en utilisant des macros en python ou EasyDev (qui permet d'exécuter du python avec du code Basic) on peut faire du multitâche c'est à dire exécuter plusieurs macros à la fois. Dans ce cas tu pourrais avoir une macro qui tourne en tâche de fond qui affiche l'heure et au lieu d'avoir une formule pour le tirage aléatoire tu pourrais avoir une macro.

    Nom : TirageAleatoire.gif
Affichages : 426
Taille : 128,4 Ko


    Ami calmant, J.P

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

Discussions similaires

  1. [OpenOffice][Tableur] Transformer une macro VBA pour l'utiliser avec LibreOffice
    Par harsss dans le forum OpenOffice & LibreOffice
    Réponses: 12
    Dernier message: 02/07/2016, 16h53
  2. Problème lors de la 1ère utilisation d'une macro VBA pour copie de feuille
    Par youp_youp_ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2014, 10h54
  3. Réponses: 1
    Dernier message: 31/12/2009, 11h22
  4. Réponses: 4
    Dernier message: 19/03/2009, 09h57
  5. Transformer une macro VBA en .exe ?
    Par BBe8127 dans le forum Général VBA
    Réponses: 4
    Dernier message: 05/03/2009, 11h36

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