pic omnic wrote:
> A mio modesto parere occorrerebbe fare 2 distinte procedure da
> lanciare una dopo l’altra: 1) per inserire righe (la prima procedura
> va bene) 2) per eliminare i gruppi di righe in eccesso (ma partendo
> dal basso) Ti ricordo che vanno eliminati i gruppi INTERI di 7 righe,
> (eventualmente presenti) e solo quando si verificano le seguenti 2
> condizioni: 1) sono tutte vuote nella colonna J. 2) E solo se i vuoti
> sono dalla posizione 1 alla posizione 7, per ciascun gruppo. (se cioè
> ci fossero 7 righe vuote dalla posizione 3 alla 10, queste righe vuote
> vanno mantenute Al link che segue allego un file di esempio.
ho semplificato: trovato "Anno..." elimino tutti gli eventuali vuoti e
parto con l'algoritmo di inserimento righe vuote, che aveva sin
dall'inizio un errore *matematico*, ora sistemato.
per essere sicuro di non cancellare nulla, ho messo in colonna O1 questa
formula (matriciale se non si ha office recente):
=SE(J1:J300="";"";1)
e selezionando la colonna vedo la somma sulla barra di stato, questo
totale non deve variare dopo aver lanciato la macro.
in P1 (sempre matriciale se non si ha office recente):
=SE(RESTO(RIF.RIGA(J1:J300);7)=1;1;"")
il codice:
--8<---------------cut here---------------start------------->8---
Sub inserisci_righe_vuote_quarta()
Set c = [J2]
Set ws = ActiveSheet
While c.Row <= Cells(ws.UsedRange.Rows.Count, "J").Row
If c Like "Anno*" Then
While c(0).Row >= 1 And c(0) = ""
c(0).EntireRow.Delete
Wend
i = IIf((c.Row - 1) Mod 7 <> 0, 7 - (c.Row - 1) Mod 7, 0)
For j = 1 To i
c.EntireRow.Insert Shift:=xlDown
Next j