[Résolu][Calc] Afficher les champs d'une boite de dialogue

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

[Résolu][Calc] Afficher les champs d'une boite de dialogue

Message par Daniel60 »

Bonjour,
J'ai réalisé un tableau de relevé du kilométrage parcouru des véhicules
Avec l'aide d' Ekel et de Churay, j'ai poiner ma boîte de dialogue
Mais je me suis aperçu aprés avoir clos mon sujet que lorsqu'on entre un relevé kilométrique d'un véhicule en utilisant la macro, les autres relevés s'effacent des cellules.
Y-a-t-il une solution pour faire apparaitre dans les cases NuméricField la boîte de dialog les relevées figurant déja dans les cellules du tableau?
Voici le code:

Code : Tout sélectionner

Option Explicit

Dim oDlg As Object

Sub OuvrirDialog	
Dim bibli As Object, monDialogue As Object
	DialogLibraries.LoadLibrary("Standard")
	bibli = DialogLibraries.GetByName("Standard")
	monDialogue = bibli.GetByName("Dialog1")
	oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	oDlg.Execute
End Sub

Sub Test
Dim oDoc as Object, maFeuille as Object
Dim position(1 To 12,1 To 14) as Variant
Dim x as Integer, y as Integer, i as Integer, z as Integer
Dim AddressCellule() as String, lst as Object
	oDoc = thisComponent
	maFeuille = oDoc.Sheets.getByName("Relevé Compteurs")
	i = 1
	z = 1
	For x = 4 To 15
		For y = 7 To 20
			AddressCellule = split(maFeuille.getCellByPosition(x,y).AbsoluteName,".")
			position(i,z) = addresscellule(UBound(addressCellule))
			z = z + 1
		Next y
		i = i + 1
		z = 1
	Next x	 
	lst = oDlg.GetControl("ListBox1")
	If lst.SelectedItemPos = -1 Then
		MsgBox("Vous devez sélectionner un mois")
		Exit sub
	End If
	For i = 1 To 14
		maFeuille.getCellRangeByName(position(lst.SelectedItemPos + 1,oDlg.getControl(i).Model.Name)).Value = oDlg.getControl(i).Value
	Next i	
End Sub

Je joinds également le tableau
essai02.ods
Dernière modification par Daniel60 le 21 sept. 2015 12:19, modifié 1 fois.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Afficher les champs dans la boite de dialog

Message par Piaf »

Bonjour
Daniel60 a écrit :Mais je me suis aperçu aprés avoir clos mon sujet que lorsqu'on entre un relevé kilométrique d'un véhicule en utilisant la macro, les autres relevés s'effacent des cellules.
Tu ne tiens pas compte de l'ajout mis dans ce message Re: [Calc] Boite de dialogue inopérante
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc]Afficher les champs dans la boite de dialog

Message par Daniel60 »

Merci à Piaf, cette fois cela fonctionne très bien.
Je peux donc clore ce sujet
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit