Académique Documents
Professionnel Documents
Culture Documents
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions
concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice
(LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions
ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!!
Ont contribué à cette FAQ :
-3-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Type Nom
D'un traitement de texte Traitement de texte
(.odt)
D'un tableur (.ods) Tableur
D'un module de Présentation
présentations (.odp)
D'un module de dessins Dessin
(.odg)
D'un module pour les Base de données
bases de données (.odb)
D'un éditeur d'équations Formule
mathématiques
Est-il possible de lire les fichiers AOO et LibO si l'application n'est pas installée sur le poste ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Il existe une visionneuse pour lire les documents issus du Traitement de texte (formats .sxw et .odt) si une
des deux suites n'est pas installé sur le poste.
Il s'agit de Visioo-Writer.
-4-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sinon, il existe des versions portables des suites bureautiques, vous pouvez en trouver ici PortableApps,
le site est en anglais, mais les suites bureautiques sont en français.
Cela consiste à décompresser un fichier sur le répertoire, qui installera l'application.
Vous pouvez aussi le faire sur une clé USB ou un disque dur externe.
Allez dans le menu « Outils » et « Options », ensuite dans la fenêtre qui apparaît sélectionnée « Données
d'identité », tous les champs ne sont pas nécessaire, mais le nom et le prénom sont nécessaires pour les
cas cités ci-dessus.
-5-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
5 Dans le champ « Format de fichier par défaut » vous pouvez spécifier le format d'enregistrement
pour chaque type de document.
lien : Grammalecte
• menu « Fichier » ;
• « Assistants » ;
• « Convertisseur de documents ;
• sélectionnez les types de documents à convertir ;
• cochez l'option « StarOffice » ou « Microsoft Office », puis le ou les types de fichiers à convertir ;
• cliquez sur le bouton « Suivant » ;
• décochez/cochez les options qui vous intéressent dans la nouvelle fenêtre et paramétrez les
différentes zones d'information ;
• le champ « Import depuis : » correspond au dossier contenant les fichiers à convertir ;
• le champ « enregistrer dans : » correspond au dossier de destination pour les nouveaux fichiers
convertis ;
• cliquez sur le bouton « Suivant » ;
-6-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• La fenêtre de paramétrage s'affiche une nouvelle fois si vous avez choisi de convertir plusieurs
types de fichiers (Documents texte et Classeurs) ;
• cliquez sur le bouton « Suivant » ;
• cliquez sur le bouton « Convertir » pour lancer l'opération ;
• cliquer sur le bouton « Fermer » dans la boite de dialogue.
Ouvrez le répertoire de destination que vous avez précédemment indiqué afin de visualiser le résultat de
la conversion.
-7-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Vous pouvez aussi utiliser les personas Firefox pour habiller l'application, il suffit alors d'aller dans «
Personnalisation », Ensuite soit le Persona est installé, et vous pouvez l'activé ou bien aller en chercher
un sur le site, en cliquant « Sélectionner un Persona », et faites-votre choix !
• dans le Traitement de texte, saisissez le mot StarWriterTeam et appuyez ensuite sur la touche F3 ;
• dans le Tableur, saisissez la formule =STARCALCTEAM() dans une cellule.
-8-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
-9-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• TABLES : une table est un ensemble de données organisées sous forme d'un tableau où les
colonnes correspondent à des catégories d'information (une colonne peut stocker des numéros de
téléphone, une autre des noms...) et les lignes à des enregistrements, également appelés entrées ;
• REQUETES : une requête est un langage informatique utilisé pour effectuer des recherches, des
extractions et des tris sur des bases de données ou autres systèmes d'information ;
• FORMULAIRES : un formulaire est un espace de saisie dans l'interface utilisateur, pouvant
comporter plusieurs zones ou champs, qui permettent de saisir du texte, de cocher des cases,
d'effectuer un choix dans une liste de termes prédéfinis, d'appuyer sur des boutons et bien
d'autres ;
• ETATS : un état est une mise en forme d'informations, en vue de leur affichage ou de leur
impression. La constitution d'états se fait sans qu'il y ait de modification des données utilisées,
le but est de constituer diverses présentations synthétiques de ces données dans l'objectif de
comprendre ce qu'elles recouvrent : statistiques, évolutions dans le temps, cumuls et sous-totaux et
bien d'autres ;
• MACROS : une macro est une suite de code informatique permettant de réaliser des opérations,
c'est employé pour des tâches répétitives.
- 10 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Vous pouvez créer une vue (attention, vous devez être administrateur de la base pour en créer une). Une
vue est une requête d'interrogation de la base. On peut la voir comme une table virtuelle.
- 11 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• en mode ébauche : en passant par une interface graphique pour créer les différents éléments que
l'on veut voir ou imprimer.
Comment créer une requête pour identifier les enregistrements vides dans une table ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Lorsque vous créez une requête (en vue SQL par exemple), vous pouvez préciser la valeur IS NULL sur un
ou plusieurs champs, dans la clause WHERE.
La clause WHERE exprime les conditions de recherches.
La requête suivante renvoie les enregistrements de la Table1, si le champ « Matricule » est vide :
Inversement, pour renvoyer les matricules non vides, utilisez IS NOT NULL :
- 12 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
1 Menu « Format » ;
2 Sélectionnez « Remplissage » ;
3 Onglet « Couleurs » ;
4 Cliquez sur l'icône « Enregistrer la liste des couleurs » (LibO) ou « Enregistrer la palette de couleurs
» (AOO) ;
5 Vous pouvez ainsi récupérer le nom de votre fichier personnalisé.
Nota :
Les fichiers .soc sont généralement stockés dans le répertoire:
C:\Users\zoom61\AppData\Roaming\LibreOffice\4\user\config
ou C:\Users\zoom61\AppData\Roaming\OpenOffice\4\user\config
Copiez le fichier .soc sur un support pour effectuer le transfert.
Sur le poste de destination :
Cliquez sur l'icône « Charger la liste des couleurs » (LibO) ou « Charger la palette de couleurs » (AOO).
Recherchez et ouvrez votre fichier palette de couleurs personnalisé.
Cliquez sur le bouton « OK » pour valider.
Vous pouvez maintenant utiliser cette palette.
- 13 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
- 14 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Comment revenir sur la première diapo lorsque l'on est arrivé à la fin de la présentation ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
• Menu « Diaporama ».
• Sélectionnez « Paramètres du diaporama ».
• Sélectionnez l'option Type = Auto.
• Indiquez la durée 00:00:00.
• Cliquez sur le bouton « OK » pour valider.
Comment faire pour ne pas afficher les entêtes et pieds de page sur la première diapo ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Dans une présentation, la première diapo est souvent utilisée comme page d'accueil. Il est parfois utile
de masquer les informations apparaissant dans les entêtes et pieds de page de cette première diapo, par
soucis d'esthétique.
• Menu « Affichage ».
• Sélectionnez « En-têtes et pieds de page ».
• Onglet « Diapo ».
• Cochez par exemple l'option « Numéro de diapo » pour numéroter automatiquement les pages..
• Cocher ensuite l'option « Ne pas afficher sur la première diapo »..
• Cliquez sur le bouton « Appliquer partout » pour valider.
Est-il possible d'intégrer des fichiers son ou vidéo dans une présentation ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Il est possible de lire des fichiers audios ou vidéos dans une présentation. Ces fichiers multimédias sont
associés sous forme de liens externes.
Vous devrez recréer le lien si vous déplacez la présentation.
Le plus pratique pour distribuer ou déplacer la présentation, est de stocker les fichiers multimédias et .odp
dans le même répertoire.
- 15 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Pour sortir de cette boucle sans fin, il suffit d'appuyer sur la touche ESC du clavier.
- 16 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• sélectionnez la cellule A1 ;
• menu « Format » ;
• « Format conditionnel » ;
• « Condition1 », sélectionnez l'option « La formule est : » ;
• indiquez dans le champ conditionnel :
NB.SI($A$1:$A$20;A1)>1
Ces deux commandes sont aussi accessibles dans le menu « Outils » et « Add-ons ».
Il faut paramétrer, pour cela il faut lancer Tableur et aller dans « Réglages chiffres en lettre ».
Dans les cases à cocher, il faut choisir « France, Canada... », « Demande choix », « A droite » et « Demande
de confirmation ».
- 17 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Ensuite, il ne reste plus qu'à faire des essais, écrivez « 25 » dans la cellule A1, et cliquer sur l'icône 1un,
cela va écrire « vingt-cinq » dans la cellule B1.
- 18 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Désormais le texte "Mon unité de mesure" est affiché à la suite des valeurs saisies dans la cellule.
Pensez à réadapter la largeur des colonnes si « ### » s'affiche dans la cellule.
Comment ne pas faire apparaitre la valeur Zéro (0) dans une cellule ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Appliquez à la cellule le format « Défini par l'utilisateur » : [=0]"";Standard
Catégorie Statistique
Les fonctions statistiques fournissent des calculs de statistique et de probabilité.
Catégorie Mathématique
Les fonctions mathématiques incluent les fonctions trigonométriques, hyperboliques, logarithmique et les
fonctions de sommes.
Catégorie Informations
Les fonctions d'information renvoient des informations à propos de la cellule, par exemple si elles
contiennent du texte ou une formule, etc.
Catégorie Logique
- 19 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Les fonctions logiques incluent les fonctions logiques booléennes ET, OU, NON et des fonctions telle que
SI qui teste un résultat logique.
Catégorie Add-In
Diverses
=NB.SI(A1:A1000;"CLIENT.*")
• si vous avez choisi « Liste », vous devez saisir une donnée par ligne ;
• si vous avez choisi « Plage de cellules », vous devez sélectionner les cellules qui contiennent les
données.
Cochez la case « Autoriser les cellules vides » s'il n'est pas indispensable de sélectionner une valeur.
- 20 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Quand vous sélectionnez une des cellules, vous faites apparaître sur sa droite une liste des valeurs. Il ne
reste plus qu'à sélectionner la donnée souhaitée.
- 21 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• Puis dans le dernier onglet « Protection... », cliquez sur « Masquer pour l'impression ».
- 22 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Ouvrez votre document original, puis sélectionnez le menu « Édition » et « Comparer des documents »
Sélectionnez la copie du document et cliquez sur le bouton « Insérer ».
LibO/AOO combine les deux documents dans votre document initial. Tous les passages de texte qui
s'affichent dans votre document, mais pas dans la copie, sont identifiés comme des insertions, et tous les
passages de texte manquants dans votre document initial sont identifiés comme des suppressions.
Vous pouvez alors accepter les « insertions », auquel cas le texte correspondant reste dans sa forme
d'origine, ou accepter les « suppressions », auquel cas le texte marqué (contenu dans la copie) n'est pas
inséré dans le document.
Nota : La fonction de révision est disponible pour les documents texte et les classeurs.
• Menu « Outils ».
• « AutoCorrection ».
• Onglets « Guillemets typographiques ».
• Décochez l'option « Remplacer » dans la zone « Guillemets doubles ».
• Cliquez sur le bouton « OK » pour valider.
Cette option est applicable pour les différents types de fichiers LibO/AOO.
Vous pouvez aussi définir des caractères personnalisés en cliquant sur les boutons à droite des champs «
En début de mot » et « En fin de mot ». Ces boutons permettent d'afficher la table de caractères.
- 23 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Ensuite déplacez-vous avec les touches fléchées « haut » et « bas » selon l'endroit où vous voulez aller.
• Grammalecte ;
• LanguageTool.
• Antidote ;
• Cordial.
• de tableau à tableau ;
• d'image en image ;
• de section en section ;
• etc.
Ensuite, il suffit de sélectionner le type d'élément est de sélectionner celui que l'on souhaite.
- 24 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• menu « Format » ;
• « Caractère » ;
• activez l'onglet « Hyperlien » ;
• dans la zone URL ;
• saisissez un Espace ;
• validez par OK.
lien : Publipostage
- 25 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• Exposant : Ctrl+Shift+P ;
• Indice : Ctrl+Shift+B.
- 26 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
- 27 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Test_ThisComponent_getCurrentComponent
- 28 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Comment visualiser les propriétés, méthodes et interfaces disponibles sur une variable objet ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Installez et utilisez l'indispensable outil créé par Bernard Marcelly: XRAY
Sub LireProprietesFichier
Dim oInfo As Object
oInfo = ThisComponent.DocumentInfo
MsgBox "Date création: " & oInfo.CreationDate.Day & "/" & oInfo.CreationDate.Month & _
"/" & oInfo.CreationDate.Year & Chr(10) & _
"Modifié par: " & oInfo.ModifiedBy & Chr(10) & _
"Date modification: " & oInfo.ModifyDate.Day & "/" & oInfo.ModifyDate.Month & _
"/" & oInfo.ModifyDate.Year & " " & Format(oInfo.ModifyDate.Hours, "00") & ":" & _
Format(oInfo.ModifyDate.Minutes, "00") & ":" & Format(oInfo.ModifyDate.Seconds, "00")
- 29 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oInfo = ThisComponent.DocumentInfo
oInfo.Author = "mimi"
Sub AjoutChampUtilisateur
Dim oInfo As Object
oInfo = ThisComponent.DocumentInfo
End Sub
Sub EffacerChampUtilisateur
Dim oInfo As Object
oInfo = ThisComponent.DocumentInfo
End Sub
Sub InformationsImprimanteActive
' 0 = Name
' 1 = PaperOrientation ( 0=Portrait , 1=Paysage)
' 2 = PaperFormat ( 0=A3 , 1=A4 , 2=A5 , 3=B4 , B5=4 )
' 3 = PaperSize
' 4 = IsBusy
' 5 = CanSetPaperOrientation
- 30 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
' 6 = CanSetPaperFormat
' 7 = CanSetPaperSize
End Sub
ThisComponent.LockControllers
ThisComponent.UnlockControllers
Sub Main
MsgBox "Version OOo: " & RecupereVersionOOO
End Sub
aParams2(0).Name = "nodepath"
aParams2(0).Value = "/org.openoffice.Setup/Product"
- 31 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
aSettings =
aConfigProvider.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess",
aParams2() )
RecupereVersionOOO = aSettings.getbyname("ooSetupVersion")
End Function
Sub Main
MsgBox GetSolarVersion
End Sub
- 32 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• menu Outils ;
• Options ;
• sélectionnez « Base » dans l'arborescence ;
• double cliquez sur « Bases de données » ;
• cliquez sur le bouton « Nouveau » ;
• utilisez le bouton « Parcourir » pour rechercher la base sur le disque ;
• puis Validez en cliquant sur OK dans toutes les boîtes de dialogue.
Remarque :
Le nom des champs et des tables est encadré par des doubles guillemets dans la requête.
Sub RequeteBase_V01
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim oStatement As Object , oRequete As Object
Dim strSQL As String
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oRequete.Close
- 33 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oStatement.Close
oBase.Close
oBase.Dispose
End Sub
Sub RequeteBase_V02
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim oStatement As Object , oRequete As Object
Dim strSQL As String , Fichier As String
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oDBContext.getbyName(Fichier)
oBase = oDB.getConnection("","")
oStatement = oBase.createStatement()
oRequete.Close
oStatement.Close
oBase.Close
oBase.Dispose
End Sub
Le tableau suivant liste quelques méthodes disponibles en fonction du type de champ à lire dans la base :
- 34 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Exemple de lecture d'un champ Date au format JJ/MM/AA hh:mm:ss dans la base :
lien : api.openoffice.org
Sub AjoutEnregistrement
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim oStatement As Object , oRequete As Object
Dim strSQL As String , Fichier As String
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oDBContext.getbyName(Fichier)
oBase = oDB.getConnection("","")
oStatement = oBase.createStatement()
oRequete.Close
oStatement.Close
oBase.Close
oBase.Dispose
- 35 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub SupprimerEnregistrement
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim oStatement As Object , oRequete As Object
Dim strSQL As String , Fichier As String
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oDBContext.getbyName(Fichier)
oBase = oDB.getConnection("","")
oStatement = oBase.createStatement()
oRequete.Close
oStatement.Close
oBase.Close
oBase.Dispose
End Sub
Sub MiseAJourEnregistrement
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim oStatement As Object , oRequete As Object
Dim strSQL As String , Fichier As String
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oDBContext.getbyName(Fichier)
oBase = oDB.getConnection("","")
oStatement = oBase.createStatement()
oRequete.Close
oStatement.Close
oBase.Close
oBase.Dispose
- 36 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub CreerTable
Dim oDBContext As Object , oDB As Object , oBase As Object
Dim Fichier As String
Dim NouvelleTable As Object, CollectionTables As Object, NouveauChamp As Object
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oDBContext.getbyName(Fichier)
oBase = oDB.getConnection("","")
NouvelleTable = CollectionTables.createDataDescriptor
NouvelleTable.Name = "gestionStock" 'nom de la nouvelle table
oBase.Close
oBase.Dispose
End Sub
Sub Integrer_SourceDonnees()
Dim oDBContext As Object, oDataSource As Object
Dim Source As String, Chemin As String
Dim Array()
- 37 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource = createUnoService("com.sun.star.sdb.DataSource")
oDBContext.registerObject(Source , oDataSource)
oDataSource.setPropertyValue("URL", Chemin)
oDataSource.databaseDocument.Store()'Sauvegarde
'oDataSource.databaseDocument.Close(True)
End Sub
Sub Desactiver_SourceDeDonnees()
Dim oDBContext As Object, Source As String
If oDBContext.hasByName(Source) Then
oDBContext.revokeObject(Source)
Else
MsgBox "Opération annulée. Vérifiez le nom." , , "Message"
End If
End Sub
• menu Outils ;
• Options ;
• sélectionnez « Base » dans l'arborescence ;
• double cliquez sur « Bases de données » ;
• sélectionnez une source dans la liste ;
• cliquez sur le bouton « Annuler » pour désactiver la source de données ;
• puis Validez en cliquant sur OK dans toutes les boîtes de dialogue ;
• a source n'est plus visible en utilisant le menu Afficher/Sources de données (ou par la touche
raccourci F4) depuis Tableur ou Traitement de texte.
- 38 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Recuperer_Nom_Numero_PageActive
Dim LaPage As Object
LaPage = ThisComponent.getCurrentController.CurrentPage
MsgBox "Nom: " & LaPage.Name & " Numéro: " & LaPage.Number
End Sub
- 39 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub BoucleObjetsPresentation
Dim Fichier As String
Dim Array() As Variant
Dim oDoc As Object , oPage As Object
Dim i As Integer , j As Integer
'Ouvre la présentation
oDoc = StarDesktop.LoadComponentFromURL( Fichier , "_blank", 0, Array() )
oPage = oDoc.getDrawPages.getByIndex(i)
Next i
End Sub
Sub DemarrerPresentation
Dim Fichier As String
Dim Array() As Variant
Dim oDoc As Object
- 40 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
ThisComponent.DrawPages(2).Visible = False
ThisComponent.DrawPages(2).Visible = True
Sub DupliqueSlideImpress
Dim oDoc As Object
oDoc = ThisComponent
'Duplique la 3eme page dans le même fichier
oDoc.Duplicate(oDoc.DrawPages(2))
End Sub
Remarque :
Le nouveau Slide est systématiquement placé à droite du Slide copié et nommé en fonction de sa position
dans la présentation.
Dans notre exemple la nouvelle page va être nommée « Page 4 » et les autres pages seront automatiquement
renommées en conséquence.
Sub CreerPresentation
Dim oDoc As Object , oPage As Object
Dim Arg() As Variant
'Création présentation
oDoc = StarDesktop.loadComponentFromURL( "private:factory/simpress", "_blank", 0, Arg() )
'---
'Spécifie la première page (qui est automatiquement créée en même
- 41 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
AjoutTexte ( oDoc , oPage , "J'espère que cet exemple vous aura aidé..." , _
14000 , 3000 , 7000 , 6000 , RGB(235,235,180) )
'---
Function AjoutImage( oCmp As Object , oPge As Object , Fichier As String , Largeur As Long , _
Hauteur As Long , Verti As Long , Horiz As Long )
'Définit la taille
oSize.Width = Largeur
oSize.Height = Hauteur
oImage.Size = oSize
'Définit la Position
oPos.x = Horiz
oPos.y = Verti
oImage.Position = oPos
End Function
Function AjoutTexte( oCmp As Object , oPge As Object , leTexte As String , Largeur As Long , _
Hauteur As Long , Verti As Long , Horiz As Long , Couleur As Long)
'Définit la taille
oSize.Width = Largeur
- 42 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oSize.Height = Hauteur
oShape.Size = oSize
'Définit la Position
oPos.x = Horiz
oPos.y = Verti
oShape.Position = oPos
'insère le texte
oShape.getText().setString( leTexte )
oShape.getText().CharHeight = 40 'taille caractères
End Function
- 43 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ouvrirClasseur
Dim Fichier As String
Dim Wb As Object
Dim Args()
Sub CreerNouveauDocument_Calc
Dim oDesktop As Object , oDoc As Object
Dim Fichier As String
Dim Args() , Opt()
oDesktop = createUnoService("com.sun.star.frame.Desktop")
'Création
oDoc = oDesktop.LoadComponentFromURL(Fichier, "_blank", 0, Args())
'
'...
'
'Enregistrement du fichier
oDoc.storeAsURL ("file:///C:/monFichier.ods", Opt())
'
'...
'
'Fermeture du fichier
'True indique que l'on sauvegarde les modifications éventuelles
oDoc.Close( True )
End Sub
Comment Retrouver les équivalences de Couleur aux formats Hex , Long et RGB ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Téléchargez le tableur démo.
Ce tableur permet de visualiser des couleurs en paramétrant les valeurs RGB (rouge ,vert ,bleu) dans une
boite de dialogue.
L'équivalence aux formats Hex et Long s'affiche automatiquement.
Il est aussi possible de saisir une valeur Hex ou Long pour rechercher l'équivalence RGB.
- 44 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Un TextField permet de visualiser le résultat de la couleur paramétrée. Vous pouvez ensuite récupérer le
code couleur en fonction de vos besoins, et dans le format qui vous intéresse (Hex ,Long ou RGB).
Sub UtiserFonctionsCalc_Par_Macro
Dim Feuille As Object
Dim oFonction as Object
oFonction = _
CreateUnoService("com.sun.star.sheet.FunctionAccess")
- 45 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDoc=ThisComponent
oDoc=ThisComponent
For i = 1 to oDoc.Sheets.Count
'Remarque: l'index de la 1ere feuille = 0
MsgBox oDoc.Sheets(i-1).Name
Next
oDoc=ThisComponent
Feuille = oDoc.getCurrentController().getActiveSheet()
MsgBox Feuille.getName()
- 46 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
MsgBox oDoc.CurrentController.ActiveSheet.getName
oDoc=ThisComponent
oDoc=ThisComponent
oDoc=ThisComponent
oDoc=ThisComponent
- 47 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDoc=ThisComponent
oDoc=ThisComponent
Sub ProtegerFeuille
Dim Feuille As Object
'Affecte la protection
Feuille.Protect("")
Sub VerifierProtectionFeuille
Dim Feuille As Object
- 48 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub DeProtegerFeuille
Dim Feuille As Object
'Déprotection
Feuille.UnProtect("")
'Nota1:
'La procédure ne renvoie pas de message d'erreur si le mot
'de passe spécifié est erroné.
'Nota2:
'/!\ Les mots de passes sont sensibles à la casse /!\
End Sub
Comment créer un lien vers toutes cellules d'une feuille dans un classeur fermé ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
La procédure crée une liaison vers les cellules d'une feuille dans un classeur fermé.
Les données s'affichent dans la première feuille du classeur contenant cette macro.
Sub LiensCellules_SourceClasseurFerme
Dim objFeuille As Object
Dim sURL As String , strFeuille As String
Dim Mde As Variant
Mde = com.sun.star.sheet.SheetLinkMode.NORMAL
- 49 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Feuille.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE)
'ou
'Feuille.LinkMode = com.sun.star.sheet.SheetLinkMode.NONE
Dim i As Integer
Sub modificationEntete_Et_PiedDePage()
Dim leStyle As Object, Entete As Object, piedPage As Object
Dim oText As Object, Curseur As Object, leChamp As Object
leStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(Feuille.PageStyle)
- 50 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
leStyle.RightPageHeaderContent = Entete
leStyle.RightPageFooterContent = piedPage
End Sub
• menu Editer ;
• option « Entête et pied de page ».
Sub LireContenu_Entete_Et_PiedDePage
Dim Feuille As Object , leStyle As Object
Dim PiedPage As Object
leStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(Feuille.PageStyle)
Entete = leStyle.RightPageHeaderContent
MsgBox Entete.LeftText.getString
'MsgBox Entete.RightText.getString
'MsgBox Entete.CenterText.getString
PiedPage = leStyle.RightPageFooterContent
MsgBox PiedPage.LeftText.getString
'MsgBox PiedPage.RightText.getString
'MsgBox PiedPage.CenterText.getString
End Sub
Sub TriOnglets
Dim Feuilles As Object
Dim i As Integer , j as integer
Feuilles = ThisComponent.Sheets
- 51 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Next i
Next j
End If
End Sub
Sub Test
'Trie les feuilles à partir du 4eme onglet
'(L'index 3 correspond à 4eme feuille du classeur)
TriFeuilles( 3 )
End Sub
Feuilles = ThisComponent.Sheets
Cible = False
For i = NumFeuille To Feuilles.Count - 2
If Feuilles.getByIndex( i ).Name > Feuilles.getByIndex( i + 1 ).Name Then
Feuilles.moveByName( Feuilles.getByIndex( i + 1 ).Name , i )
Cible = True
End If
Next
End Sub
Vous pouvez aussi sélectionner une ou plusieurs cellules lors de l'activation de la feuille:
- 52 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub NomFeuillesMultiplesSelectionnees()
Dim OngletsSelectionnes As String
Dim TableauOnglets() As String
Dim i As Integer
Dim Cible As Object
Dim Collect As New Collection
Dim NomFeuille As String
Cible = ThisComponent.CurrentController
If Cible.Selection.supportsService("com.sun.star.sheet.SheetCellRanges") Then
'S'il y a plusieurs feuilles de sélectionnées.
OngletsSelectionnes = ThisComponent.CurrentSelection.RangeAddressesAsString
TableauOnglets() = Split( OngletsSelectionnes , ";" )
For i = 1 To Collect.Count
MsgBox Collect(i)
Next
Else
'S'il y a une seule feuille de sélectionnée.
MsgBox Cible.ActiveSheet.getName
End If
End Sub
Sub lancement_GestionEvenement_SheetChange
oClasseur = ThisComponent
- 53 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Classeur_PropertyChange(oEvent)
MsgBox oEvent.Source.ActiveSheet.Name
End Sub
Sub Arret_GestionEvenement_SheetChange
oClasseur.CurrentController.removePropertyChangeListener( "ActiveSheet" , oListener )
End Sub
Sub CopieFeuilleActive_NouveauClasseur
Dim oFrame As Object
Dim oDisp As Object
Dim Args(2) As New com.sun.star.beans.PropertyValue
oFrame = ThisComponent.CurrentController.Frame
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
Args(0).Name = "DocName"
Args(0).Value = ""
Args(1).Name = "Index"
Args(1).Value = 65535
Args(2).Name = "Copy"
Args(2).Value = True
- 54 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Tableur > Les feuilles > Les cellules
Comment spécifier une cellule par macro ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
'-------
'Identification par l'adresse de la cellule (A5)
Cellule = Feuille.getCellRangeByName("A5")
'------
'Identification par la position dans la feuille
'Attention: le format est getCellByPosition( NumeroColonne , NumeroLigne )
'Exemple cellule A5:
Cellule = Feuille.getCellByPosition( 0 , 4 )
Sub IdentifierCelluleActive
Dim CelluleActive As Object
CelluleActive = ThisComponent.getCurrentSelection
Sub ControlerContenuCellule
- 55 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A5")
Case com.sun.star.table.CellContentType.TEXT
MsgBox "Texte:" & Chr(13) & Cellule.getString
Case com.sun.star.table.CellContentType.FORMULA
MsgBox "Formule"
Case com.sun.star.table.CellContentType.EMPTY
Msgbox "Vide"
End Select
End Sub
Sub EcrireDansCellule
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A6")
Cellule.setValue(12345)
'----
'Ecrit du texte
Cellule = Feuille.getCellRangeByName("A7")
Cellule.setString("essai")
Cellule = Feuille.getCellRangeByName("A8")
Cellule.String = "essai"
'----
- 56 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Cellule = Feuille.getCellRangeByName("A10")
Cellule.Value = DateValue("26/05/2006")
Cellule = Feuille.getCellRangeByName("A11")
Cellule.Value = CDate("26/05/2006")
'----
End Sub
Sub InsererFormuleParMacro
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("B1")
'Ecrit la formule en utilisant le langage de la version OOo installée
Cellule.FormulaLocal = "=SOMME(A1:A10)"
Cellule = Feuille.getCellRangeByName("B2")
'Ecrit la formule en utilisant l'anglais
Cellule.Formula = "=SUM(A1:A10)"
'---
'Lit la formule contenue dans la cellule B2
MsgBox Cellule.Formula & Chr(13) & Cellule.FormulaLocal
End Sub
Sub SupprimeContenuCellule
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellByPosition( 0 , 4 )
Cellule.clearContents(com.sun.star.sheet.CellFlags.VALUE +_
com.sun.star.sheet.CellFlags.DATETIME +com.sun.star.sheet.CellFlags.STRING +_
com.sun.star.sheet.CellFlags.ANNOTATION +com.sun.star.sheet.CellFlags.FORMULA)
- 57 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
'com.sun.star.sheet.CellFlags.ANNOTATION: Annotations(Commentaires)
'com.sun.star.sheet.CellFlags.FORMULA: Formules
End Sub
Astuce:
Lorsque vous supprimez le contenu des cellules manuellement (en utilisant la touche « SUPPR »), la boîte
de dialogue « Supprimer du contenu » s'affiche automatiquement et vous devez la valider en cliquant sur
le bouton « OK ».
Pour supprimer le contenu des cellules sans afficher cette fenêtre, utilisez la touche clavier « RETOUR
» (symbolisée par une flèche).
Ws = ThisComponent.Sheets(NomFeuille)
NbDiff_OOo = 0
K = 1
Resultat = Cellule.getString
- 58 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Tableau(K) = Resultat
End If
End If
End If
Next Y
Next X
Sub Test
'Exemple: Plage A1:A10 dans le Feuille1
MsgBox NbDiff_OOo("Feuille1" ,1 ,1 ,1 ,10 ,True )
End Sub
Vous pouvez aussi appeler la fonction en insérant cette formule dans une cellule:
=NbDiff_OOo("Feuille1";1;1;1;10;Vrai)
Sub PlageUtilisee
Dim Feuille As Object, Curseur As Object
Dim Cible As Object
Curseur = Feuille.createCursor()
Curseur.gotoStartOfUsedArea(False)
Curseur.gotoEndOfUsedArea(True)
Cible = Curseur.getRangeAddress()
- 59 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub DerniereLigneNonVide
Dim oCurseur As Object
Sub InsertionLienHyperTexteCellule
Dim Cellule As Object , ChampURL As Object
Dim oTexte As Object
ChampURL = _
ThisComponent.createInstance("com.sun.star.text.TextField.URL")
oTexte = Cellule.getText("")
'Insertion du lien
oTexte.insertTextContent(oTexte.createTextCursor(), ChampURL, False)
End Sub
Sub ExtraireLiensCellule
'Nota:
'Une même cellule peut contenir plusieurs liens.
- 60 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oTextfields = Cellule.TextFields
'URL= le lien
'Representation = la description
MsgBox ConvertFromURL(oTextFields.getByIndex( i ).Url) & _
Chr(10) & oTextFields.getByIndex( i ).Representation
Next i
End Sub
Sub ModifierDescriptionLienCellule
Dim Cellule As Object , oTextfields As Object
oTextfields = Cellule.TextFields
'Modifie la description.
'oTextFields(0) correspond au 1er lien dans la cellule.
oTextFields(0).Representation = "La nouvelle description"
End Sub
Sub SelectionCellule_Puis_Collage
Dim oCC As Object , Cellule As Object
Dim Args() As New com.sun.star.beans.PropertyValue
'Selection cellule C2
oCC = ThisComponent.CurrentController
Cellule = oCC.ActiveSheet.getCellRangeByName("C2")
- 61 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oCC.Select(Cellule)
'Collage
Dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dispatcher.executeDispatch(oCC.Frame, ".uno:Paste", "", 0, Args)
End Sub
Sub BouclePlageCellules
Dim Feuille As Object, PlageCellules As Object
Dim Plages As Object, oEnum As Object, Cellule As Object
Plages = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
Plages.insertByName("", PlageCellules)
oEnum = Plages.Cells.CreateEnumeration
End Sub
Sub FusionnerPlageCellules
Dim Feuille As Object
Dim Plage As Object
Feuille = ThisComponent.Sheets.getByIndex(0)
Plage = Feuille.getCellRangeByPosition( 3 , 9 , 6 , 9 ) 'D10:G10
Plage.Merge( True )
Feuille.getCellByPosition( 3 ,9 ).setString("test")
End Sub
Sub Transfert_PlageCellulesCalc_Vers_Writer
Dim oDesktop As Object , oDoc As Object , oText As Object , oCursor As Object
Dim Fichier As String , Resultat As String
- 62 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDesktop = createUnoService("com.sun.star.frame.Desktop")
'Définit le type de document à créer
Fichier = "private:factory/swriter"
'Création du nouveau fichier Traitement de texte
oDoc = oDesktop.LoadComponentFromURL(Fichier, "_blank", 0, Args())
Plages = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
Plages.insertByName("", PlageCellules)
oEnum = Plages.Cells.CreateEnumeration
oText = oDoc.CurrentController.ViewCursor.Text
oCursor = oText.createTextCursor
'Insertion des données dans le document Traitement de texte
oText.insertString oCursor, Resultat , False
'Enregistrement du fichier
'oDoc.StoreAsURL ( ConvertToURL("C:\monFichier.odt") , Opt())
'Fermeture du fichier
'True indique que l'on sauvegarde les modifications éventuelles
'oDoc.Close( True )
End Sub
ThisComponent.Sheets(0).Columns(1).OptimalWidth = True
- 63 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Remove_SelectionChangeListener()
oController = ThisComponent.CurrentController
oController.removeSelectionChangeListener( oSelectionChangeListener )
End Sub
obj = evt.Source.Selection
tr = obj.CellAddress.Row
tc = obj.CellAddress.Column
NumFeuille = evt.source.Selection.RangeAddress.Sheet
ThisComponent.CurrentController.select( obj.SpreadSheet.getCellByPosition( 0, tr + 1 ) )
oFrame = ThisComponent.CurrentController.getFrame()
executeCommand( ".uno:Deselect", oFrame )
End If
End If
End If
End Sub
Sub SelectionChange_disposing( )
End Sub
- 64 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub lancement_GestionEvenement
'Objet pour gérer l'événement Change dans la cellule B1, dans la 1ere feuille
Cellule = ThisComponent.Sheets(0).GetCellRangeByName("B1")
Sub Classeur_Modified(oEvent)
If oEvent.Source.CellBackColor = RGB(255,255,255) Then
oEvent.Source.CellBackColor = RGB(0,0,255) 'Bleu
Else
oEvent.Source.CellBackColor = RGB(255,255,255) 'Blanc
End If
End Sub
Sub Classeur_Disposing(oEvent)
End Sub
- 65 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Tableur > Les feuilles > Les cellules > Les annotations
Comment insérer une annotation dans une cellule ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Première méthode.
Sub ajoutCommentaireCellule_V01
'équivalent des commentaires dans Excel
'
'********************************
'sans macro:
'sélectionnez une cellule
'Menu Insertion
'notes
'saisir le texte
'********************************
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A1")
Cellule.Annotation.String = "Le commentaire"
'
'Remarque:
'si une annotation existe déja dans la cellule, les anciennes infos seront écrasées
End Sub
Deuxième méthode.
Sub ajoutCommentaireCellule_V02
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
Dim Nte As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A1")
Nte.FillStyle = com.sun.star.drawing.FillStyle.SOLID
'Applique une couleur dans l'annotation
Nte.FillColor = RGB( 255,225,225 )
- 66 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub ajoutDansCommentaireExistant
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
Dim leTexteExistant As String
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A1")
'Récupération des informations existantes dans le commentaire
leTexteExistant = Cellule.Annotation.getString
Cellule.Annotation.String = _
leTexteExistant & chr(13) & "Mon nouveau commentaire"
End Sub
Sub SupprimeCommentaire
'-------------------------------------
'sans macro:
'sélectionnez la cellule
'Menu Insertion
'notes
'Supprimez le contenu de l'annotation
'-------------------------------------
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A1")
Cellule.clearContents(com.sun.star.sheet.CellFlags.ANNOTATION)
End Sub
Sub boucleSurAnnotations
Dim I As Integer
Dim Resultat As String
Dim Feuille As Object , oDoc As Object
- 67 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
MsgBox Resultat
Next i
End Sub
- 68 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Tableur > Les feuilles > Les cellules > Les formats
Comment appliquer une mise en forme dans une cellule ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub MiseEnFormeCellule
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Feuille1")
Cellule = Feuille.getCellRangeByName("A5")
With Cellule
.setString( " mon texte " ) 'insére du texte dans la cellule
.CellBackColor = RGB(0,0,0) 'indique la couleur de fond
.paraAdjust = com.sun.star.style.ParagraphAdjust.CENTER 'alignement centré
.RotateAngle = 9000 'Rotation 9000 = 90°
.CharColor = RGB(255,0,0) 'couleur des caractères
.CharHeight = 16 'Taille catactères
.CharWeight = com.sun.star.awt.FontWeight.BOLD 'gras
.CharPosture = com.sun.star.awt.FontSlant.ITALIC 'italique
.CharFontName = "Arial" 'Font
.CharUnderline = com.sun.star.awt.FontUnderline.DOUBLE 'souligné double
End With
End Sub
Ws = ThisComponent.Sheets(NomFeuille)
- 69 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
NbCouleursCible = 0
NbCouleursCible = Resultat
End Function
Sub Test
' Compte le nombre de cellules dans la plage B3:B10 dont la
' couleur est identique à la cellule A1.
MsgBox NbCouleursCible("Feuille1" ,"A1" ,2 ,2 ,3 ,10 )
End Sub
=NBCOULEURSCIBLE("Feuille1";"A1";2;2;3;10)
- 70 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Tableur > Les feuilles > Les cellules > Les cellules et
plages nommées
Comment ajouter un nom dans le classeur ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Un nom est une chaîne de caractères (sans espace) qui représente une cellule ou une plage de cellules.
Utilisez des noms lorsque vous avez besoin de faire références à des plages complexes ou pour une
meilleure compréhension de votre projet.
Par exemple, vous pouvez remplacer une formule classique:
=SOMME(A1:A10)*B1
par
=SOMME(A1:A10)*Coefficient
Coefficient étant le nom préalablement donné à la cellule B1.
Pour ajouter un nom manuellement,
utilisez le menu Insertion
Noms
Définir
Complètez le champ « Nom »
Le champ « Assigné à » permet de préciser la cellule ou la plage à nommer
Cliquez sur le bouton « Ajouter »
puis sur le bouton OK pour valider.
Pour ajouter un nom par macro:
Sub AjoutNom
Dim oNom As Object
Dim oCellAdress As New com.sun.star.table.CellAddress
'--------------
'La procédure renvoie une erreur si le nom existe déja
'dans le classeur.
'--------------
'Premier exemple
oNom = ThisComponent.NamedRanges
'Nomme la plage B2:C5 dans la feuille nommée Feuille1
oNom.addNewByName( "TestNom1" , "$Feuille1.$B2:$C5" , oCellAdress , 0 )
'Deuxième exemple
'Nomme la cellule A10 dans la feuille nommée Feuille2
oNom.addNewByName( "TestNom2", "$Feuille2.$A10:$A10" ,
createUnoStruct( "com.sun.star.table.CellAddress" ) , 0 )
End Sub
Sub VerifierExistenceNom
Dim LeNom As String
LeNom = "NomTest"
- 71 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End If
End Sub
Sub ListeNoms
Dim i As Integer
Dim Tableau()
Tableau = ThisComponent.NamedRanges.ElementNames
Sub RecupererInformationsNom
Dim Resultat As String
Dim oNom As Object
Dim Plages As Object, oEnum As Object, Cellule As Object
MsgBox Resultat
While oEnum.hasMoreElements
Cellule = oEnum.NextElement
MsgBox Cellule.String
Wend
- 72 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub SuppressionContenuCelluleNommee
Dim oNom As Object
Sub SupprimerNom
'Supprime un nom appelé "TestNom1"
ThisComponent.NamedRanges.removeByName("TestNom1")
End Sub
Sub SupprimerTousLesNoms
Dim i As Integer
Dim Cible As String
End Sub
- 73 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Tableur > Les feuilles > Les images
Comment créer une planche contact dans Tableur,
à partir de toutes les images jpg d'un répertoire ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Cette procédure Tableur permet de choisir un répertoire à partir d'une boîte de dialogue. Toutes les
images .jpg sont ensuite affichées en miniature dans la feuille de calcul (5 lignes et 4 colonnes par page
imprimable).
Remarque:
La procédure est sensible à la casse: jpg n'est pas identique à JPG.
Option Explicit
Sub CreationPlancheContact
'testé avec WinXP et OOo 2.0.3
'http://www.oooforum.org/forum/viewtopic.php?t=12312
Dim sGraphicURL As String , Chemin As String , NextFile as String
Dim oDrawPage As Object , oGraphic As Object
Dim oFolderDialog as Object, oUcb as Object
Dim choix As Integer ,i As Integer ,j As Integer ,k As Integer
Dim oLeft As Double , oTop as Double ,NumLig as Double , Largeur As Double
Dim Taille as new com.sun.star.awt.Size
Dim Emplacement as new com.sun.star.awt.Point
NumLig= ThisComponent.Sheets(0).RowPageBreaks(0).position
Largeur= ThisComponent.Sheets(0).Rows(0).Height
'--- Affiche la boîte de dialogue pour sélectionner le répertoire contenant les fichiers .jpg ---
oFolderDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oFolderDialog.SetDisplayDirectory("C:\Documents and Settings")'Adaptez le chemin par défaut
choix = oFolderDialog.Execute()
If choix = 1 Then Chemin=ConvertFromUrl(oFolderDialog.getDirectory())
oDrawPage =ThisComponent.Sheets(0).getDrawpage()
oGraphic =ThisComponent.createInstance("com.sun.star.drawing.GraphicObjectShape")
oGraphic.GraphicURL =sGraphicURL
oDrawPage.add(oGraphic)
Emplacement.X = oLeft
Emplacement.Y = oTop
oGraphic.setposition(Emplacement)
- 74 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End If
NextFile=Dir()
Loop
End Sub
- 75 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
• LineDiagram (Linéaires) ;
• PieDiagram (Secteurs) ;
• AreaDiagram (Surfaces) ;
• BarDiagram (Barres) ;
• XYDiagram (Nuages de points) ;
Sub CreationGraphique
Dim oDoc As Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim Source(0) As New com.sun.star.table.CellRangeAddress
Dim oCharts As Object , oChart As Object
oDoc = ThisComponent
'Création du graphique
oCharts.addNewByName("MonGraphique",Rect ,Source(),True , True)
- 76 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oChart = oCharts.getByName("MonGraphique").EmbeddedObject
With oChart
'Type de graphique (Scatters)
.Diagram = oChart.createInstance("com.sun.star.chart.XYDiagram")
oDoc.Sheets(0).getCellByPosition(0,0).String = "MonGraphique"
End Sub
Sub BoucleGraphiquesFeuille
Dim oDoc As Object
Dim oChart As Object
Dim i As Integer
oDoc = ThisComponent
- 77 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ModifierGraphique
Dim oDoc As Object
Dim oChart As Object
oDoc = ThisComponent
'----
'Remarque :
'Si vous connaissez le nom du graphique, vous pouvez utiliser cette syntaxe :
'oChart = oDoc.Sheets(1).Charts.getByName("MonGraphique").EmbeddedObject
'----
'*****************************
'Important :
'----------
'Il est parfois nécessaire de lancer le recalcule automatique (touche F9)
'pour visualiser le résultat.
'*****************************
End Sub
Comment ajouter des séries et des points dans une source de données ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Cet exemple permet de redéfinir la plage source du graphique en ajoutant cinq lignes et deux colonnes par
rapport à la plage de cellules initiale.
- 78 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Ajouter_Series_Et_Points
Dim oDoc As Object
Dim oChart As Object
Dim Plage
oDoc = ThisComponent
'--------------
'Par exemple, une plage initiale $A$1:$B$25 deviendra $A$1:$D$30
'--------------
End Sub
Sub ExporterGraphique_FormatImage
Dim Fichier As String
Dim TabFiltre(3) As New com.sun.star.beans.PropertyValue
Dim Tableau (2) As New com.sun.star.beans.PropertyValue
Dim CheminURL As New com.sun.star.util.URL
Dim Obj As Object
Dim oGEF As Variant
'Spécifie le 1er objet (en l'occurrence un graphique incorporé) contenu dans la 1er onglet
Obj = ThisComponent.DrawPages.getByIndex( 0 ).getByIndex( 0 )
CheminURL.complete = Fichier
Tableau(0).Name = "MediaType"
Tableau(0).Value = "image/jpeg"
Tableau(1).Name = "URL"
- 79 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Tableau(1).Value = CheminURL
Tableau(2).Name = "FilterData"
Tableau(2).Value = TabFiltre
oGEF.Filter( Tableau() )
End Sub
- 80 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub retrouverMot
Dim oSearch As Object , Cible As Object
Dim Tableau As Variant
Dim x As long
oSearch = ThisComponent.createSearchDescriptor
With oSearch
.SearchString = "essai" 'la chaîne à identifier
.SearchWords = True
End With
Tableau = ThisComponent.FindAll(oSearch)
MsgBox "Le mot recherché est présent " & Tableau.count & " fois."
For x = 0 To Tableau.Count - 1
Cible = Tableau(x)
Sub RemplacerChaine
Dim oDoc As Object
Dim Remplace As Object
Dim Ancien As String , Nouveau As String
Ancien = "Mme"
Nouveau = "Madame"
oDoc = ThisComponent
Remplace = oDoc.createReplaceDescriptor
Remplace.SearchString = Ancien
Remplace.ReplaceString = Nouveau
oDoc.replaceAll(Remplace)
End Sub
Sub RemplacerPlusieursChaines
- 81 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oDoc = ThisComponent
Remplace = oDoc.createReplaceDescriptor
For i = 0 To 2
Remplace.SearchString = Ancien(i)
Remplace.ReplaceString = Nouveau(i)
oDoc.replaceAll(Remplace)
Next i
End Sub
Sub Insertion_SautDePage
Dim oCurseur As Object
Dim Cible As Object
oCurseur = ThisComponent.getCurrentController().getViewCursor()
Cible = oCurseur.getText()
Cible.insertControlCharacter( oCurseur, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False
)
oCurseur.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
End Sub
Sub InsererLien_EmplacementCurseur
Dim oCurseur As Object , oTexte As Object
oCurseur = ThisComponent.CurrentController.getViewCursor()
oTexte = oCurseur.getText()
oTexte.insertString(oCurseur, "La description", True)
With oCurseur
'Spécifie l'URL du lien hypertexte
.HyperLinkURL = "http://www.developpez.com"
'Spécifie le nom du lien
.HyperLinkName = "Nom lien hypertexte"
- 82 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub LireProprietes_Statisques_Writer
Dim Resultat As String
Dim Curseur As Object
Curseur = ThisComponent.currentController.getViewCursor
Curseur.jumpToLastPage()
MsgBox Resultat
End Sub
Sub NomPolice_EmplacementCurseur
Dim Curseur As Object
Curseur = ThisComponent.CurrentController.ViewCursor
- 83 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub ExtractionPlageTexteDelimite
Dim Plage As Object
Dim Cible As String
Dim oCSD As Object
oCSD = ThisComponent.createSearchDescriptor
Cible = "MotCle" & ".*" & "MotCle"
With oCSD
.SearchString = Cible
.SearchRegularExpression = True
End With
If IsNull(Plage) Then
Msgbox "Non trouvé"
Else
Msgbox Plage.String
End If
End Sub
Sub AffichagePleinEcran
Dim oFrame As Object
Dim oDispatcher As Object
Dim Args(0) As New com.sun.star.beans.PropertyValue
oFrame = ThisComponent.CurrentController.Frame
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Args(0).Name = "FullScreen"
Args(0).Value = True
oDispatcher.executeDispatch( oFrame , ".uno:FullScreen", "", 0, Args() )
End Sub
- 84 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ExtractionPages_Dans_DocumentWriter
Dim NbPages As Integer , NumPage As Integer
Dim Curseur As Object , oTextCurseur As Object
Dim Debut As Variant , Fin As Variant
Dim ArgsProprietes(2) As New com.sun.star.beans.PropertyValue
Dim Document As Object , Dispatcher As Object
Dim Args()
Dim oDesktop As Object , oDoc As Object
Dim Fichier As String , NomFichier As String
Dim Destination As Variant
'Fige l'écran
ThisComponent.LockControllers
Debut = ThisComponent.Text.createTextCursorByRange(oTextCurseur)
- 85 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oTextCurseur.gotoPreviousParagraph( False )
oTextCurseur.gotoEndOfParagraph( False )
MarkIt:
Fin = ThisComponent.Text.createTextCursorByRange( oTextCurseur )
'Sélectionne le contenu de la Xeme page
Curseur.gotoRange( Debut , False )
Curseur.gotoRange( Fin , True )
'---
'Copie la Xeme page sélectionnée
Document = ThisComponent.CurrentController.Frame
Dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dispatcher.executeDispatch(Document, ".uno:Copy", "", 0, Array())
'Ferme le fichier
oDoc.Close( False )
'---
ThisComponent.UnlockControllers
MsgBox "Terminé."
End Sub
- 86 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Traitement de texte > Les paragraphes
Comment boucler sur les paragraphes d'un document ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub boucleSurParaGraphes
Dim leTexte As Object , TextElement As Object
Dim i As Integer
leTexte = ThisComponent.Text.createEnumeration
While leTexte.hasMoreElements
TextElement = leTexte.nextElement
If TextElement.supportsService("com.sun.star.text.Paragraph") Then _
Print TextElement.String
Wend
End Sub
Sub SuppressionParaGraphe
Dim leTexte As Object , TextElement As Object
Dim i As Integer
leTexte = ThisComponent.Text.createEnumeration
Wend
End Sub
- 87 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Traitement de texte > Les signets
Comment insérer un signet à l'emplacement du curseur ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Pour insérer un signet manuellement:
Menu Insertion
Repère de texte
Sub creerBookmarkEmplacementCurseur
Dim Doc As Object , Cursor As Object
'insérer un bookmark(signet)à l'emplacement du curseur
Doc = ThisComponent
Cursor = Doc.currentcontroller.ViewCursor
Bookmark = Doc.createInstance("com.sun.star.text.Bookmark")
'Spécifie le nom du nouveau signet
Bookmark.Name = "Xmark"
'Insertion du signet
Doc.Text.insertTextContent(Cursor, Bookmark, True)
End Sub
Sub AtteindreSignet
Dim Doc As Object , oCC As Object , oCursor As Object
Dim BookMark As Object
Doc = ThisComponent
oCC = Doc.getCurrentController()
oCursor = Doc.text.createTextCursorByRange(BookMark.Anchor)
oCC.Select(oCursor)
End Sub
Pour visualiser manuellement la liste des signets contenus dans le document, faites un clic droit en bas à
gauche dans la barre d'état (à l'emplacement du numéro de la page active).
Vous pouvez ensuite sélectionner un des noms pour positionner le curseur à l'emplacement du signet.
Sub BoucleSignets
Dim Doc As Object , Signets As Object
- 88 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Dim i As Integer
Doc = ThisComponent
Signets = Doc.getBookmarks()
For i = 0 to Signets.Count() - 1
MsgBox "Nom: " & Signets.getByIndex(i).Name & Chr(13) & _
"Contenu: " & Signets.getByIndex(i).Anchor.String
Next i
End Sub
- 89 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Traitement de texte > Les images
Comment créer une planche contact dans Traitement de
texte, à partir de toutes les images JPG d'un répertoire ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Cette procédure Traitement de texte permet de choisir un répertoire à partir d'une boîte de dialogue. Toutes
les images .jpg sont ensuite affichées en miniature dans le document.
Remarque :
La procédure est sensible à la casse: jpg n'est pas identique à JPG.
Sub CreationPlancheContact_Writer
oCurseur = ThisComponent.getCurrentController().getViewCursor()
'--- Affiche la boîte de dialogue pour sélectionner le répertoire contenant les fichiers .jpg ---
oFolderDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
choix = oFolderDialog.Execute()
If choix = 1 Then Chemin=ConvertFromUrl(oFolderDialog.getDirectory())
oDrawPage =ThisComponent.getDrawpage()
oGraphic =ThisComponent.createInstance("com.sun.star.drawing.GraphicObjectShape")
oGraphic.GraphicURL =sGraphicURL
oDrawPage.add(oGraphic)
NextFile=Dir()
Loop
End Sub
- 90 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Traitement de texte > Les tableaux dans le traitement
de texte
Comment insérer un tableau dans le document ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
La procédure ajoute un tableau dans le document puis remet en forme les cellules.
Sub InsertionTableauWriter
Dim oDoc As Object , oText As Object , oCurseur As Object
Dim oTable As Object
Dim NumLigne As Integer , NimColonne As Integer
Dim Cellule As Object
Dim Tcs()
oDoc = ThisComponent
oText = oDoc.getText()
oCurseur = oText.createTextCursor()
oText = Cellule.getText()
oCurseur = oText.createTextCursor()
- 91 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End If
Next NumColonne
Next NumLigne
End Sub
Sub AjoutLignesTableau
Dim oTable As Object , Lignes As Object
Lignes = oTable.getRows()
'Ajoute une ligne à la 5eme ligne
'insertByIndex(numéro de ligne pour l'insertion , nombre de lignes à insérer)
'L'index de la 1ere ligne = 0
Lignes.insertByIndex(4, 1)
End Sub
Sub PositionTableau_NumeroPage
Dim oDoc As Object , oCurseur As Object , oTable As Object
Dim oVueCurseur As Object
Dim NumPage As Integer
oDoc = ThisComponent
oVueCurseur = oDoc.CurrentController.ViewCursor
oCurseur = oTable.getCellByName("A1").createTextCursor
oVueCurseur.gotoRange(oCurseur, FALSE)
NumPage = oVueCurseur.getPage
MsgBox "Le Tableau est sur la page: " & NumPage
- 92 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Comment insérer une image dans une cellule d'un tableau dans le Traitement de texte ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub InsertionImage_Dans_TableauWriter
Dim oTable As Object , oImage As Object
Dim Cellule As Object , Texte As Object , Curseur As Object
'--- Définit l'image qui va être insérée dans la cellule du tableau ---
oImage = ThisComponent.createInstance( "com.sun.star.text.GraphicObject" )
'Nécessite d'être connecté à internet
oImage.GraphicURL = "http://www.developpez.com/template/logo.gif"
oImage.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
'---
Texte = Cellule.getText()
Curseur = Texte.createTextCursor()
Texte.insertTextContent( Curseur , oImage , False )
End Sub
- 93 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Traitement de texte > Les cadres - TextFrames
Comment boucler sur les cadres contenus dans un document ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Les cadres (aussi appelés TextFrames) sont accessibles en utilisant le menu Insertion/Cadres.
Cet exemple boucle sur tous les cadres du document pour en récupérer certaines informations :
• le nom ;
• e texte contenu ;
• Les dimensions.
Et modifie :
Sub BoucleCadres
Dim i As Integer
End With
Next i
End Sub
Sub AtteindreCadreSpecifique
- 94 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub RecupererPositionCadre
Dim oFrame As Object
Sub ModifierPositionCadre
Dim oFrame As Object
With oFrame
.HoriOrientPosition = 4000
.VertOrientPosition = 6000
End With
End Sub
Sub CreationCadre
Dim oFrame As Object
Dim Curseur As Object
Curseur = ThisComponent.Text.createTextCursor()
oFrame = ThisComponent.createInstance( "com.sun.star.text.TextFrame" )
With oFrame
.Name = "LeCadre"
.setString( "Mon texte dans le cadre" )
.BackColor = RGB( 255 , 0 , 0 )
- 95 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
'Position horizontale
.HoriOrient = com.sun.star.text.HoriOrientation.NONE
.HoriOrientRelation = com.sun.star.text.RelOrientation.PAGE_FRAME
.HoriOrientPosition = 4000
'Position verticale
.VertOrient = com.sun.star.text.VertOrientation.NONE
.VertOrientRelation = com.sun.star.text.RelOrientation.PAGE_FRAME
.VertOrientPosition = 10000
.Width = 5000
'.FrameIsAutomaticHeight = False
'.Height = 5000
End Sub
Sub ModificationBordures
Dim oFrame As Object
Dim Tableau As Variant
With oFrame
.setPropertyValue( "TopBorder" , Tableau )
.setPropertyValue( "BottomBorder" , Tableau )
.setPropertyValue( "LeftBorder" , Tableau )
.setPropertyValue( "RightBorder" , Tableau )
End With
End Sub
- 96 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub AfficherBoiteDialogue
DialogLibraries.LoadLibrary( "Standard" )
'Dialog1 est le nom de la Form (clic-droit sur l'objet / propriétés / onglet Général / Nom)
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
End Sub
Sub FermetureFormBasic
'Ferme la boîte de dialogue
oDialog1.endExecute
- 97 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub affichageBoiteDialogue_adapterTailleEcran
Dim Hdc As Long , H As Long , V As Long
Dim oDialog1 As Object
Hdc = GetDC(0)
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
H = GetDeviceCaps(Hdc, Largeur)
V = GetDeviceCaps(Hdc, Hauteur)-50
iXPos = 0
iYPos = 0
oDialog1.Execute()
Sub ListerNomsDialogues
Dim Tableau() As String
Dim i As Integer
Tableau = DialogLibraries.Standard.getElementNames()
For i = 0 To UBound(Tableau)
Msgbox Tableau(i)
Next i
End Sub
- 98 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub BoucleControles
Dim Tableau()
Dim i As Integer
Tableau = oDialog1.Controls
For i = 0 To UBound(Tableau)
MsgBox Tableau(i).Model.Name & " --> " & Tableau(i).ImplementationName
Next i
End Sub
Sub AjoutListBox
Dim oDialogModel As Object , oListBoxModel As Object
Dim NomObj As String
Dim i As Integer
Dim oActionListener As Object
NomObj = "NomListBox"
oDialogModel = oDialog1.Model
'Définit le modèle d'objet à ajouter (ListBox)
'http://api.openoffice.org/docs/common/ref/com/sun/star/awt/module-ix.html
oListBoxModel = oDialogModel.createInstance( "com.sun.star.awt.UnoControlListBoxModel" )
With oListBoxModel
.Name = NomObj
.PositionX = 80 'position horizontale
.PositionY = 10 'position verticale
.Width = 50 'largeur
.Height = 100 'hauteur
End With
For i = 1 To 10
'Ajout des données dans la ListBox
oDialog1.getControl( NomObj ).AddItem ("Donnée" & i , i - 1 )
Next i
End Sub
- 99 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
- 100 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Les cases à cocher:
CheckBox
Comment identifier le statut d'une case à cocher ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub StatutCheckBox
Dim oCheck As Object
'Vérifie le statut:
Select Case oCheck.State
Case 0
'Attribue un texte dans le Label de la case à cocher
oCheck.Label = "Décoché"
MsgBox "Décoché"
Case 1
oCheck.Label = "Coché"
MsgBox "Coché"
Case 2
'La propriété "Statut triple" doit être paramétrée à vrai
'Pour attribuer ce statut par macro, utilisez:
'oDialog1.getControl("CheckBox1").Model.TriState = True
oCheck.Label = "Null"
MsgBox "Null"
End Select
End Sub
oCheck = Event.Source
'Vérifie le statut:
Select Case oCheck.State
Case 0
'Attribue un texte dans le Label de la case à cocher
oCheck.Label = "Décoché"
MsgBox "Décoché"
Case 1
oCheck.Label = "Coché"
MsgBox "Coché"
Case 2
'La propriété "Statut triple" doit être paramétrée à vrai
'Pour attribuer ce statut par macro, utilisez:
'oDialog1.getControl("CheckBox1").Model.TriState = True
oCheck.Label = "Null"
MsgBox "Null"
End Select
End Sub
- 101 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Le contrôle picto:
ImageControl
Comment choisir un fichier image sur le disque et l'afficher dans la boîte de dialogue ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Cet exemple nécessite d'insérer un contrôle Picto dans la boîte de dialogue BASIC.
Sub AffichageImage
Dim oImage As Object
Dim Fichiers() As Variant
Dim oFilePicker As Object
Else
MsgBox "Opération annulée"
End If
End Sub
Sub AfficherBoiteDialogue
- 102 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
DialogLibraries.LoadLibrary( "Standard" )
'Dialog1 est le nom de la Form (Clic droit sur l'objet / propriétés / onglet Général / Nom)
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
End Sub
Sub DeplacementImage
Dim oImage As Object
Dim x As Integer
Wait (40)
Next x
.Visible = False
End With
- 103 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Les zones de liste:
ListBox
Comment remplir une ListBox en utilisant les données contenues dans une colonne ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub AfficherBoiteDialogue_RemplissageListBox
Dim lesCellules As Object , Plage As Object
Dim Cellule As Object
Dim X As Long
DialogLibraries.LoadLibrary( "Standard" )
'Dialog1 est le nom de la Form (clic-droit sur l'objet / propriétés / onglet Général / Nom)
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
X = X + 1
Wend
End Sub
Sub LireContenuLigneSelectionnee
Dim j As Integer
MsgBox "Vous avez sélectionné la ligne " & j +1 & " qui contient la donnée: " & _
oDialog1.getControl("ListBox1").SelectedItem
- 104 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub BoucleElementsListBox
Dim i As Integer, X As Integer
i = oDialog1.getControl("ListBox1").getItemCount()
For X = 0 TO i - 1
MsgBox oDialog1.getControl("ListBox1").getItem(X)
Next
End Sub
Sub RemplissageListBox_Par_Tableau
Dim Tableau(19) As Integer
Dim i As Integer
Dim Mini As Integer, Maxi As Integer
For i = 0 To 19
'Insère un nombre aléatoire entre 10 et 15 dans le tableau
Tableau(i) = Int((Maxi - Mini + 1) * Rnd + Mini)
Next i
'-------------
Sub BoucleElements_MultiSelection_ListBox
Dim Tableau() As Variant
Dim i As Integer
Tableau = oDialog1.getControl("ListBox1").SelectedItems
- 105 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
oDialog1.getControl("ListBox1").Model.MultiSelection = True
Sub SuppressionElementListBox
Dim Obj As Object
Sub SuppressionElementSelectionne
Dim Obj As Object
Dim j As Integer
oFont = oListBox.Model.FontDescriptor
- 106 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
oFont.Name = "Mistral"
'Modifie la taille de la police
oFont.Height = "16"
- 107 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Les barres de
progression: ProgressBar
Comment utilise t'on les barres de progression ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub BarreDeProgression
Dim x As Integer
Dim oBar As Object
End Sub
- 108 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Les zones de texte:
TextField
Comment lire et écrire dans une zone de texte ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub RemplacementSelection
Dim Avant As String , Apres As String
Dim Cible As String, LaChaine As String
Dim NouvelleChaine As String
- 109 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Case com.sun.star.awt.Key.TAB
- 110 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Case com.sun.star.awt.Key.DELETE
Msg = "Touche suppression"
Case com.sun.star.awt.Key.ESCAPE
Msg = "Touche Echap"
Case com.sun.star.awt.Key.DOWN
Msg = "Touche Flèche bas"
Case com.sun.star.awt.Key.UP
Msg = "Touche Flèche haut"
Case com.sun.star.awt.Key.LEFT
Msg = "Touche Flèche gauche"
Case com.sun.star.awt.Key.RIGHT
Msg = "Touche Flèche droite"
Case Else
Select Case Event.KeyChar
'Si les touches ne correspondent pas au clavier numérique:
Case Is < 48, Is > 57
Msg = "Vous devez saisir uniquement des valeurs numériques."
Sub AfficherBoiteDialogue
Dim Tableau()
Dim i As Integer
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
- 111 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Tableau = oDialog1.Controls
End Sub
'Identifie le contrôle
Cible = oEvent.Source.Model
'Modifie la couleur de fond du contrôle
Cible.Backgroundcolor = RGB(255, 255, 255)
End Sub
'Identifie le contrôle
Cible = oEvent.Source.Model
'Modifie la couleur de fond du contrôle
Cible.Backgroundcolor = RGB(150, 150, 200)
End Sub
- 112 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > Les champs Date /
Calendriers
Commment transférer la date sélectionnée dans un
contrôle DateField vers une cellule de la feuille de calcul ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
'---
'La boîte de dialogue est composée:
' d'un objet CommandButton
' d'un objet DateField (calendrier) dont le format d'affichage est JJ.MM.AAAA,
' et d'une propriété "déroulante" = oui.
'---
Option Explicit
Sub AfficheBoiteDeDialogue()
DialogLibraries.LoadLibrary( "Standard" )
'Dialog1 est le nom de la Form
'(Clic droit sur l'objet / propriétés / onglet Général / Nom)
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
'--- Indique la date qui va s'afficher par défaut dans le contrôle "DateField1"
oDialog1.getControl("DateField1").Date = 20070101 'AAAAMMJJ
'--- Permet de définir une date mini et maxi utilisable dans le calendrier
oDialog1.getControl("DateField1").Model.DateMin = 20070101
oDialog1.getControl("DateField1").Model.DateMax = 20071231
'---
oNumberFormats = ThisComponent.NumberFormats
- 113 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
- 114 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > Les boîtes de dialogue BASIC > La sélection de
fichiers: FileControl
Comment utiliser l'objet FileControl ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
L'objet FileControl permet d'afficher la boîte de dialogue « Ouvrir » et de sélectionner un fichier.
Après avoir choisi un fichier, vous pouvez récupérer le chemin complet en utilisant cette macro:
Sub Main
Dim oFichier As Object
Vous pouvez spécifier un chemin par défaut lors de l'initialisation de la boîte de dialogue BASIC.
Si le chemin indiqué n'existe pas, c'est le répertoire courant qui sera affiché par défaut.
Sub AfficherBoiteDialogue
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
End Sub
- 115 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub EnregistrerSous
Dim Fichier As String
Dim Args(0) As New com.sun.star.beans.PropertyValue
'****************************************
'Propriété pour ajouter un mot de passe lors de l'enregistrement :
'Args(0).Name = "Password"
'Args(0).Value = "123456"
ThisComponent.storeAsURL(Fichier, Args())
End Sub
lien : Consultez l'API Guide pour obtenir la liste des propriétes de sauvegarde
ThisComponent.Store
Sub Creer_CopieDeSauvegarde
Dim Fichier As String
Dim Args(0) As New com.sun.star.beans.PropertyValue
ThisComponent.storeToURL(Fichier,Args())
- 116 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub boiteDialogueEnregistrerSous
Dim oFrame As Object ,oDisp As Object
Dim Array()
oFrame = ThisComponent.CurrentController.getFrame()
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
oDisp.executeDispatch(oFrame , ".uno:SaveAs", "", 0 , Array())
end Sub
Sub informations_Sauvegardes
MsgBox ThisComponent.HasLocation
'Renvoie False si le document n'a jamais été sauvegardé
'----------------------------------------------------------
End Sub
Sub Annule_IndicationModifications
- 117 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
ThisComponent.setModified(False)
End Sub
- 118 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ListeFichiersDuRepertoire_V01
'
'Liste tous les fichiers d'un répertoire
'Les fichiers masqués sont pris en compte
'Cet exemple permet aussi de vérifier si le répertoire est vide
'
Dim Direction As String , Resultat As String
If Resultat="" then
MsgBox "Le répertoire est vide."
Else
Msgbox Resultat ,,"Liste des fichiers."
End If
End Sub
Sub ListeFichiersDuRepertoire_V02
'
'Liste tous les fichiers d'un répertoire
'Les fichiers masqués sont pris en compte
'Cet exemple permet aussi de vérifier si le répertoire est vide
'
Dim Chemin As String , NomObj As String , Resultat As String
Dim oSimpleFileAccess As Object
Dim i As Integer
Dim Tableau()
For i = 1 To UBound(Tableau) + 1
NomObj = Tableau( i-1 )
If Not oSimpleFileAccess.isFolder( NomObj ) Then _
Resultat = Resultat & ConvertFromURL( NomObj ) & Chr(13)
Next i
- 119 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
MsgBox Resultat
End Sub
Sub listerRepertoires_V01
Dim Cible As String , Chemin As String
Deuxième possibilité.
Sub listerRepertoires_V02
Dim Chemin As String , NomObj As String
Dim oSimpleFileAccess As Object
Dim i As Integer
Dim Tableau()
For i = 1 To UBound(Tableau) + 1
NomObj = Tableau( i-1 )
If oSimpleFileAccess.isFolder( NomObj ) Then _
MsgBox ConvertFromURL( NomObj )
Next i
End Sub
Sub VerifieExistenceRepertoire_V01
Dim Chemin As String
- 120 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub VerifieExistenceRepertoire_V02
Dim Dossier As String, urlDossier As String
Sub creerRepertoire
'Crée un nouveau dossier nommé "DossierSauvegarde"
'Les répertoires parents seront aussi créés s'ils n'existaient pas
MkDir "C:\mon projet\DossierSauvegarde\Archives"
End Sub
Sub selectionRepertoire
Dim Dossier As Object
Dim Valeur As Integer
Dossier = _
CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
Valeur = Dossier.Execute()
If Valeur = 1 Then _
MsgBox ConvertFromUrl(Dossier.getDirectory())
End Sub
Sub lister_PathSettings
Dim j As Integer , i As integer , x As Integer
Dim oPathSettings As Object , objProprieteSetInfo As Object
Dim Tableau() , TabChemin()
Dim objPropriete As Object , Feuille As Object
Dim ValPropriete As String , NomPropriete As String , Chemin As String
- 121 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
objProprieteSetInfo = oPathSettings.getPropertySetInfo()
'Transfert les données dans le tableau
Tableau = objProprieteSetInfo.getProperties()
x = x + 1
Next i
End Sub
Sub ouvrirExplorateurWindows()
Dim oShell As Object
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
Sub CreerRaccourciBureau()
Dim WshShell As Object , Raccourci As Object
Dim dirBureau As String
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
WshShell = oObj.createInstance("WScript.Shell")
dirBureau = Environ("USERPROFILE") & "\Bureau\" 'adaptez le chemin du bureau
- 122 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
- 123 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub VerifierExistenceFichier_V01
Dim oSFA As Object
Dim Fichier As String, urlFichier As String
End Sub
Sub VerifierExistenceFichier_V02
Dim Fichier As String, urlFichier As String
Sub CopierFichier
Dim Source As String , Destination As String
Dim oSFA As Object
Source = ConvertToUrl("C:\monFichier.ods")
Destination = ConvertToUrl("C:\Documents and Settings\michel\dossier\monFichier.ods")
- 124 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub selectionFichier_puisOuverture()
Dim Fichier As Object , ShExec As Object
Dim X As Integer
Fichier = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
'Spécifie le chemin par défaut lors de l'affichage de la boîte de dialogue
Fichier.SetDisplayDirectory("C:\Documents and Settings\michel\dossier")
'Affiche la boîte de dialogue "Ouvrir"
X = Fichier.Execute()
If X = 1 Then
MsgBox ConvertFromURL( Fichier.Files(0) )
Sub Test()
proprietesFichier_getFile "C:\Documents and Settings\mimi\dossier\Nom Classeur.xls"
proprietesFichier_getFile "C:\dossier\monAppli.exe"
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
Cible = oObj.createInstance("Scripting.fileSystemObject")
Valeur = Cible.GetFile(Fichier)
Resultat = "Chemin : " & Valeur.ParentFolder.Path & Chr(10) & Chr(10) & _
"Chemin court : " & Valeur.shortpath & Chr(10) & Chr(10) & _
"Nom court : " & Valeur.ShortName & Chr(10) & Chr(10) & _
"Date creation : " & CDate( Valeur.DateCreated.Value ) & Chr(10) & Chr(10) & _
"Date derniere modification : " & CDate( Valeur.DateLastModified.Value ) & Chr(10) & Chr(10) & _
"Date dernier acces : " & CDate( Valeur.DateLastAccessed.Value ) & Chr(10) & Chr(10) & _
"Taille fichier : " & Valeur.Size & " octets" & Chr(10) & Chr(10) & _
"Type fichier : " & Valeur.Type & Chr(10) & Chr(10) & _
"Extension fichier : " & Cible.GetExtensionName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier sans extension : " & Cible.GetBaseName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier : " & Cible.GetFileName(Valeur) & Chr(10) & Chr(10) & _
"Chemin et nom complet : " & Cible.GetAbsolutePathName(Valeur)
MsgBox Resultat
- 125 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub Main
Dim Fichier As String
- 126 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ListerFiltresConversion()
Dim oDesktop As Object , oDoc As Object
Dim Fichier As String
Dim Args()
Dim filtresFact As Object
Dim nomFiltres As Variant
Dim i As Integer
'--------
oDesktop = createUnoService("com.sun.star.frame.Desktop")
Fichier = "private:factory/scalc"
'Création d'un nouveau tableur pour lister le résultat de la macro
oDoc = oDesktop.LoadComponentFromURL(Fichier, "_blank", 0, Args())
nomFiltres = filtresFact.getElementNames()
For i = LBound(nomFiltres) To UBound(nomFiltres)
Feuille.getCellByPosition( 0 , i ).String = nomFiltres( i )
Next
'-------------------------
Sub Convertir_Calc_Vers_PDF
dim ArgsProprietes(2) as new com.sun.star.beans.PropertyValue
dim Fichier as string
dim oDoc as object
- 127 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Comment créer une copie d'une présentation Présentation au format Flash (.swf) ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub Conversion_Impress_Flash
Dim ArgsProprietes(1) As new com.sun.star.beans.PropertyValue
Dim Fichier As String
• menu Fichier ;
• Assistants
;
• Convertisseur de documents ;
• sélectionnez les types de documents à convertir :
• cochez l'option « StarOffice », puis les « Documents texte » et « Classeurs »,
• cliquez sur le bouton « Suivant » :
• décochez ou cochez les options qui vous interessent dans la nouvelle fenêtre et paramétrez les
différentes zones d'information :
• le champ « Import depuis: » correspond au dossier contenant les fichiers à convertir,
• le champ « enregistrer dans: » correspond au dossier de destination pour les nouveaux
fichiers convertis,
• cliquez sur le bouton « Suivant » ;
• la fenêtre de paramétrage s'affiche une nouvelle fois si vous avez choisi de convertir plusieurs types
de fichiers (Documents texte et Classeurs) ;
• cliquez sur le bouton « Suivant » ;
- 128 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Conversion_SXW_Vers_ODT
Dim Cible As String , CibleURL As String
Dim Fichier As Object
Dim Args(0) As New com.sun.star.beans.PropertyValue
Dim Args2(2) As New com.sun.star.beans.PropertyValue
Cible = "C:\essai.sxw"
'Sauvegarde du fichier
Fichier.storeAsURL( CibleURL , Args2() )
'Fermeture
Fichier.Close( True )
End Sub
oDoc = ThisComponent
- 129 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
NomFeuille = oDoc.Sheets(i-1).Name
Next
- 130 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub ListeModules
Dim Tableau()
Dim I As Integer
Tableau()= ThisComponent.BasicLibraries.getByName("Standard").ElementNames
For I = 0 To UBound(Tableau())
MsgBox Tableau(I)
Next I
End Sub
Sub RecupererContenuModule
MsgBox ThisComponent.BasicLibraries.getByName("Standard").getByName("Module1")
'Deuxième possibilité
MsgBox ThisComponent.LibraryContainer.getByName("Standard").ModuleContainer. _
getByName("Module1").Source
End Sub
Sub AfficherEditeurMacros()
Dim oDisp As Object
Dim Args()
Sub CreationNouveauModule
Dim Librairie As Object
- 131 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Librairie = ThisComponent.BasicLibraries.GetByName("Standard")
Librairie.InsertByName("NomModule", "REM Test")
End Sub
Un autre exemple :
Sub CreerModule_Et_MacroDynamiquement
Dim laMacro As String
Dim Librairie As Object
Librairie = ThisComponent.BasicLibraries.GetByName("Standard")
End Sub
Sub SupprimerModule
Dim Librairie As Object
Librairie = ThisComponent.BasicLibraries.getByName("Standard")
Librairie.removeByName("Module1")
End Sub
Important :
Cette macro, placée dans le module à supprimer, provoque un plantage du fichier.
- 132 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
ArgsDoc(0).Name = "MacroExecutionMode"
ArgsDoc(0).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
ArgsDoc(0).Name = "MacroExecutionMode"
ArgsDoc(0).Value = 4
Pour connaitre la valeur d'une constante, vous pouvez créer une macro dans LibO/AOO comme dans
l'exemple ci-dessous :
Sub Main
MsgBox com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
End Sub
Option Explicit
Sub Test()
- 133 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
'--------------
'Tableau pour les paramètres du mode masqué
Set Args(0) = _
serviceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue")
'Ouverture du fichier
Set Document = _
Desktop.loadComponentFromURL(Fichier, "_blank", 0, Args())
'--------------
'--------
'Ajoute une temporisation de 2 secondes pour empêcher que le fichier
'ne se ferme avant la fin de l'enregistrement.
T = Timer + 2: Do Until Timer > T: DoEvents: Loop
'--------
'Fermeture du fichier :
Document.Close (True)
Cible = Fichier
Cible = Replace(Cible, "\", "/")
ConvertToURL = "file:///" & Cible
End Function
- 134 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Si vous souhaitez récupérer toute la chaîne à partir du 5eme caractère, n'indiquez pas le dernier argument.
Un autre exemple :
- 135 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Dim x As Integer
x = InStr(1, "Developpez", "e") + 1
MsgBox InStr(x, "Developpez", "e") 'renvoie 4
La recherche n'est pas sensible à la casse si le dernier argument « compare » est égal à 1.
Nota :
La fonction Instr peut aussi servir à contrôler si le contenu d'une chaîne est égal à un des mots « cible »
défini dans la procédure.
Cet exemple vérifie si le contenu de la cellule A1 est égal à un des 3 mots indiqué dans la variable « Cible ».
(Ne fonctionne pas si la cellule A1 est vide).
Vba
Sub RechercheMultiple
Dim Cible As String, strCellule As String
Dim Feuille As Object
Feuille = ThisComponent.getSheets.getByName("Feuille1")
'Récupère le contenu de la cellule A1
strCellule = Feuille.getCellRangeByName("A1").getString
Cible = "engrenage,reducteur,courroie"
MsgBox UCase("Developpez")
- 136 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
MsgBox LCase("Developpez")
Chaine = "123,456"
MsgBox Val(Chaine) ' renvoie 123456
Chaine = "123.456"
MsgBox Val(Chaine) ' renvoie 123,456
Utilisez la fonction LTrim pour supprimer tous les espaces à gauche d'une chaîne de caractères.
Utilisez la fonction RTrim pour supprimer tous les espaces à droite d'une chaîne de caractères.
Créer une jonction entre les chaînes contenues dans un tableau.
Utilisez la fonction Join.
Join (Text As String Array, delimiter)
Text As String Array est le tableau à une dimension contenant les chaînes à joindre.
Delimiter (facultatif) spécifie le séparateur à utiliser entre les éléments du tableau, lors de la jonction. Les
éléments sont séparés par un espace si l'argument Delimiter n'est pas spécifié.
Tableau(0) = "Chaine01"
Tableau(1) = "Chaine02"
Tableau(2) = "Chaine03"
- 137 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Comment extraire les données séparées par un espace dans une chaine de caractères ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub ExtraireChaine
Dim Tableau() As String
Dim i As Integer
'La fonction Split permet d'extraire les données d'une chaine en fonction
'du séparateur spécifié. (Espace dans l'exemple)
Tableau = Split("Ma Chaine de caractères", " ")
Sub extraireValeursNumeriquesCellule_V01()
Dim i As Integer
Dim Cible As String
Dim Nombre As Double
For i = 1 To Len(Cible)
If IsNumeric( Mid( Cible, i, 1) ) Then
Nombre = Val( Mid( Cible, i, Len( Cible ) - i + 1 ) )
MsgBox Nombre
i = i + Len( Str(Nombre) ) - 1
End If
Next
End Sub
Sub extraireValeursNumeriquesCellule_V02()
'Cette version est utilisable uniquement si chaque élément de la chaine est
- 138 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub Test
MsgBox ScinderChaine
("Le club Developpez.com est le principal site d'entraide des développeurs francophones avec jusqu'à 70 000 " &
_
"visites par jour. Le club est fréquenté par 800 000 développeurs (développeurs, chefs de projets, DBA,...) to
_
" vous apporte gratuitement une multitude d'avantages : newsletter, magazine, actualités, cours, tutoriels, ar
_
"comparatifs, débats, sondages, outils, sources, composants et exemples de codes, les BLOGs des développeurs,
_
"développeurs. Le club est animé bénévolement par tous les membres du club et en particulier par l'équipe de r
_
"L'inscription est facile, rapide et gratuite : Inscrivez-vous." , 30 )
End Sub
Cible = DonneesDeBase
For i = 1 To Len(Cible)
X = InStr( NbCar , Cible, " " )
If X = 0 Then
Chaine = Cible
Resultat = Resultat & Chaine
Exit For
End If
Chaine = Mid(Cible, 1, X)
Resultat = Resultat & Chaine & Chr(10)
- 139 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
ScinderChaine = Resultat
End Function
Comment utiliser la fonction Switch afin de renvoyer une donnée associée à une expression ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Switch permet d'évaluer l'expression transférée dans la fonction, puis de renvoyer la donnée associée.
Une erreur d'exécution se produit si l'expression n'est pas trouvée.
Sub ExempleSwitch
'Attention la procédure est sensible aux majuscules et minuscules
MsgBox Correspondance( "Jour" )
End Sub
Fin:
Correspondance = "Indéterminé"
End Function
- 140 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub EnvoiMail
Dim Fichier1 As String , Fichier2 As String
Dim oSystemMail As Object
Dim oMailClient As Object
Dim oMailMessage As Object
Dim lgMailClientFlags As Long
lgMailClientFlags = com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE
With oMailMessage
'Destinataire
'Nota1:
'Solution non trouvée pour définir plusieurs destinataires dans ce champ
.setRecipient( "destinataire1@mail.fr" )
'En copie conforme
.setCcRecipient( Array("destinataire2@mail.fr" , "destinataire3@mail.fr") )
'Le sujet
.setSubject( "Rapport mensuel " & Date )
'Les fichiers attachés
.setAttachement( Array( Fichier1 , Fichier2 ) )
End With
'Nota2:
'Solution non trouvée pour ajouter du texte dans le corps du message.
End Sub
Un autre exemple qui permet d'intégrer du texte dans le corps du message, mais sans pièce jointe :
Sub CreerMail_SystemShellExecute()
Dim oShell As Object
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
'
permet d'insérer un saut de ligne dans le corps du message.
oShell.Execute("mailto:destinataire@mail.fr" & _
"?subject=test envoi mail" & _
"&Body=Bonjour,
Je vous confirme notre rendez-vous de la semaine prochaine.
Cordialement" & _
"
" & Environ("username") , "", 0)
End Sub
- 141 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
mailto:dest1@mail.fr;dest2@mail.fr
Sub EnvoiMail_Outlook( )
Dim oObj As Object , AppOutlook As Object
Dim oMail As Object
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
AppOutlook = oObj.createInstance("Outlook.Application")
oMail = AppOutlook.CreateItem(0)
With oMail
.To = "destinataire@mail.fr"
.Subject = "Rapport mensuel " & Date
.Body = "Bonjour," & Chr(10) & _
"Je vous souhaite une bonne lecture." & Chr(10) & Chr(10) & _
"Cordialement" & Chr(10) & _
Environ("username") & Chr(10) & Chr(10)
.Attachments.Add("C:\Fichier test.ods")
.send
End With
End Sub
Sub AfficheCalculatriceWindows
Dim RetVal As Long
'RetVal = Shell("C:\windows\System32\calc.exe" , 1 )
RetVal = Shell("calc.exe" , 1 )
End Sub
Sub OuvrirAutreApplication
Dim RetVal As Long
Dim Cible As String
La procédure suivante ouvre un fichier dans l'application définie par défaut (utilisation de
SystemShellExecute).
Sub OuvrirFichier()
Dim oShell As Object
Dim Fichier As String
- 142 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub OuvrirPageHtml_FF
Dim RetVal As Long
End Sub
Sub metaInformations_PageHtml_IE( )
Dim oObj As Object
Dim IE As Object
IE = oObj.createInstance("InternetExplorer.Application.1")
MaPageHtml = IE.Document
'Récupère le titre de la page
MsgBox MaPageHtml.Title
- 143 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Comment remplir les champs d'une page html puis déclencher un bouton ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Sub RemplissageChamps_PageHtml_IE( )
Dim oObj As Object
Dim IE As Object
Dim MaPageHtml As Object , Helem As Object
IE = oObj.createInstance("InternetExplorer.Application.1")
MaPageHtml = IE.Document
'A adapter en fonction du type d'objets à manipuler dans la page html
Helem = MaPageHtml.getElementsByTagName("input")
'--- Adaptez le nom des objets contenus dans la page html ---
'remplissage champs
Helem.Item("Profil").InnerText = "NomUtilisateur"
Helem.Item("PassWord").InnerText = "MotDePasse"
End Sub
Sub Informations_PageHtml_IE( )
Dim oObj As Object
Dim IE As Object
IE = oObj.createInstance("InternetExplorer.Application.1")
IE.Visible = True
IE.Navigate("http://www.developpez.com")
- 144 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
MaPageHtml = IE.Document
MsgBox MaPageHtml.Body.innerHTML
MsgBox MaPageHtml.Body.innerText
IE.Quit
End Sub
Cette autre possibilité ne nécessite pas Internet Explorer. La source de la page html s'affiche dans un
classeur :
Sub RecupererSourcePageHtml
'Source: linuxtalk
Dim oDoc As Object
Dim Cible As String
Dim Args(1) As New com.sun.star.beans.PropertyValue
Cible = "http://www.developpez.com"
Args(0).Name = "FilterOptions"
Args(0).Value = "44"
Args(1).Name = "FilterName"
Args(1).Value = "Text - txt - csv (StarCalc)"
Sub Infos_Environnement
MsgBox Environ("USERNAME")
MsgBox Environ("PROCESSOR_IDENTIFIER")
- 145 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
'TEMP
'TMP
'USERDOMAIN
'USERNAME
'USERPROFILE
'windir
'Nota:
'Les variables d'environnement dépendent du système d'exploitation utilisé.
End Sub
Sub versionApplication()
Dim Fso As Object
Dim Appli As String
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
Fso = oObj.createInstance("Scripting.FileSystemObject")
If Fso.FileExists(Appli) Then
MsgBox Fso.GetBaseName(Appli) & " " & Fso.getFileVersion( Appli )
Else
MsgBox "le chemin spécifié n'existe pas:" & Chr(10) & "'" & Appli & "'"
End If
End Sub
Sub LettreLecteurCD()
Dim oObj As Object
Dim Fso As Object
Dim Drv As Integer
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
Fso = oObj.createInstance("Scripting.FileSystemObject")
- 146 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Sub LireFichier_Wav
sndPlaySound32 "C:\windows\system32\BuzzingBee.wav", 1
End Sub
Sub ArreterLecture_Wav
sndPlaySound32 0 , 0
End Sub
- 147 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sommaire > Programmation OBasic > L'interaction avec d'autres applications > Les fichiers
texte
Comment écrire dans un fichier texte en utilisant l'instruction Output ?
Auteurs : Atlantis - Michaël - Silkyroad - Vincent Viale
Si le fichier .txt existe déjà, les anciennes données seront écrasées.
Si le fichier n'existe pas, il sera créé automatiquement.
Sub EcrireDansFichierTexte_OutPut
Dim Fichier As String
Fichier = "C:\NomFichier.Txt"
Sub EcrireDansFichierTexte_Append
Dim Cible As Integer
Dim Fichier As String
Fichier = "C:\NomFichier.Txt"
Cible = freeFile
Open Fichier For Append As #Cible
Print #Cible, "Mon texte dans le fichier"
Close #Cible
End Sub
Sub LireFichierTexte_Input
Dim Ligne As String
Dim Fichier As String
Fichier = "C:\NomFichier.Txt"
- 148 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Msgbox Ligne
Loop
Close #1
End Sub
Sub SupprimerQuelquesLignes
Dim Fichier As String
Dim Collect As New Collection
Dim F As Integer, i As Integer
Dim Ligne As String
Fichier = "C:\NomFichier.Txt"
F = FreeFile
'Lecture du fichier : ajoute chaque ligne dans la collection
Open Fichier For Input As #F
While Not EOF(F)
Line Input #F, Ligne
Collect.Add Ligne
Wend
Close #F
Collect = Nothing
End Sub
Sub SupprimerLignesDoublons
Dim Fichier As String
Dim Collect As New Collection
- 149 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Fichier = "C:\NomFichier.Txt"
F = FreeFile
'Lecture du fichier
Open Fichier For Input As #F
While Not EOF(F)
Line Input #F, Ligne
'Le 2eme argument, key = Cstr(Ligne), est unique et permet donc de filtrer les doublons
'dans la collection.
Collect.Add Ligne , Cstr(Ligne)
Wend
Close #F
On Error GoTo 0
Collect = Nothing
End Sub
Sub nombreLignesFichierTexte_V01()
Dim strLigne As String
Dim nbLignes As Long
Dim Fichier As String
Fichier = "C:\NomFichier.Txt"
Sub nombreLignesFichierTexte_V02()
Dim oObj As Object , Fso As Object , oFile As Object
Dim Fichier As String
Const ForReading = 1
Fichier = "C:\NomFichier.Txt"
oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")
- 150 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Fso = oObj.createInstance("Scripting.FileSystemObject")
oFile = Fso.OpenTextFile( Fichier , ForReading )
oFile.ReadAll
MsgBox "Nombre de lignes : " & oFile.Line
oFile.Close
End Sub
Sub RemplacerChaine_Dans_FichierTexte
Dim Chaine As String , Cible As String
Dim Fichier2 As String , Fichier1 As String
Dim Ancien As String , Nouveau As String
Ancien = "42"
Nouveau = "29"
MsgBox "Terminé."
End Sub
- 151 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
La macro affecte une chaîne de caractères (Bonjour !) dans une variable (maVariable), puis l'affiche dans
un MsgBox :
Sub afficherMessage
Dim maVariable As String
Sub afficherValeur()
Dim maVariable As Integer
maVariable = 10
MsgBox maVariable
maVariable = maVariable + 20
MsgBox maVariable
End Sub
Evitez de nommer les variables en utilisant des mots clés ou instructions/fonctions réservés par
l'application (par exemple Val, Left...).
Le nom des variables doit commencer par un caractère alphabétique et ne pas excéder 255 caractères.
Les noms ne doivent pas contenir de caractères spéciaux.
Le caractère underscore _ est accepté. Essayez de donner des noms les plus explicites possibles afin de
faciliter la relecture de votre programme.
Le type de données doit être défini en fonction de la valeur prise par la variable. Une variable définie de
façon incorrecte pour un contexte particulier, peut générer un message d'erreur. Chaque type de donnée
utilise un espace mémoire. Il est donc important de définir le bon type de données pour libérer de l'espace
mémoire et ne pas ralentir inutilement le traitement de la macro.
Toutes les variables sont converties en type Variant si aucun autre type de données n'est explicitement
déclaré.
En cas de déclaration de plusieurs variables avec le même Dim, vous devez préciser le type de donnée
pour chaque variable.
Par exemple, si pour définir trois variables de type String (strVar1, strVar2 et strVar3) vous écrivez :
Dim strVar1 , strVar2 , strVar3 As String
Dans ce cas strVar1 et strVar2 seront de type Variant.
Pour y remédier et obtenir trois variables String, Il faut écrire :
- 152 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
- 153 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Test_Utilisation_Constantes
Const LaValeur As Integer = 100
Const LeTexte As String = "essai"
- 154 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
- 155 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
ou numérique en valeur de
type Single (simple).
CStr String Convertit une expression
numérique en expression au
format chaîne de caractères.
CVar Variant Convertit une expression de
chaîne ou une expression
numérique en expression de
type variant.
Un exemple qui transforme une chaîne de caractères (String) en type Integer pour l'utilisation dans un
calcul.
Sub Main
Dim x as String
x = "1234"
MsgBox CInt(x) * 2
End Sub
Sub Test
maFonction( "OOo" )
maFonction( "OOo" , 50 )
maFonction( "OOo" , 50 , 100 )
maFonction( "OOo" , , 100 )
End Sub
Function maFonction( Arg1 As String , Optional Arg2 As Variant , Optional Arg3 As Variant ) As
Long
MsgBox "Arguments manquants: " & IsMissing( Arg2 ) & " - " & IsMissing( Arg3 )
End Function
- 156 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
Sub Test_IsNull
Dim vVar As Variant
Dim oVar As Object
End Sub
Sub Test_IsEmpty
Dim vVar As Variant
vVar = "x"
MsgBox IsEmpty( vVar ) 'False
vVar = ""
MsgBox IsEmpty( vVar ) 'False
vVar = Null
MsgBox IsEmpty( vVar ) 'False
vVar = Empty
MsgBox IsEmpty( vVar ) 'True
- 157 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.
FAQ OpenOffice et LibreOffice
End Sub
Null est différent d'Empty, qui indique qu'une variable n'a pas encore été initialisée.
Sub Exemple_TypeName
Dim Cible As Variant
Cible = ThisComponent
Msgbox TypeName( Cible ) 'Object
Cible = "mimi"
Msgbox TypeName( Cible ) 'String
Cible = 10
Msgbox TypeName( Cible ) 'Integer
Cible = True
Msgbox TypeName( Cible ) 'Boolean
Cible = 99999999
Msgbox TypeName( Cible ) 'Double
Cible = 10
Msgbox TypeName( Cible ) 'Integer
Cible = Null
Msgbox TypeName( Cible ) 'Null
End Sub
- 158 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette
page est déposée à la SACD.