Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Istoric deplasari - GPS

Surub autoforant-metric mixt

Lipsa semnal - strategie de marke...

One week meal plan - Pachet
 Apometru defect?

Nelamurire legalitate TVA casa noua

Huawei P20 Lite, ecran negru la a...

Bibelorui, macrameuri si altele
 Inventia secolului din Afganistan?

G84 - pro și contra

Masina de familie,buget 11000-120...

In ce situatii cereti o a doua op...
 DigiMobil - IP public?

Glet de finisaj peste chit acrili...

La multi ani @Passenger001!

La multi ani @barbosa1bis!
 

[Excel] macro copiere celula vecina

- - - - -
  • Please log in to reply
9 replies to this topic

#1
Adrian_dv

Adrian_dv

    New Member

  • Grup: Members
  • Posts: 9
  • Înscris: 11.12.2007
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
TehCube

TehCube

    Railgun user

  • Grup: Senior Members
  • Posts: 4,815
  • Înscris: 09.01.2007
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
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,483
  • Înscris: 10.08.2005
Si cum se comporta?
Ce nu funcționează?


https://learn.micros...plication.OnKey
ENTER (numeric keypad)  {ENTER}
ENTER  ~ (tilde)


#4
Adrian_dv

Adrian_dv

    New Member

  • Grup: Members
  • Posts: 9
  • Înscris: 11.12.2007

 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

  • Attached File  1.jpg   20.36K   14 downloads
  • Attached File  2.jpg   36.22K   14 downloads
  • Attached File  3.jpg   77.18K   13 downloads
  • Attached File  4.jpg   59.43K   13 downloads


#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,483
  • Înscris: 10.08.2005
Target și ActiveCell nu sunt aceleași când dai enter?

Edited by MarianG, 28 October 2023 - 08:41.


#6
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,483
  • Înscris: 10.08.2005
Attached File  20231028_122704.jpg   449.33K   14 downloads

#7
Adrian_dv

Adrian_dv

    New Member

  • Grup: Members
  • Posts: 9
  • Înscris: 11.12.2007
Multumesc de ajutor TehCube si MarianG! Am inteles ce trebuia sa fac. Acum functioneaza.

Attached Files

  • Attached File  5.jpg   157.49K   8 downloads


#8
TehCube

TehCube

    Railgun user

  • Grup: Senior Members
  • Posts: 4,815
  • Înscris: 09.01.2007
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
Adrian_dv

Adrian_dv

    New Member

  • Grup: Members
  • Posts: 9
  • Înscris: 11.12.2007

View PostMarianG, on 28 octombrie 2023 - 08:30, said:

Target și ActiveCell nu sunt aceleași când dai enter?

View PostTehCube, 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
TehCube

TehCube

    Railgun user

  • Grup: Senior Members
  • Posts: 4,815
  • Înscris: 09.01.2007
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

Chirurgia spinală minim invazivă 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

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate