Ola,
Me.Range("a1:v43") se trata de um objeto que contem todas as celulas desse range,
para percorrer todo o range utilize
Public X As String
Private Sub worksheet_change(ByVal target As Range)
Dim Rng As Range
Dim t As Single
t = Timer
With Application
.Calculation = xlManual
.MaxChange = 0.001
.ScreenUpdating = False
End With
For Each Rng In target
If Rng.Row >= 1 And Rng.Row <= 43 And Rng.Column >= 1 And Rng.Column <= 22 Then
If Rng.Value <> X Then
Call copia
Application.Run "copia"
Call interp_voltx
Application.Run "interp_voltx"
Call apaga
Application.Run "apaga"
X = Rng.Value
End If
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
.ScreenUpdating = True
End With
Next
MsgBox Timer - t
End Sub
sem a planilha de modelo não sei se funciona pois não sei a função dos procedimentos
Cara, me parece que faltou um end if e o next tá fora de lugar; o que testei foi o seguinte:
For Each Rng In target
If Rng.Row >= 1 And Rng.Row <= 43 And Rng.Column >= 1 And Rng.Column <= 22 Then
If Rng.Value <> X Then
Call copia
Application.Run "copia"
Call interp_voltx
Application.Run "interp_voltx"
Call apaga
Application.Run "apaga"
X = Rng.Value
End If
End If
Next
Com esse contador de tempo, a cada verificacao de mudança de celula, ele executou o pop up, isso é, repetiu MUITAS vezes (não entendi o pq, inclusive). Comentei o temporizador mas retorna "Type Mismatch" na linha "deltax = Cells(3 + j, "N").Value", oq nao ocorre quando eu executo a sub interp_voltx separadamente.
na qual:
Sub interp_voltx()
Dim j, k As Integer, X, deltax As Double
Dim t As Single
t = Timer
For j = 1 To 13 'linhas
For k = 1 To 6 'iterações
deltax = Cells(3 + j, "N").Value
X = cubspline(1, deltax, Range("o24:o32"), Range("p24:p32"))
Cells(3 + j, "M").Value = X
Next k
Next j
MsgBox Timer - t
End Sub
Sub copia()
Range("AL2:AL102").Value = Range("Y2:Y102").Value
End Sub
Sub apaga()
Range("AL2:AL102").Select
Selection.ClearContents
End Sub
Saberia dizer o pq retorna isso quando deixo a sub para rodar automaticamente mas nao acontece quando executo ela sozinha?
Muito obrigado
Abs
Postado : 16/10/2015 11:41 am