Righe vuote, traslare dati in alto
-
- Messaggi: 73
- Iscritto il: mercoledì 2 agosto 2017, 23:33
Righe vuote, traslare dati in alto
Ciao ragazzi, ho bisogno che in un elenco di persone, selezionando tale elenco, nel caso del file che vi posto, selezionando l'intervallo di celle A2:C7 io possa far riempire le righe vuote traslando in alto tutto.
Windows8.1 Libreoffice 6.3.4
Re: righe vuote, traslare dati in alto
non ti andrebbe bene eliminare le righe vuote con una macro ?
Ultima modifica di patel il domenica 23 giugno 2019, 18:42, modificato 1 volta in totale.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Righe vuote, traslare dati in alto
Ciao, volendo si può fare con una formula matriciale
da inserire in E2 confermare con la combinazione di tasti ctrl+maiuscolo+invio e da copiare e in collare a destra per tre colonne e in basso fin dove serve.
Codice: Seleziona tutto
=SE(VAL.ERRORE(INDICE(A$2:A$7;PICCOLO(SE(A$2:A$7<>"";RIF.RIGA($A$2:$A$7)-1);RIF.RIGA($A1))));"";INDICE(A$2:A$7;PICCOLO(SE(A$2:A$7<>"";RIF.RIGA($A$2:$A$7)-1);RIF.RIGA($A1))))
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661
Libreoffice 7/24 LinuxMint 21/22
Libreoffice 7/24 LinuxMint 21/22
Re: Righe vuote, traslare dati in alto
Una possibile soluzione è questa
Codice: Seleziona tutto
Sub MoveEmpyRows()
oSheet = ThisComponent.Sheets(0)
c = oSheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow
LastCol = 2
with oSheet
r=1
If oSheet.getCellByPosition(0, LastRow).String <> "" Then
for r= LastRow to 1 step -1
if .getCellByPosition(0, r).String = "" then
dr=LastRow-r
Range = .getCellRangeByPosition(0,r+1,Lastcol,LastRow).getDataArray
dRange = .getCellRangeByPosition(0,r,Lastcol,r+dr-1)
dRange.setDataArray(Range)
.getCellRangeByPosition(0,r+dr,Lastcol,LastRow).clearContents(5)
exit for
end if
next
endif
n=0
For r = Lastrow-1 to 1 step -1
If oSheet.getCellByPosition(0, r).String = "" Then
oSheet.getRows.removeByIndex(r, 1)
n=n+1
End If
Next
oRangeAddress = oSheet.getCellRangeByPosition(0,LastRow-n,Lastcol,LastRow-1).getRangeAddress()
.insertCells(oRangeAddress, com.sun.star.sheet.CellInsertMode.ROWS)
End With
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta