Cod: Selectaţi tot
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "D3" Then
If Range("d3") > 0 Then
Application.EnableEvents = False
Me.Range("f4").Select
Application.EnableEvents = True
End If
End If
End Sub
Cod: Selectaţi tot
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "D3" Then
If Range("d3") > 0 Then
Application.EnableEvents = False
Me.Range("f4").Select
Application.EnableEvents = True
End If
End If
End Sub
Pai daca scrii un caracter intr-o celula sau orice altceva, atata timp cat nu dai un Enter sau apesi o alta tasta care permite validarea acelui text, cum ai vrea tu sa mearga mai departe?Dar asta implica ENTER dupa fiecare caracter
Cod: Selectaţi tot
Private Sub cmdOK_Click()
Dim cell As Range
Dim i As Long
'Sparge textul introdus in caractere
i = 0
cSplit = txtSplit.Value
Dim aSplit() As Variant
ReDim aSplit(1 To Len(cSplit))
For i = 1 To Len(cSplit)
aSplit(i) = Mid(cSplit, i, 1)
Next i
'sterge textul vechi
Range("rngSplit").ClearContents
'Scrie caracterele in celule
i = 0
For Each cell In Range("rngSplit")
i = i + 1
If i < Len(cSplit) + 1 Then
cell.Value = aSplit(i)
End If
Next cell
Unload Me
End Sub
Private Sub txtSplit_Enter()
'Preselecteaza textul la intrarea in textbox
frmText.txtSplit.SelStart = 0
frmText.txtSplit.SelLength = Len(frmText.txtSplit.Value)
End Sub
Private Sub txtSplit_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Daca se apasa ENTER echivaleaza cu apasarea butonului OK
If KeyCode = 13 Then 'sau KeyAscii = vbCrLf
cmdOK_Click
End If
End Sub
Private Sub txtSplit_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Daca se apasa ESC iese fara sa faca nimic
If KeyAscii = 27 Then 'sau KeyAscii = vbKeyEscape
Unload Me
End If
End Sub
Cod: Selectaţi tot
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
Set isect = Application.Intersect(Target, Range("rngSplit"))
If isect Is Nothing Then
frmText.Hide
Else
'Initializare cu valoarea actuala a rangeului (daca exista)
cSplit = ""
For Each cell In Range("rngSplit")
cSplit = cSplit & cell.Value
Next cell
frmText.txtSplit.Value = cSplit
frmText.Show
frmText.txtSplit.SetFocus
End If
End Sub
La Excel Options - Advanced - Editing Options ai After pressing Enter, move selection si alegi de acolo ce vrei (informatia doar ca sa stii ca se poate si altceva decat pe coloana in jos)RAMBO scrie:Adica fara ENTER dupa fiecare caracter, pentru ca ar trece la urmatorul rind si se intinde pe verticala.
Cu placere... chiar daca evenimentul nu se numeste neaparat "OnKey"... depinde de aplicatie... la unele chiar asa se cheama... On Key, la altele On KeyPress (cum este si in evenimenul folosit in textbox-ul din exemplul de mai sus: txtSplit_KeyPress), etc... dar "pe acolo"...RAMBO scrie:Nu stiam ca se numeste eveniment "onkey", dar exact la asta faceam referire. Oricum in lipsa acestuia merge foarte bine si varianta cu VBA. Multumesc.
Centrul de training si consultanta IT Learning activeaza de peste 15 ani pe piata serviciilor de instruire si certificare IT din Romania. |
Link-uri utile |
Categorii de cursuri |
Contact |
© 2019 IT Learning Business Intelligence School - Citeste termeni si conditii |