Bonjour
Je souhaiterais pouvoir déplacer une ligne sur une autre feuille en fonction d'une combobox.
Je m'explique plus précisément dans le fichier joint j'ai renseigné une ligne sur chaque feuille. ces lignes représentent des dossiers attribués à des personnes.
Un dossier peut changer d'attribution. J'ai une feuille par personne. je voudrais déplacer la ligne si le dossier change d'attribution mais que celle ci se colle à la ligne vide suivante de la feuille de destination.
J'ai trouvé quelques recherches sur internet mais je n'ai trouvé aucun code pouvant correspondre à ma requête.
Merci de votre aide.
[Résolu][Calc] Déplacer ligne selon zone de liste
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre OOrganisé
- Messages : 76
- Inscription : 03 nov. 2015 18:01
[Résolu][Calc] Déplacer ligne selon zone de liste
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Nikky-974 le 26 août 2016 16:48, modifié 2 fois.
Nikky974
Windows 7 entreprise (2009) LibreOffice Version: Version: 5.0.6.3.0+
Windows 7 entreprise (2009) LibreOffice Version: Version: 5.0.6.3.0+
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Déplacer ligne sur une autre feuille selon combob
Bonjour
Un exemple en remplaçant la boite combinée par une zone de liste.Il faudrait peut-être prévoir la suppression de l'enregistrement déplacé.
Une autre façon de faire.A+
Un exemple en remplaçant la boite combinée par une zone de liste.
Code : Tout sélectionner
Sub Deplacer(oEv as Object)
Dim I as Integer, oNom as Object, maZone as Object, zonesVides as Variant
If oDialog1.getControl("Attribution").SelectedItemPos >= 0 Then
oFeuille = thisComponent.Sheets(oDialog1.getControl("Attribution").SelectedItemPos)
maZone = oFeuille.getCellRangeByName("A4:A100")
zonesVides = maZone.queryEmptyCells.RangeAddresses
ligne = zonesVides(0).StartRow
For I = 0 to UBound(Var)
oNom = oDialog1.GetControl(Var(I))
If oNom.supportsService("com.sun.star.awt.UnoControlListBox") Then
oFeuille.getCellByPosition(I, Ligne).String = oNom.SelectedItem
ElseIf oNom.Model.Name = "DateField1" Then
If onom.Text <> "" Then oFeuille.getCellByPosition(I , Ligne).Value = DateValue(oNom.Text)
Else
oFeuille.getCellByPosition(I , Ligne).String = oNom.Text
End If
Next
Else
MsgBox("Sélectionnez une entrée dans la liste Attribution")
Exit sub
End If
oDialog1.EndExecute
End Sub
Une autre façon de faire.
Code : Tout sélectionner
Sub Deplacer2(oEv as Object)
Dim ZoneDepart as oBject, oFeuilleA as Object, maZone as Object, zonesVides as Variant, ZoneArrivee as Object
Dim gomme as Long
If oDialog1.getControl("Attribution").SelectedItemPos >= 0 Then
oFeuille = thisComponent.CurrentController.ActiveSheet
ZoneDepart = oFeuille.getCellRangeByPosition(0,ligne,5,Ligne)
oFeuilleA = thisComponent.Sheets(oDialog1.getControl("Attribution").SelectedItemPos)
maZone = oFeuilleA.getCellRangeByName("A4:A100")
zonesVides = maZone.queryEmptyCells.RangeAddresses
ligne = zonesVides(0).StartRow
ZoneArrivee = oFeuilleA.getCellRangeByPosition(0,ligne,5,Ligne)
ZoneArrivee.DataArray = ZoneDepart.DataArray
gomme = com.sun.star.sheet.CellFlags.DATETIME + com.sun.star.sheet.CellFlags.STRING + com.sun.star.sheet.CellFlags.VALUE
ZoneDepart.clearContents(gomme)
Else
MsgBox("Sélectionnez une entrée dans la liste Attribution")
Exit sub
End If
oDialog1.EndExecute
End Sub
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre OOrganisé
- Messages : 76
- Inscription : 03 nov. 2015 18:01
Re: [Calc] Déplacer ligne sur une autre feuille selon combob
Super la méthode 2 est impeccable Merci beaucoup
Nikky974
Windows 7 entreprise (2009) LibreOffice Version: Version: 5.0.6.3.0+
Windows 7 entreprise (2009) LibreOffice Version: Version: 5.0.6.3.0+