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

  1. #1
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    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 averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 269
    Points : 370
    Points
    370
    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
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    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 chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    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
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  5. #5
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    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 éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 007
    Points : 9 401
    Points
    9 401
    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 : 137
Taille : 128,4 Ko


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    Par défaut
    Bonsoir Ami calmant, J.P,

    Je suis débutant pour les macros. J'ai réussi à convertir du VBA en Basic (Horloge dynamique).
    J'ai apprécié et suivi ton conseil mais pour l'heure, je suis dans l'incapacité de te dire si on peut écrire dans une cellule ou juste obtenir le contenu de celle-ci avec EasyDev.
    Ce que tu as rédigé concernant EasyDev est excellent mais n'oublie pas que je débute.

    Cependant je souhaiterais savoir si :
    - on peut écrire dans une cellule ou juste utiliser sa valeur.
    - on peut utiliser les deux langages Basic et Python via EasyDev dans la même sub.

    Je te remercie.

    Très bonne soirée

    Nazée

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 007
    Points : 9 401
    Points
    9 401
    Par défaut
    Hello,
    Citation Envoyé par nazée Voir le message
    B
    Cependant je souhaiterais savoir si :
    - on peut écrire dans une cellule ou juste utiliser sa valeur.
    - on peut utiliser les deux langages Basic et Python via EasyDev dans la même sub.
    1 - pas de problème pour écrire
    2 - Avec EasyDev on utilise seulement le basic. EasyDev fait l'interface avec du python.

    En pièce jointe ton classeur avec du code basic qui utilise EasyDev (celui-ci doit être installé).
    Dans le classeur on utilise des plages nommées :
    1 - Liste des Noms Prénoms -> Noms
    2 - Heure affichée -> Heure
    3 - Affichage du Prénom Nom tiré aléatoirement -> Tirage

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Bonjour Ami calmant, J.P,

    Je te remercie infiniment pour ces macros qui m'ont permis de voir un peu mieux.
    Surtout de ne pas essayer de faire qu'avec des formules.

    Je vais approfondir mon utilisation de macros et ton aide m'apporter une bonne motivation.

    Merci encore.

    Nazée

  10. #10
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Bonsoir Ami calmant, J.P,

    Je te prie m'excuser car j'étais surchargé de travail ces derniers jours.

    Je viens tester la macro "MonHorloge" et elle me retourne une erreur d'exécution (ci-jointe) de scripts manquants.
    Cela fait une journée que je cherche à résoudre cette erreur malheureusement sans succès.

    Peux-tu s'il te plait m'apporter une nouvelle fois ton aide précieuse ?

    D'avance merci.


    Nazée
    Images attachées Images attachées  

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 007
    Points : 9 401
    Points
    9 401
    Par défaut
    Hello,
    Quelle version d'OpenOffice ou de LibreOffice utilises-tu ? et quelle version d'EasyDev ? Sous quel O.S es-tu ?
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  12. #12
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    A mon avis, l'auteur lit depuis le départ en diagonale et l'extension n'a pas été installée.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  13. #13
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Bonsoir,

    J'utilise LibreOffice 7.6.3.2 avec Windows 10.
    J'ai la version 2.7.0 de "EasyDev" dans ma configuration.


    Bonne soirée,

    Nazée
    Images attachées Images attachées  

  14. #14
    Futur Membre du Club
    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
    Points : 5
    Points
    5
    Par défaut Transformer une macro VBA pour l'utiliser en Basic pour LibreOffice Calc
    Re-Bonsoir Ami calmant, J.P,

    Excuses-moi.
    Je n'avais pas installé la dernière version de "EasyDev". Je viens d'installé la version 2.7.3 et cela fonctionne.

    Encore une nouvelle fois désolé et un GRAND MERCI pour ton aide et ce que tu fais.

    Je ferme la discussion car tout est bon.

    Excellent soirée,

    Nazée

+ 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