Selectie rand specificat

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Selectie rand specificat

Mesaj de RAMBO » Lun Iun 20, 2022 1:08 pm

Buna ziua.
Fie fisierul de exemplu. In foaie1 este un tabel, iar in foaie2 alt tabel. Si acum sa incerc sa explic. Ideea este urm: din foaie2 fac selectie pe un rand anume, dar indiferent de coloana, sa zicem ca am pus click la F3. Apoi la rularea unui macro (care va fi din combinatie de taste) trebuie sa faca selectie in tabelul din foaie1, coloana QTY, randul indicat in Tabel2 de pe randul care s-a pus click-ul. Exemplu concret: daca am selectat F3 in Foaie2, apoi rulare cod, trebuie sa faca select in Foaie1 adresa B8. De ce B8? Pentru ca daca am selectat F3 in foaie2, atunci daca mergem pe randul 3 (ca de aici vine F3) pana in coloana fit vedem valoarea 8, iar 8 reprezinta numarul randului din foaie1 coloana B. Daca selectez in foaie2 sa zicem H5, rulare macro, trebuie sa selecteze in foaie1 adresa B2, pentru ca in fit pe randul 5 este valoarea 2. Sper ca m-am facut inteles si multumesc.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Indigo-ONE
Mesaje: 437
Membru din: Mar Dec 11, 2018 8:54 pm

Re: Selectie rand specificat

Mesaj de Indigo-ONE » Lun Iun 20, 2022 8:49 pm

Salut,

Asta e o tema pentru noi, nu???
Fie fisierul de exemplu....
Nu ai fi putut incepe cu...
As avea nevoie de putin ajutor sau
Va rog sa ma ajutati....

In fine....

1. De ce doresti ca la o combinatie de taste sa ruleze codul?
2. De ce nu selectezi direct in foaie 2 in col B?


"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Selectie rand specificat

Mesaj de IPP » Mar Iun 21, 2022 8:27 am

Buna ziua

Atasat gasiti spre testare o propunere.
Am presupus ca informatia dvs., chiar daca folositi tabele, incepe de la randul 1, in ambele foi de interes.

Am folosit urmatorul cod (in acest moment nu exista setat nicio scurtatura pentru rulare sau buton)

Cod: Selectaţi tot

Sub GoToItemRow()

'IPP - 21.06.2022

Dim deCautatRow As Long
 
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

 deCautatRow = Cells(ActiveCell.Row, 2).Value
 Sheets("Foaie1").Select
  Cells(deCautatRow, 2).Select

 Application.Calculation = xlCalculationAutomatic
 Application.ScreenUpdating = True

End Sub
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Selectie rand specificat

Mesaj de RAMBO » Mar Iun 21, 2022 8:54 am

Da, merge, multumesc mult. Partea cu

Cod: Selectaţi tot

Cells(ActiveCell.Row, 2)
era secretul care imi scapa.
Imi cer scuze daca exprimarea din postarea initiala a sunat deplasat, in nici un caz nu am intentionat sa sune "de sus".

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Selectie rand specificat

Mesaj de IPP » Mar Iun 21, 2022 9:05 am

Referirea la o celula se poate face in mai multe feluri. De exemplu Cells(1,1) adica celula aflata la intersectia randului 1 cu coloana 1 este echivalentul lui Range("A1") sau [A1]

In cazul de fata este vorba de identificarea ei pe baza coordonatelor date de numar de rand (dinamic) si numar coloana (fix, in cazul de fata 2). Iar numarul de rand este extras pornind de la randul celulei active in momentul in care se ruleaza codul.

Indigo-ONE
Mesaje: 437
Membru din: Mar Dec 11, 2018 8:54 pm

Re: Selectie rand specificat

Mesaj de Indigo-ONE » Mar Iun 21, 2022 10:49 am

Nu era mai simplu sa folosesti un "change event" in foaie, care sa ruleze automat, la fiecare clic intro celula?
De aceea intrebasem, dar daca m-ai ignorat inseamna ca nu te-a interesat.


"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Selectie rand specificat

Mesaj de RAMBO » Mie Iun 22, 2022 8:01 am

De fapt raspunsesem, dar din nu stiu ce motiv nu se afiseaza postarea, daca te referi la intrebarea
2. De ce nu selectezi direct in foaie 2 in col B?
pentru ca in tabelul original coloana in care se afla valorile declarate al numerelor randurilor (echivalentul coloanei fit din exemplu) este ultima, iar tabelul insusi este considerabil mai mare ca si numar de coloane, astfel ca ultima coloana nu mai este vizibila pe ecran. Ca sa pot pune click pe ea, fie trebuie sa fac scroll la dreapta (iar prima coloana devine implicit invizibila) & click apoi rulare cod, fie fac zoom out la intrerga foaie, dar totul devine prea mic pentru comfortul vizual, fie folosesc freeze panels+ scroll dreapta de fiecare data. Oricare din variantele de mai sus nu faceau casa buna cu o operare facila. Deoarece mai exista si alte coduri VBA care folosesc foaia&tabelul respectiv, nu pot sa inserez coloana mai la stanga, deoarece toate celelalte si-ar schimba implicit adresa si ar rezulta o varza. Cat despre change event... nu stiu cu ce se mananca.

Indigo-ONE
Mesaje: 437
Membru din: Mar Dec 11, 2018 8:54 pm

Re: Selectie rand specificat

Mesaj de Indigo-ONE » Mie Iun 22, 2022 10:03 am

Ma refeream la ceva de genul asta:

Cod: Selectaţi tot

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim r As Long
    K = Val(Range("B" & Target.Row).Value)
    If K > 0 Then
        Application.Goto Worksheets("Foaie1").Range("B" & K)
    Else
        Beep
    End If
End Sub
Pune codul direct in modulul foii (aici Foaie2)


"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Selectie rand specificat

Mesaj de RAMBO » Mie Iun 22, 2022 12:56 pm

Wow. Asta chiar e tare. Initial nici nu mi-am dat seama ce se intampla, am crezut ca a innebunit Excelul pana am am realizat ca care e treaba. :lol:
Multumesc mult.

Scrie răspuns

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”