Formula per visualizzare la prima cella visibile di colonna filtrata

Anonimo
2011-11-21T05:02:55+00:00

Ciao a tutti,

di seguito vi espongo i miei due quesiti:

  1. come da oggetto, vorrei sapere se esiste una formula, o combinazione di esse, che mi permetta di visualizzare in una determinata cella (E2), il primo valore visualizzato nella colonna filtrata B (in particolare il range B4:xldown); possibilmente evitando macro
  2. con la stessa ipotesi di prima, in una cella, mi piacerebbe visualizzare tutti i parametri (attivi) utilizzati per la colonna filtrata; ad esempio, ho una colonna con 5 volori: "A", "B", "C", "D", "E". Filtro questa colonna per "B" e "D". Nella cella E2 vorrei visualizzare in sequenza i filtri da me adottati in questo caso; eventualmente va bene anche una macro in questo caso.

Ringrazio in anticipo a chiunque mi risponda.

Ciao.

PS E' evidente che il secondo quesito include il primo, però io mi auguro che al primo quesito si possa giungere ad una formula senza macro.

Microsoft 365 e Office | Excel | Per la casa | Windows

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.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-11-21T07:26:53+00:00

Ciao a tutti,

di seguito vi espongo i miei due quesiti:

  1. come da oggetto, vorrei sapere se esiste una formula, o combinazione di esse, che mi permetta di visualizzare in una determinata cella (E2), il primo valore visualizzato nella colonna filtrata B (in particolare il range B4:xldown); possibilmente evitando macro
  2. con la stessa ipotesi di prima, in una cella, mi piacerebbe visualizzare tutti i parametri (attivi) utilizzati per la colonna filtrata; ad esempio, ho una colonna con 5 volori: "A", "B", "C", "D", "E". Filtro questa colonna per "B" e "D". Nella cella E2 vorrei visualizzare in sequenza i filtri da me adottati in questo caso; eventualmente va bene anche una macro in questo caso.

Ringrazio in anticipo a chiunque mi risponda.

Ciao.

PS E' evidente che il secondo quesito include il primo, però io mi auguro che al primo quesito si possa giungere ad una formula senza macro.

1 - No

2 - Solo ricorrendo a macro

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-12-06T10:29:19+00:00

Grande! Funziona benissimo. Ho solo 2 cose da chiederti

Ma è possibile separare i vari filtri nelle relative colonne? Ad esempio tabella A1:E100, sarebbe bello poter visualizzare i filtri attivi in A105, B105, C105, D105 e E105 (dove non c'è filtro "")

Ovviamente mi interesserebbe anche limitare il campo della tabella? (se riconosce dunque solo il campo della tabella.

Ecco un esempio in cui ho filtrato solo per colonna A e colonna C:

Dato1 Dato2 Dato3 Dato4
a5 b15 c29 d37
a3 b11 c25 d34
a10 b11 c25 d35
a5 b17 c26 d35
a3 b15 c22 d33
Filtri ColA Filtri ColB Filtri ColC Filtri ColD
a10, <br><br>a3, <br><br>a5, <br><br>a6 c22, <br><br>c25, <br><br>c26, <br><br>c29

Grazie e scuami la pignoleria

Restando nel mio esempio, prova a sostituire il codice con questo:

Public Sub m()

    Dim sh As Worksheet

    Dim rng As Range

    Dim rCol As Range

    Dim c As Range

    Dim lURiga As Long

    Dim col As Collection

    Dim v As Variant

    Dim s As String

    Dim lCol As Long

    Dim lriga As Long

    Dim sCriteria As String

    Dim lCont As Long

    Dim lRifRiga As Long

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    lCont = 101

    With sh

        If .AutoFilterMode Then

            Set rng = .AutoFilter.Range

            lURiga = rng.SpecialCells(xlCellTypeLastCell).Row

            For lCol = 1 To rng.Columns.Count

                lRifRiga = .Cells(.Rows.Count, lCol).End(xlDown).Row

                .Range(Cells(101, lCol), Cells(lRifRiga, lCol)).Clear

            Next

            If rng.Rows.Count > rng.SpecialCells(xlCellTypeVisible).Rows.Count Then

                On Error Resume Next

                For lCol = 1 To rng.Columns.Count

                    sCriteria = .AutoFilter.Filters(lCol).Criteria1

                    If Err.Number = 1004 Then

                        Err.Number = 0

                    Else

                        Set rCol = Range(rng(1, lCol), rng(lURiga, lCol)).SpecialCells(xlCellTypeVisible)

                        Set col = New Collection

                        For Each c In rCol

                            col.Add CStr(c.Value), CStr(c.Value)

                        Next

                        For Each v In col

                            's = s & v & ","

                           .Cells(lCont, lCol).Value = v

                           lCont = lCont + 1

                        Next

                        Set col = Nothing

                        lCont = 101

                    End If

                Next

                '.Range("F1").Value = Left(s, Len(s) - 1)

            Else

                '.Range("F1").Value = "Nessun criterio"

            End If

        End If

    End With

    Set c = Nothing

    Set rCol = Nothing

    Set col = Nothing

    Set rng = Nothing

    Set sh = Nothing

End Sub

NOTA. Metto i criteri da riga 101 per ciascuna colonna. Modifica come preferisci.

La risposta è stata utile?

0 commenti Nessun commento

24 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-11-22T20:34:39+00:00

    Certo:

    1. nome foglio: " As-Built register"
    2. C3:C (fino all'ultima cella valore NON vuoto)
    3. E2 (in realta è una cella unita C2:E2... in questo caso come faccio ad individuare questa cella unione di singole celle?)

    Grazie a te.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-11-21T09:24:01+00:00

    Ok grazie mille.

    E' possibile sapere che istruzione serve per risalire al nome/criterio adottato per il filtro?

    Grazie ancora in anticipo.

    Per istruzione intendi: una macro che recuperi quanto chiedi?

    Se è così, mi serve sapere:

    • il nome del foglio dove hai il filtro
    • il Range del filtro
    • dover mettere i valori recuperati(foglio/celle)

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-11-21T08:46:18+00:00

    Ok grazie mille.

    E' possibile sapere che istruzione serve per risalire al nome/criterio adottato per il filtro?

    Grazie ancora in anticipo.

    La risposta è stata utile?

    0 commenti Nessun commento