Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Prima di tutto grazie per la tua disponibilità
non viene cancellata nessuna cella vuota
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Salve ho un file excel così formattato.
La prima riga è sempre popolata. Devo cancellare tutte le colonne che hanno dalla seconda riga un valore nullo.
In questo caso devono essere nascoste le righe F, H ed I
Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Prima di tutto grazie per la tua disponibilità
non viene cancellata nessuna cella vuota
Scusate se non sono stato chiaro.
In pratica ho una tabella con tantissimi dati. Dopo aver applicato un filtro ottengo come risultato una tabella con molti meno dati: ecco un esempio
Siccome ci sono tante celle vuote, avrei bisogno di realizzare una macro, in modo tale che possa ottenere un risultato simile alla print sottostante. Ottenuta cliccando sulla cella col tasto destro del mouse "cancella contenuto" e non elimina righe. Quindi devo cancellare il contenuto delle colonne vuote compreso il titolo della colonna.
Anche se devo dire che tu dici che cancelli il contenuto, anche se dalle immagini a me pare che le colonne siano nascoste.
E sembrerebbe anche che delle righe siano nascoste (forse per via del filtro sulle sole BOE?).
Non so, prova a vedere se la procedura può andar bene (rispetto alle colonne).
ciao
Prova con questa macro:
'----
Sub NascondiColonneVuote()
Const sNomeFoglio As String = "Foglio1"
Const sPrimaCella As String = "A1"
Const iColonnaIniziale As Long = 4
Dim Twb As Workbook
Dim Ws As Worksheet
Dim rPrimaCella As Range
Dim rIntervalloCelle As Range
Dim NumCol As Long, NumRec As Long
Dim iCol As Long
Set Twb = ThisWorkbook
Set Ws = Twb.Worksheets(sNomeFoglio)
Set rPrimaCella = Ws.Range(sPrimaCella)
On Error GoTo Errore
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With rPrimaCella
With .CurrentRegion
NumCol = .Columns.Count
NumRec = .Rows.Count - 1
Set rIntervalloCelle = .Resize(NumRec, NumCol).Offset(1, 0)
End With
End With
With rIntervalloCelle
For iCol = iColonnaIniziale To NumCol
With .Columns(iCol)
.EntireColumn.Hidden = False
If Application.CountA(.SpecialCells(xlCellTypeVisible)) = 0 Then
.EntireColumn.Hidden = True
End If
End With
Next iCol
End With
RiprendiErrore:
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
Exit Sub
Errore:
MsgBox "Errore VBA n. " & Err.Number & vbCrLf & _
Err.Description, vbCritical, "Errore VBA"
Resume RiprendiErrore
End Sub
'---
Qui trovi un file di esempio:
La procedura passa tutte le colonne dell'intervallo dati, a partire dalla colonna iniziale impostata con la costante iColonnaIniziale.
Inizialmente imposta sempre la colonna visibile, poi verifica se, tramite la funzione conta.valori, le celle visibili in base al filtro applicato, sono tutte vuote.
Se sono tutte vuote nasconde la colonna altrimenti la lascia visibile.
Prova a vedere se con i tuoi dati funziona.
Scusate se non sono stato chiaro.
In pratica ho una tabella con tantissimi dati. Dopo aver applicato un filtro ottengo come risultato una tabella con molti meno dati: ecco un esempio
Siccome ci sono tante celle vuote, avrei bisogno di realizzare una macro, in modo tale che possa ottenere un risultato simile alla print sottostante. Ottenuta cliccando sulla cella col tasto destro del mouse "cancella contenuto" e non elimina righe. Quindi devo cancellare il contenuto delle colonne vuote compreso il titolo della colonna.
Ma tu vuoi che vengano NASCOSTE o ELIMINATE?
Perché sono due azioni del tutto differenti e prima dici "Devo cancellare" ma poi dici "devono essere nascoste" (tra l'atro riferendoti alle righe e non alle colonne).
Specifica bene quale azione vuoi venga eseguita.