Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
salve ho scritto per un file xls due righe di codice che salvano il foglio su un file csv
il problema e che il codice per come è adesso ignora il filtro attivo e salva sempre tutto il foglio
come posso fare per agire solo con l'insieme dei dati filtrati ?
grazie
- Copia i dati filtrati in un nuovo foglio.
- Salva come .csv il nuovo foglio
- Elimina il nuovo foglio
Non è difficile da implementare. Prova un po'.
Una cosa tipo:
Public Sub m()
Dim sh As Worksheet
Dim shNew As Worksheet
Set sh = ThisWorkbook.Worksheets("Foglio1")
Set shNew = ThisWorkbook.Worksheets.Add
shNew.Name = "FoglioAppoggio"
sh.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
shNew.Range("A1").PasteSpecial
shNew.Select
ActiveWorkbook.SaveAs Filename:="C:\Prova" & shNew.Name & ".csv", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ThisWorkbook.Worksheets(shNew.Name).Delete
Set sh = Nothing
Set shNew = Nothing
End Sub
Dove copio i dati filtrati in una tabella che inizia da A1 del Foglio1 nel FoglioAppoggio, salvo .csv il FoglioAppoggio e poi lo elimino.
Se invece vuoi ciclare le righe di rng (che in questo caso contiene solo le celle visibili):
Public Sub m()
Dim sh As Worksheet
Dim rng As Range
Dim Riga As Range
Set sh = ThisWorkbook.Worksheets("Foglio1")
Set rng = sh.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
For Each Riga In rng.Rows
MsgBox Riga.Address
Next
Set rng = Nothing
Set Riga = Nothing
Set sh = Nothing
End Sub
NOTA. Scusa se ho scritto questa risposta a pezzi, ma sono un po' preso dal lavoro.