Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Selezionare range da prima riga vuota

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

Selezionare range da prima riga vuota

Postdi Marco75CT » 30/10/16 21:38

Ciao a tutti,
come faccio a selezionare un range partendo dalla prima riga vuota a partire dalla cella A1 e fino all'ultima cella vuota?
Praticamente, ho nella colonna A un primo blocco di dati (variabile) che non deve essere cancellato, separato da una riga vuota, dall'altro blocco che invece voglio cancellare con un comando.
Grazie
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Sponsor
 

Re: Selezionare range da prima riga vuota

Postdi Marius44 » 31/10/16 09:16

Ciao
Per evitare di incorrere negli strali del Moderatore non ti posto la "pappa pronta" ma ti indico come fare.

Imposta una macro che deve trovare:
vuota = Range("A1").End(xlDown).Row + 1 - questa è la prima riga vuota che in codice incontra nello scorrere la colonna A
ultima = Range("A" & Rows.Count).End(xlUp).Row - questa trova l'ultima riga piena della colonna A partendo dal basso.

Combina queste due righe di codice selezionando dalla riga "vuota" fino alla riga "ultima" e tenendo conto della colonna che deve includere nella selezione.

Prova e fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 546
Iscritto il: 07/09/15 22:00

Re: Selezionare range da prima riga vuota

Postdi Anthony47 » 31/10/16 18:37

Mario, qui siamo moolto tolleranti...

Quanto al metodo che hai suggerito direi che e' perfetto se "ultima/prima riga" e' identificabile su una colonna precisa (tu hai usato la A, ma certamente Marco sa come adattare le istruzioni per sondare un'altra colonna).
Potrebbe invece fallire se invece non si sa quali sono le colonne riempite; ad esempio in un caso come questo:
Immaginefree image upload
La riga vuota e' la 9, ma non si sa a priori quale colonna e' l'ultima (la piu' estesa); in questo caso bisognera' usare una tecnica leggermente piu' complicata, ma ne parleremo solo se il problema esiste relmente.

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 17656
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Selezionare range da prima riga vuota

Postdi Marco75CT » 01/11/16 08:51

Ciao ragazzi e grazie dell'aiuto.
Anthony, per me è sufficiente la spiegazione di Marius, ma forse per il bene collettivo sarebbe utile spiegare a anche come risolvere il quesito posto da te.
Un saluto
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Selezionare range da prima riga vuota

Postdi Marius44 » 01/11/16 18:13

Ciao Anthony
Dopo averci lavorato un po' (e forse in maniera non completamente professionale) io applicherei questa macro
Codice: Seleziona tutto
Sub Seleziona_Riga_Vuota()
Dim uRig As Double, uCol As Double, i As Long, j As Long
    'Trova l'ultima riga
    uRig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    'Trova l'ultima colonna
    uCol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
    For i = uRig To 1 Step -1
        For j = 1 To uCol
            If Cells(i, j) = "" Then
                aa = aa + 1
                 If aa = uCol Then Exit For
            Else
                GoTo 1
            End If
        Next j
        riga = i & ":" & i
        Rows(riga).select
1   aa = 0
    Next i
End Sub


Ho ragione?
Ciao,
Mario
Marius44
Utente Senior
 
Post: 546
Iscritto il: 07/09/15 22:00

Re: Selezionare range da prima riga vuota

Postdi Anthony47 » 02/11/16 02:41

Ho ragione?
Hai ragione se la macro produce il risultato esatto (e lo fa, salvo il caso in cui il foglio sia vuoto).
Comunque ci sono 100 modi per fare le stesse cose, un'altro potrebbe essere
Codice: Seleziona tutto
Dim myAr As String, I As Long, uRig As Long
Dim cArea As Range
'
myAr = "A:H"        '<<< Le colonne su cui si vuole cercare
'
On Error Resume Next
uRig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
On Error GoTo 0
For I = 1 To uRig
    Set cArea = Application.Intersect(Range(myAr), Rows(I))
    If Application.WorksheetFunction.CountA(cArea) = 0 Then Exit For
Next I
myvuota = I

In uscita il valore I indica la prima riga vuota, all'interno delle colonne indicate.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 17656
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Selezionare range da prima riga vuota

Postdi Marius44 » 02/11/16 07:48

Ciao Anthony
grazie per la cortese risposta. Ottima la tua soluzione.
Ma la mia non scherza, anche se non vedo perchè dovrebbe essere applicata su un foglio vuoto :lol:

Ciao,
Mario
Marius44
Utente Senior
 
Post: 546
Iscritto il: 07/09/15 22:00


Torna a Applicazioni Office Windows


Topic correlati a "Selezionare range da prima riga vuota":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti