Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Mauro,
scusa ma mi sono accorto di una condizione nella quale questa macro non lavora bene!
Supponiamo che nel range nella prima riga sia presente un filtro automatico.
Le righe visualizzate potrebbero non essere contigue, e facendo una copia della riga precedente ad activecell, in activecell+1, questa copia puo avvenire in modo sbagliato e dare errore.
Come faccio a valutare questa NON contiquità delle righe ( lo sono per effetto del filtro, ma non come numero seriale)
Grazie Ancora
Questa macro ti fa vedere come recuperare: colonne e criteri dei tuoi filtri:
Public Sub mCriteriFiltro()
Dim sh As Worksheet
Dim rng As Range
Dim lCol As Long
Dim ftr As Filter
Dim s As String
Set sh = ThisWorkbook.Worksheets("Foglio1")
lCol = 1
With sh
If .AutoFilterMode Then
For Each ftr In sh.AutoFilter.Filters
s = ""
If ftr.On Then
s = s & "Criterio1: " & ftr.Criteria1
If ftr.Operator Then
s = s & " - Criterio2: " & ftr.Criteria2
End If
End If
If Len(s) > 0 Then
MsgBox "Colonna del filtro: " & lCol _
& vbNewLine & s
End If
lCol = lCol + 1
Next
End If
End With
Set ftr = Nothing
Set rng = Nothing
Set sh = Nothing
End Sub
Non dovrebbe essere difficile capire come:
- Controllare l'esistenza del filtro
- Recuperare colonne e criteri applicati
- Togliere il filtro
- Eseguire la macro che inserisce le righe
- Riapplicare il filtro passando colonne e criteri
Se non riesci(ma prima prova, eh) fai sapere. Grazie.