Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Tullio,
grazie della routine che funziona alla perfezione come sempre,e l'errore dipendeva fatto che non avevo dichiarato Pubblica la routine.
Poi però il mio Range è variabile ad eccezione della prima cella che è sempre "A4", al momento "A4":"J7"
Ho provato a sostituire il tuo "A1":"D10" con Range("A4").CurrentRegion però da errore e mi chiede la costante.
Passando col cursore su Const sIntervallo As string, lo scrive così : "A4J7" anziché "A4":"J7"
Questa è la sub che legge l'intervallo
______________________________________
Public Sub LeggeTabella()
Dim intervallo As Range
Sheets("Scadenze").Select
RimuoviProtezioneFoglioScadenze
Set intervallo = Range("A4").CurrentRegion
intervallo.CurrentRegion.Select 'mi serviva solo per accertarmi che la tabella sia tutta selezionata
Call Macro2(intervallo) ' qui richiamo la tua Demo
ProteggiFoglioScadenze
End Sub
_____________________________________
Devo lavorare sul trasformare l'intervallo in stringa ?
Prova la seguente modifica della mia routine Demo:
'=========>>
Option Explicit
'--------->>
Public Sub Demo()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Const sFoglio As String = "Scadenze" '<<=== Modifica
Const sIntervallo As String = "A4" '<<=== Modifica
Set WB = ThisWorkbook
Set SH = WB.Sheets(sFoglio)
Set Rng = SH.Range(sIntervallo).CurrentRegion
Call AddBorders(Rng)
End Sub
'--------->>
Public Sub AddBorders(aRng As Range)
Dim ArrBorders As Variant
Dim i As Long
With aRng
ArrBorders = Array(.Borders(xlEdgeLeft), _
.Borders(xlEdgeTop), _
.Borders(xlEdgeBottom), _
.Borders(xlEdgeRight), _
.Borders(xlInsideVertical), _
.Borders(xlInsideHorizontal))
For i = LBound(ArrBorders) To UBound(ArrBorders)
With ArrBorders(i)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Next i
End With
End Sub
'<<=========
Potresti scaricare il mio file di prova Tullio20170528.xlsm
===
Regards,
Norman