Code fonctionnant sous Windows (Ap) mais pas sous Mac (LO)

Fermé
gregml Messages postés 88 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017 - 15 juil. 2015 à 06:00
gregml Messages postés 88 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017 - 15 juil. 2015 à 16:29
Bonjour,

Bonjour,

Je sais désormais :
- ouvrir des fenêtres de dialogue qui demande à l'utilisateur des renseignements (en l'occurence dans mon code : demander un nombre de lignes et de colonnes)
- tracer un tableau, sur le document Writer ouvert, du nombre de lignes et de colonnes entrées par l'utilisateur
- positionner le curseur sur l'ensemble des cellules du tableau
- recopier le contenu des cellules
et ceci, grâce au code suivant :

Option Explicit

Dim l As Variant,c As Variant
  Dim MaTable As Object
    Dim Mondocument As Object
    Dim Montexte As Object
    Dim Moncurseur As Object    
    Dim MonContenu as Object 
   Dim oDoc As Object, maTable As Object
   Dim maCellule As Object
   Dim monTexte As Object, monCurseur As Object, curseurVisible as Object
   dim i as integer, j as integer

Sub Main

   l = InputBox("Nombre de lignes", 17)
   c = InputBox("Nombre de colonnes", 17)
   creerTableau

    For i=0 to 1
For j=0 to 1
   positionnerCurseur(i,j)
   msgbox("OK")
Next j
Next i

RecopierDonnees

End Sub

Sub creerTableau
    
    Mondocument = ThisComponent
    Montexte = Mondocument.text
    Moncurseur = montexte.createTextCursor
    MaTable = Mondocument.createInstance("com.sun.star.text.TextTable")
    MaTable.initialize(l,c) ' nombre de : lignes, colonnes
    MonTexte.insertTextContent(MonCurseur, MaTable, false)
End Sub

Sub positionnerCurseur(A As Integer,B As Integer)
   oDoc = ThisComponent
   curseurVisible = oDoc.CurrentController.ViewCursor
   maTable = oDoc.TextTables.getByName("Tableau1")
   maCellule = maTable.getCellByPosition(A,B)
   monTexte = maCellule.Text
   monCurseur = monTexte.createTextCursor
   curseurVisible.gotoRange(monCurseur, False)
End Sub 

Sub RecopierDonnees
    Dim i as integer, j as integer
  
   c = CLng(c)
   l = CLng(l)

       For i = 0 to c-1
          For j = 0 to l-1
          MonCurseur.gotoEnd(false)
          MonContenu = MaTable.getCellByPosition(i,j)
          MonTexte.insertString(monCurseur,MonContenu.String & " ,",false)     
          Next j
       Next i
End Sub


Mon problème est le suivant :
-> ce code fonctionne correctement pour ma configuration PC : Windows XP Edition Familiale Version 2002 Service Pack 3 / Apache OpenOffice 4.1.0
-> mais pas pour mon Mac à la configuration suivante : Mac OS X 10.6.8 (10K549) / LibreOffice Version: 4.2.5.2

Comment se fait-ce s'il vous plaît ?

Auriez-vous une explication s'il vous plaît ? D'avance, merci,

Greg

A voir également:

2 réponses

OOoForum Messages postés 3871 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 10 juin 2024 960
15 juil. 2015 à 15:47
Les versions d'OpenOffice, de LibreOffice et même celles de XP et de MacOS sont toutes obsolètes.
Les logiciels doivent être testés avec leur dernière version respective et sur des systèmes d'exploitation à jour.


.
0
gregml Messages postés 88 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
15 juil. 2015 à 16:29
Merci. Effectivement, je suis en train de mettre à jour les différentes versions de systèmes d'exploitation.

Merci infiniment,
Greg
0