Bonjour à tous,
Je viens de me lancer dans la création de Macro sur libreOffice, en Basic.
Le problème que j’ai écrit fonctionne bien, cependant au bout d’un certain temps le message " Erreur d’exécution BASIC. Mémoire de la pile insuffisante" s’affiche.
J’ai l’impression qu’il s’agit d’un problème de boucle… mais impossible de voir comment résoudre cela.
Auriez-vous une idée???
Pour info : le but de l’application est d’afficher en temps réel dans un tableau, les données provenant de fichier (.txt) se trouvant dans un dossier.
Merci d’avance pour votre retour,
Voici le code :
Sub BoucleFichiers()
dim my_doc as object
Dim my_sheets as object
Dim my_cell as object
Dim oDoc As Object , Feuille As Object
Dim Cellule As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Archive")
for f=4 to 100
Cellule3 = Feuille.getCellRangeByName("D" & f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("E" & f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("F" & f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("G" & f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("H" &f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("I" & f)
Cellule3.setString("")
Cellule3 = Feuille.getCellRangeByName("J" & f)
Cellule3.setString("")
next f
P = 4
Dim NouveauChemin As String
Dim Chemin As String, Fichier As String
Dim DateModifFichier As Date
'ThisComponent.Sheets("Archive").Range("4:100").Clear'
Chemin = "\\srvcegid\200\TRANS\E_vers_lavage\"
Fichier = Dir(Chemin & "*.*")
Do While Len(Fichier) > 0
DateModifFichier = FileDateTime(Chemin & Fichier)
Cellule = Feuille.getCellRangeByName("C" & P)
Cellule2 = Feuille.getCellRangeByName("D" & P)
Cellule.setString(Fichier)
Cellule2.setString(DateModifFichier)
Open Chemin & Fichier For Input As #1
Line Input #1, Ligne
'Msgbox Ligne '
' Workbooks.Open (Chemin & Fichier)'
Dim Tableau() As String
Dim i As Integer
truc = Ligne
Tableau = Split(truc, ";")
Cellule3 = Feuille.getCellRangeByName("E" & P)
Cellule3.setString(Tableau(0))
Cellule4 = Feuille.getCellRangeByName("F" & P)
Cellule4.setString(Tableau(1))
Cellule5 = Feuille.getCellRangeByName("G" & P)
Cellule5.setString(Tableau(2))
Cellule6 = Feuille.getCellRangeByName("H" & P)
Cellule6.setString(Tableau(3))
Cellule7 = Feuille.getCellRangeByName("I" & P)
Cellule7.setString(Tableau(4))
Cellule8 = Feuille.getCellRangeByName("J" & P)
Cellule8.setString(Tableau(5))
Close #1
Fichier = Dir()
P = P + 1
Loop
boucle
End Sub
sub boucle
Wait 5000
BoucleFichiers
end sub