1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| sub sspressepapieryy
' sub sspressepapier
rem--------------------------coeip ligne1 sur ligne 2 feuille1-qui fonctionne------------------------------------------
'' sub collefeuille1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
'args1(0).Value = "$Q$2"
args1(0).Value = "$Q$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
'args2(0).Value = "$Q$2:$FX$2"
args2(0).Value = "$Q$1:$FX$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$Q$2:$Q$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$Q$2:$FX2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PasteUnformatted", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
'end sub
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem -----------------------------------------------------------------
rem------------------sans presse-papier
Dim oDoc as Object, oRange as Object, aCopier as Object
oDoc = thisComponent
' oRange = oDoc.Sheets(0).getCellRangeByName("Q2:FX2") ' la zone à copier
orange = oDoc.Sheets(4).getCellRangeByName("Q2:FX2")
oDoc.CurrentController.select(oRange) 'Sélection de la zone
rem-------------------------
aCopier = oDoc.CurrentController.getTransferable() 'Copie
' aCopier = dispatcher.executeDispatch(document, ".uno:PasteUnformatted", "", 0, Array())
rem----------------------------
ThisComponent.Sheets("PUBLIPOSTAGE")'.getCellRangeByName("D6:G11")
rem--------------------------
' Sub TrouverLigneVide()
Dim monDocument As Object
Dim maFeuille As Object
Dim maCellule As Object
monDocument = ThisComponent
Dim zoneVide As Variant
Dim maZone As Object
Dim celluleVide As Integer
' dim dispatcher as object
'Je désigne la feuille sur laquelle je travaille
maFeuille = ThisComponent.getSheets.getByName("PUBLIPOSTAGE")
'Affiche la feuille correspondante au cas où c'est autre feuille qui est affichée à l'écran (FACULTATIF)
ThisComponent.CurrentController.ActiveSheet = maFeuille
'Je désigne la zonne sur laquelle je cherche une ligne vide de la manière suivante
'Colonne A qui est ma colonne de référence.
'Je commence à la ligne A2 (A2 comporte mes titres de mon tableau). donc la recherche commencera à partir de la ligne 3
'Je termine à A100. Il ne faut pas hésiter à aller plus loin si le nombre de lignes
'pouvant étre utiliser est supérieur (exemple: A300)
maZone = maFeuille.getCellRangeByName("A2:A400")
zoneVide = maZone.queryEmptyCells.RangeAddresses
'Je trouve la dernière ligne utilisée
celluleVide = zoneVide(0).StartRow
'J'ajoute 1 pour obtenir la ligne vide
celluleVide = celluleVide + 1
Rem-------------------------------------------------------------------------------------------------
'Je vais à la ligne vide de la colonne A et j'insère mon nouvel enregistrement (nom)
maCellule = maFeuille.getCellRangeByName("A" & celluleVide)
' maCellule.String = "nouveau nom"
' End sub
rem----------------------------reprise de sspresses papier
oRange = oDoc.Sheets(5).getCellRangeByName("A" & cellulevide) 'Première cellule pour recopie de la zone
oDoc.CurrentController.select(oRange) 'Selection de la cellule
rem------------------------------------------------------
oDoc.CurrentController.insertTransferable(aCopier) 'Transfert des données
' dispatcher.executeDispatch(document, ".uno:PasteUnformatted", "", 0, Array())
rem-------------------------------------
End Sub |
Partager