Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
[Excel] macro copiere celula vecina
Ultima postare: oct 29 2023 23:21, Inițiat de
Adrian_dv
, oct 27 2023 17:53
·
0
#1
Publicat: 27 octombrie 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 Editat de MarianG, 27 octombrie 2023 - 19:42. |
#2
Publicat: 27 octombrie 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
Publicat: 27 octombrie 2023 - 19:44
Si cum se comporta?
Ce nu funcționează? https://learn.micros...plication.OnKey ENTER (numeric keypad) {ENTER} ENTER ~ (tilde) |
#4
Publicat: 27 octombrie 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. Fișiere atașate |
#8
Publicat: 29 octombrie 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
Publicat: 29 octombrie 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
Publicat: 29 octombrie 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
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi