Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Eva,
Chiedo scusa perché ritorno tardivavamente alla tua domanda!
Prova a sostituire il codice precedente con la seguente versione:
'=========>>
Option Explicit
Option Compare Text
'--------->>
Public Sub Aggiorna_Card(aSH As Worksheet)
Dim WB As Workbook
Dim SH As Worksheet
Dim srcSH As Worksheet
Dim srcRng As Range, deatRng As Range
Dim LObj As ListObject
Dim arrIn As Variant, arrOut() As Variant
Dim arrColonne As Variant
Dim Res As Variant
Dim vVal As Variant
Dim arrMese As Variant
Dim aStr As String, bStr As String
Dim i As Long, j As Long, k As Long
Dim iCtr As Long, jCtr As Long, iCol As Long
Dim bFlag As Boolean
Const sColonne_Da_Copiare As String = _
"1,2,4,6,7,8,9,10" '<<=== Modifica
Const iColonna_Attivata As Long = 13 '<<=== Modifica
Const sPrefisso As String = "Card_" '<<=== Modifica
Set WB = ThisWorkbook
arrMese = Application.GetCustomListContents(3)
arrColonne = Split(sColonne_Da_Copiare, ",")
For Each SH In WB.Worksheets
With SH
aStr = .Name
bStr = Left(aStr, 3)
Res = Application.Match(bStr, arrMese, 0)
If Not IsError(Res) Then
Set srcRng = .ListObjects(sPrefisso & aStr).DataBodyRange
arrIn = srcRng.Value2
For i = LBound(arrIn) To UBound(arrIn)
If arrIn(i, iColonna_Attivata) = "NO" Then
iCtr = iCtr + 1
ReDim Preserve arrOut(1 To 8, 1 To iCtr)
For j = LBound(arrColonne) To UBound(arrColonne)
jCtr = jCtr + 1
iCol = arrColonne(jCtr - 1)
vVal = arrIn(i, iCol)
arrOut(jCtr, iCtr) = vVal
Next j
jCtr = 0
End If
Next i
End If
End With
Next SH
bFlag = CBool(iCtr)
If bFlag Then
arrOut = Application.Transpose(arrOut)
End If
With aSH.ListObjects(1)
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.Delete
End If
If bFlag Then
.HeaderRowRange.Offset(1). _
Resize(UBound(arrOut)).Value2 = arrOut
.Range.Sort key1:=.ListColumns(4), _
order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End With
End Sub
'<<=========
===
Regards,
Norman