Moderatori: Anthony47, Flash30005
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim tp As Double
tp = Rows(ActiveWindow.ScrollRow).Top + 7
ActiveSheet.Shapes("Grafico 1").Top = tp
Application.ScreenUpdating = True
End Sub
Eh he, quei dati sono aberranti perche' rovinano l'armonia del grafico.Marius ha scritto:Sarebbe interessante sapere [...] "perchè" li ritieni aberranti
=SERIE(Foglio1!$B$1;Foglio1!$A$2:$A$906;Foglio1!$B$2:$B$906;1)
Sub GotoDataPoint()
Dim SerPoint As String, SnP, ChForm As String, SplForm
'
SerPoint = ExecuteExcel4Macro("selection()")
SerPoint = Replace(Replace(SerPoint, "S", "#", , , vbTextCompare), "P", "#", , , vbTextCompare)
SnP = Split(SerPoint, "#")
If UBound(SnP) = 2 Then
ChForm = ActiveChart.SeriesCollection(CLng(SnP(1))).Formula
SplForm = Split(ChForm, ",")
Sheets(Split(SplForm(UBound(SplForm) - 1), "!")(0)).Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Cells(SnP(2), 1).Select
Else
Debug.Print SerPoint
Beep
End If
End Sub
If UBound(SnP) = 2 Then
ChForm = Replace(ActiveChart.SeriesCollection(CLng(SnP(1))).Formula, "'", "")
SplForm = Split(ChForm, ",")
Application.Goto Sheets(Split(SplForm(UBound(SplForm) - 1), "!")(0)).Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Cells(SnP(2), 1)
Else
Sì, così funziona, ovviamente perdo la funzionalità di prima, in cui il grafico rimaneva visibile.
Ma capisco che non posso avere la botte piena e la moglie ubriaca, se possibile cercherò di avere i dati sullo stesso foglio e usare la combinazione di macro precedente, altrimenti uso questa.
Public lbSource As String
Sub ShowDataPoint()
Dim SerPoint As String, SnP, ChForm As String, SplForm
Dim sFrom As Long, LBAdr As String, grAdr As String
'
SerPoint = ExecuteExcel4Macro("selection()")
SerPoint = Replace(Replace(SerPoint, "S", "#", , , vbTextCompare), "P", "#", , , vbTextCompare)
SnP = Split(SerPoint, "#")
If UBound(SnP) = 2 Then
ChForm = Replace(ActiveChart.SeriesCollection(CLng(SnP(1))).Formula, "''", "")
SplForm = Split(ChForm, ",")
sFrom = CLng(SnP(2)) - 3
If sFrom < 1 Then sFrom = 1
grAdr = Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Address
LBAdr = Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Cells(sFrom, 1).Resize(7, 1).Address
UserForm1.ListBox1.RowSource = Replace(SplForm(UBound(SplForm) - 1), grAdr, LBAdr)
lbSource = Replace(SplForm(UBound(SplForm) - 1), grAdr, LBAdr)
UserForm1.Show vbModeless
UserForm1.ListBox1.ListIndex = 3
UserForm1.TextBox1.Text = ""
UserForm1.ListBox1.Enabled = False
UserForm1.TextBox1.SetFocus
Else
Debug.Print "Err_A", SerPoint
Beep
End If
End Sub
Adesso però mi hai ingolosito: è chiedere troppo di avere due freccettine su e giù che mi permettono di navigare tra i valori vicini nella lista? Sarebbe il top dei top!
Public lbSource As String, dOff As Long
Public ufTop As Long, ufLeft As Long, igNora As Boolean
Sub ShowDataPoint()
Dim SerPoint As String, SnP, ChForm As String, SplForm
Dim sFrom As Long, LBAdr As String, grAdr As String
'
SerPoint = ExecuteExcel4Macro("selection()")
SerPoint = Replace(Replace(SerPoint, "S", "#", , , vbTextCompare), "P", "#", , , vbTextCompare)
SnP = Split(SerPoint, "#")
If UBound(SnP) = 2 Then
igNora = True
ChForm = Replace(ActiveChart.SeriesCollection(CLng(SnP(1))).Formula, "''", "")
SplForm = Split(ChForm, ",")
sFrom = CLng(SnP(2)) - 3
If sFrom < 1 Then sFrom = 1
dOff = sFrom - CLng(SnP(2)) + 3
grAdr = Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Address
UserForm1.ScrollBar1.Max = Range(grAdr).Rows.Count
UserForm1.ScrollBar1.LargeChange = Range(grAdr).Rows.Count / 16
LBAdr = Range(Split(SplForm(UBound(SplForm) - 1), "!")(1)).Cells(sFrom, 1).Resize(7, 1).Address
UserForm1.ListBox1.RowSource = Replace(SplForm(UBound(SplForm) - 1), grAdr, LBAdr)
lbSource = Replace(SplForm(UBound(SplForm) - 1), grAdr, LBAdr)
UserForm1.Show vbModeless
UserForm1.ScrollBar1.Value = CLng(SnP(2))
UserForm1.ListBox1.ListIndex = 3 - dOff
UserForm1.TextBox1.Text = ""
UserForm1.ListBox1.Enabled = False
UserForm1.TextBox1.SetFocus
igNora = False
Else
Debug.Print "Err_A", SerPoint
Beep
End If
End Sub
Mamma mia quanto entusiasmo scatena il vba...Questa è una delle applicazioni più fantastiche che abbia mai visto, è utilissima anche solo per verificare a schermo i dati di un grafico, che spesso sono talmente ravvicinati da non riuscire a distinguere dove esattamente succede qualcosa
Torna a Applicazioni Office Windows
Formattzione valori con simbolo triangolini colorati Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 11 |
Eliminare righe diverse dalla prima data del mese Autore: dipdip |
Forum: Applicazioni Office Windows Risposte: 4 |
[EXCEL] controllo corrispondenza tra valori con un vincolo Autore: sbs |
Forum: Applicazioni Office Windows Risposte: 9 |
Visitano il forum: Nessuno e 25 ospiti