Condividi:        

Elimina righe "precedenti" un determinato valore

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

Elimina righe "precedenti" un determinato valore

Postdi marcopont » 13/09/23 15:12

Ciao ragazzi

Partendo da una tabella con 3 colonne (ABC) e x righe, esiste il modo per eliminare le righe che si trovano "sopra" una cella contenente un determinato valore?
Ad esempio se il valore "PROVA" si trova in cella A26, vorrei cancellare tutte le righe da A1 ad A25.

Grazie come sempre

Marco
marcopont
Utente Junior
 
Post: 46
Iscritto il: 10/09/07 14:54

Sponsor
 

Re: Elimina righe "precedenti" un determinato valore

Postdi Anthony47 » 13/09/23 18:39

E' una vera "tabella strutturata" (quando selezioni una sua cella in genere compare una nuova "striscia" di Menu: Struttura Tabella) o sono classiche righe e colonne che a occhio vengono viste come una tabella? E perchè vuoi eliminare anche l'intestazione (visto che nell'esempio cancelli da riga 1 in avanti)? Intendi proprio "cancellare" o basta "nascondere"?
Ti aspettiamo con questi chiarimenti...
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elimina righe "precedenti" un determinato valore

Postdi marcopont » 14/09/23 09:11

ciao Anthony e grazie,

sono classiche righe viste come tabella, senza intestazione....righe che vanno eliminate

grazie ancora
marcopont
Utente Junior
 
Post: 46
Iscritto il: 10/09/07 14:54

Re: Elimina righe "precedenti" un determinato valore

Postdi Anthony47 » 14/09/23 15:51

Allora prova con questa macro:
Codice: Seleziona tutto
Sub Cercaz()
Dim sPos As Range
Dim mMatch, lFor As variant
'
Set sPos = Sheets("Foglio4").Range("B3")    '<<< Foglio e posizione di partenza dove guardare
lFor = "#Zc_Arciz"                          '<<< Valore da cercare
'
mMatch = Application.Match(lFor, sPos.Resize(10000, 1), False)
If IsError(mMatch) Then
    MsgBox ("Stringa non trovata - " & lFor)
Else
    If mMatch > 1 Then
        sPos.Resize(mMatch - 1, 1).EntireRow.Delete
    End If
    MsgBox ("Eliminate " & mMatch - 1 & " righe")
End If
End Sub

Copia il codice in un Modulo standard del progetto vba del tuo file.
Le righe marcate <<< in testa al codice vanno personalizzate come da commento, prima di mandare in esecuzione la macro.
Partendo dalla riga indicata in sPos= la macro cercherà in verticale la cella che contiene quanto indicato in lFor= e verranno eliminate le righe indesiderate. Un msgbox informerà sull'esito.
La natura del dato inserito in lFor= deve essere la stessa del valore da cercare (un numero, una stringa, una data,...); potrebbero emergere problemi a cercare numeri decimali con troppi decimali.

Per informazioni su come inserire la macro nel tuo file guarda qui: viewtopic.php?f=26&t=103893&p=647675#p647675
Per i vari metodi per eseguire una macro: viewtopic.php?f=26&t=103893&p=647678#p647678

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elimina righe "precedenti" un determinato valore

Postdi marcopont » 14/09/23 16:12

come al solito impeccabile

grazie mille
marcopont
Utente Junior
 
Post: 46
Iscritto il: 10/09/07 14:54


Torna a Applicazioni Office Windows


Topic correlati a "Elimina righe "precedenti" un determinato valore":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti

cron