Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
[Excel] macro copiere celula vecina
Last Updated: Oct 29 2023 23:21, Started by
Adrian_dv
, Oct 27 2023 17:53
·
0
#1
Posted 27 October 2023 - 17:53
Salut! Pentru introducerea mai rapida a datelor intr-un formular, incerc sa folosesc un makro, care la apasarea tastei {ENTER} sa verifice daca celula activa este goala, iar in acest caz sa copieze valoarea din celula de deasupra. Excel-ul e setat sa deplaseze celula activa in dreapta, extensia fisierului e xlsm.
Am gasit pe internet codul de mai jos, dar nu functioneaza. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = ActiveCell.Address Then If ActiveCell.Value = "" Then Application.OnKey "{ENTER}", "CopiazaInCelula" Else Application.OnKey "{ENTER}", "" End If End If End Sub Sub CopiazaInCelula() If ActiveCell.Row > 1 And ActiveCell.Value = "" Then ActiveCell.Value = ActiveCell.Offset(-1, 0).Value End If End Sub Edited by MarianG, 27 October 2023 - 19:42. |
#2
Posted 27 October 2023 - 18:44
Functioneaza, probabil gresesti undeva.
- asigura-te ca ai codul in module 1 - da-i un run cu casuta valida selectata sa vezi ca o completeaza - save si inchizi visual basic - folsesti enter de la keypad (nu enterul 'principal') ...la mine merge. Daca la tine nu, da mai multe detalii/poze. |
#3
Posted 27 October 2023 - 19:44
Si cum se comporta?
Ce nu funcționează? https://learn.micros...plication.OnKey ENTER (numeric keypad) {ENTER} ENTER ~ (tilde) |
#4
Posted 27 October 2023 - 23:03
TehCube, on 27 octombrie 2023 - 18:44, said:
Functioneaza, probabil gresesti undeva. - asigura-te ca ai codul in module 1 - da-i un run cu casuta valida selectata sa vezi ca o completeaza - save si inchizi visual basic - folsesti enter de la keypad (nu enterul 'principal') ...la mine merge. Daca la tine nu, da mai multe detalii/poze. Codul se afla in module 1, cu butonul de run functioneaza, am salvat fisierul. Problema apara cand folosesc tasta enter (keypad). Am testat intr-un workbook nou, functioneaza doar cat timp e deschisa fereastra visual basic, cu butonul de run sau tasta F5. Attached Files |
#5
Posted 28 October 2023 - 08:30
Target și ActiveCell nu sunt aceleași când dai enter?
Edited by MarianG, 28 October 2023 - 08:41. |
#7
Posted 29 October 2023 - 02:35
Multumesc de ajutor TehCube si MarianG! Am inteles ce trebuia sa fac. Acum functioneaza.
Attached Files |
#8
Posted 29 October 2023 - 11:06
Ma bucur ca i-ai dat de cap, dar ceva tot e suspect la triggerul ala cu target.address = activecell.address
Cand ai zis ieri ca tot nu functioneaza, am incercat iar cu un fisier nou (ca nu-l mai aveam pe cel de prima oara), si nici mie nu-mi mai mergea. Sunt 90% sigur ca nu bagasem cod in sheet1 prima oara cand incercasem. Am refacut acum cu metoda pe care ai aratat-o aici (inclusiv schimbarile din subrutina) si tot nu-mi functioneaza mie, cu trigger in sheet1, degeaba. Iar faptul ca sub-ul functioneaza si acum si inainte cand dai run imi zice ca problemele sunt date de trigger, de fapt. Da' nu reusesc sa-mi dau seama cum de a mers prima oara, ca luasem fix codul pe care l-ai dat tu. |
#9
Posted 29 October 2023 - 16:26
MarianG, on 28 octombrie 2023 - 08:30, said:
Target și ActiveCell nu sunt aceleași când dai enter? TehCube, on 29 octombrie 2023 - 11:06, said:
Ma bucur ca i-ai dat de cap, dar ceva tot e suspect la triggerul ala cu target.address = activecell.address Am scos triggerul, din ce inteleg sunt suficiente functiile din subrutina pentru celula activa. Am postat codul exact cum functioneaza la mine. Sa imi spuneti va rog daca e scris corect, sa nu am surprize cu ceva erori. Pentru activare folosesc shortcut key. 'Cod adaugat in Sheet1 Private Sub Worksheet_Change(ByVal Target As Range) Application.OnKey "{ENTER}", "CopiazaInCelula" End Sub 'Cod adaugat in Module1 Sub CopiazaInCelula() 'Tasta ENTER deplaseaza selectia in dreapta 'daca celula activa se afla in randurile 1/11 If ActiveCell.Row <= 11 Then ActiveCell.Offset(0, 1).Select 'Daca celula activa e goala si nu se afla pe randurile 1/11 'copiaza valoarea celulei de deasupra ElseIf ActiveCell.Row > 11 And ActiveCell.Value = "" Then ActiveCell.Value = ActiveCell.Offset(-1, 0).Value ActiveCell.Offset(0, 1).Select 'Nu modifica celulele care contin date Else If ActiveCell.Row > 11 And Not IsEmpty(ActiveCell.Value) Then ActiveCell.Offset(0, 1).Select End If End If End Sub |
#10
Posted 29 October 2023 - 23:21
Yup, pare sa functioneze corect. Am testat cateva chestii care mi-au trecut prin cap, dar e destul de simplu, nu vad de ce ar face probleme.
Reusisem pe la pranz sa fac codul original sa mearga dar cu Worksheet_Selectionchange in loc de Change, dar nici asa din prima. |
|
Anunturi
▶ 1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users