Accueil Fonctions Calc Menu Basic EDI OOo 1.x EDI OOo 2.x EDI LibO - OOo 3.x Affectation touche Affectation icône Etape par étape Macro débutant Fonctions Basic Dialogues OOo1-2 Dialogues LibO-OOo3 Quelques exemples Exemples dialogue Fonctions perso Définitions Recherche sur site


PROGRAMMATION BASIC. Macro débutant. Loto. Partie 4/10





Accès direct : Loto 1, Loto 2, Loto 3, Loto 4, Loto 5, Loto 6, Loto 7, Loto 8, Loto 9, Loto 10,


Nous allons donc modifier notre macro en ajoutant une nouvelle instruction For.. Next. Il s'agit d'une boucle prédéfinie. Les instructions se trouvant dans cette boucle seront exécutées autant de fois que défini dans la boucle For.. Next.

Commençons par ajouter des déclarations de variable pour les numéros de ligne (Lig) et de colonne (Col) :

Dim Lig as Integer, Col as Integer

Ensuite pour inscrire 10 numéros de suite, il nous suffira d'écrire :

For Col= 0 to 9

Au cours de l'exécution du programme, la variable Col va évoluer de 0 à 9. Notre programme modifié ressemble à ceci :

Loto002

  1. Sub Mon_Loto
  2.    Dim Lig as Integer, Colas Integer
  3.    Dim NumBoule as Integer
  4.    Dim oDocument As Object, oSheet As Object, oCellAs Object
  5.    oDocument = ThisComponent
  6.    oSheet = oDocument.Sheets.getByName("Feuille1")
  7.    Lig = 0
  8.    For Col = 0 to 9
  9.       NumBoule = Int(49*Rnd)+1
  10.       oCell = oSheet.getCellByPosition(Col,Lig)
  11.       oCell.setValue(NumBoule)
  12.    Next Col
  13. End Sub

Notez les décalages de texte (des indentations). C'est volontaire mais non obligatoire et permet de faciliter la lecture du listing. Par exemple For et Next sont alignés et les instructions entre les 2 sont décalées.

Avec cette modification de macro, les instructions entre For Col=0 to 9 et Next Col , donc entre les lignes 8 et 12, seront exécutées 10 fois. La ligne 10 oCell=oSheet.getCellByPosition(Col,Lig) est modifiée (Col, Lig) pour permettre l'évolution des variables.

La ligne Lig=0 n'est pas indispensable puisque par défaut au démarrage d'une macro, les variables sont à zéro. Ca peut toutefois être utile pour une évolution future de la macro.

Ce pourrait être parfait, mais vous l'avez peut-être remarqué, il y a un défaut de taille. On peut avoir 2 numéros identiques. Il va donc falloir modifier notre macro pour vérifier et corriger éventuellement ce "bug".

Que se passe t'il au cours de l'exécution du programme. Vous pouvez le savoir grâce au mode étape par étape.

Nous allons donc commencer par une solution qui consiste à relire les numéros déjà sortis et les comparer en vue d'une modification éventuelle. D'un seul coup nous allons voir plusieurs nouvelles instructions :

If.. Then.. Else Instruction de condition. En bon français on dirait : Si.. Alors.. Sinon.

Do.. Loop Un peu comme For.. Next mais utilisé tel quel, c'est une boucle infinie. Attention !

Exit Avec des variantes Exit Do, Exit For, Exit Sub. Sortie de boucles (Do, For) ou de macro (Sub).



 


 

Ce site n'est plus mis à jour. Merci aux nombreux visiteurs depuis 2003. Consultez le Wiki LibreOffice.
   

Le tableur Calc par l'exemple : christianwtd@free.fr
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France License.

  .

Site optimisé pour Firefox

Dernière modification : 29/08/2010 à 18h48


Déjà plusieurs visites sur ce site depuis quelque temps (au moins vous et moi)

Compteur non certifié