Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro per aggiungere righe vuote

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro per aggiungere righe vuote

Postdi ilfuocoblu » 01/09/15 16:11

salve amici! torno ad approfittare della vostra competenza e disponibilità.
tramite query prelevo dei dati, sono giornate dei campionati di calcio.
il foglio viene popolato così:

A1

"Giornata 1"
data
data
data
data
"Giornata 2"
data
data
ecc...

ora, a me servirebbe una macro che mi dividesse i blocchi delle giornate in esattamente 11 righe aggiungendo se è il caso delle righe vuote.
questa esigenza è dovuta al fatto che poi andrò ad inserire questi blocchi in delle maschere che possono accogliere al max 10 partite per giornata.
quindi, se ad esempio ho scaricato un torneo a 14 squadre, quindi 7 partite a giornata, dovrebbe venire così:

Giornata 1
data
data
data
data
data
data
data
vuota
vuota
vuota
Giornata 2
data
data
ecc..

insomma, la query dovrebbe essere così intelligente da capire che tra "Giornata 1", "Giornata 2", ecc... ci devono essere sempre esattamente 10 righe, se il campionato è a 20 squadre e quindi 10 partite non dovrà succedere nulla perchè andrebbe bene così, ma se le partite sono meno di 10 mi dovrebbe aggiungere tante righe vuote quante ne servono per arrivare a 10.

spero di essere stato abbastanza chiaro nella spiegazione :)
ilfuocoblu
Utente Junior
 
Post: 15
Iscritto il: 03/02/15 20:36

Sponsor
 

Re: macro per aggiungere righe vuote

Postdi Anthony47 » 02/09/15 20:46

Puoi provare con una macro come questa:
Codice: Seleziona tutto
Sub bluf()
Dim I As Long, myBlock As Long, myStart As String
'
myBlock = 11        '<<< Quante righe riservare a ogni blocco
myStart = "A2"      '<<< La cella di partenza dell'elenco
For I = 0 To Range(myStart).Offset(10000, 0).End(xlUp).Row
    If UCase(Left(Range(myStart).Offset(I, 0).Value, 8)) = "GIORNATA" Then
        If myg1 = 0 Then
            myg1 = Range(myStart).Offset(I, 0).Row
        Else
            mymiss = myBlock - Range(myStart).Offset(I, 0).Row + myg1
            If mymiss > 0 Then
                Range(myStart).Offset(I, 0).Resize(mymiss, 1).Insert Shift:=xlDown
                myg1 = Range(myStart).Offset(I, 0).Row + mymiss
                I = I + mymiss
            Else
                myg1 = Range(myStart).Offset(I, 0).Row
            End If
        End If
    End If
Next I
MsgBox ("Completato")
End Sub

Va messa in un modulo standard del vba:
Da excel, premere Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.
Le righe marcate <<< vanno personalizzate.

Poi all'occorrenza lanci la macro bluf:
In excel seleziona il foglio da normalizzare; poi premi alt-F8, scegli "bluf" dall' elenco di macro che ti propone, premi Esegui

La macro presuppone che ogni blocco di informazioni cominci con l'intestazione "Giornata".
Blocchi piu' lunghi di quanto impostato nella macro non vengono alterati.

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro per aggiungere righe vuote":


Chi c’è in linea

Visitano il forum: enrico43 e 9 ospiti