Selectare celula cu prima potrivire gasita

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

Selectare celula cu prima potrivire gasita

Mesaj de RAMBO » Joi Oct 29, 2020 10:32 am

Buna ziua.
Fie fisierul Exemplu. In foaie1 este un tabel cu niste inregistrari, iar in foaie2 este un alt tabel (asemanator) cu titlu de nomenclator. Ideea este urmatoarea: operatorul face in tabelul din foaie2 click pe o celula din coloana Cal ID. Apoi ar trebui sa ruleze un cod (buton sau hotkey) care face select in dreptul primei valoari gasite exact match din tabel1 (foaie1) coloana Obs, daca o gaseste; daca nu, un msgbox prin care "spune acest lucru". Ex: click pe B11 din tabel2, apoi rulare cod care ar trebui sa faca select pe D231 din tabel1.
Multumesc.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

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

Re: Selectare celula cu prima potrivire gasita

Mesaj de IPP » Joi Oct 29, 2020 11:17 am

Buna ziua

Aveti spre testare o propunere folosind macro. Am vazut ca folositi table (si) in zona-sursa deci probabil va trebui sa editati aproape tot in cod.
Am presupus ca acele denumiri se vor afla exclusiv in acel table nu si altundeva prin foaie.

Am folosit urmatorul cod:

Cod: Selectaţi tot

Sub GoToItem()

'IPP - 29.10.2020

Dim sRng As Range
 Set sRng = Sheets("Foaie1").ListObjects("Tabel1").ListColumns(3).Range
 
Dim deCautat As String
 
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

If Application.WorksheetFunction.CountIf(sRng, ActiveCell) = 0 Then
 MsgBox "Acest item nu exista in Foaie1", vbInformation, "Item inexistent"
 GoTo finish
 
  Else:
 deCautat = ActiveCell.Value
 Sheets("Foaie1").Select
    Range("Tabel1[[#Headers],[Date]]").Select
    Cells.Find(What:=deCautat, After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Offset(0, 1).Select
  
End If

finish:
 Application.Calculation = xlCalculationAutomatic
 Application.ScreenUpdating = True

End Sub
Pentru testare: deschideti fisierul atasat, activati macro/continutul. In Foaie2 selectati celula care contine item-ul dorit si rulati macro (am lasat si un "buton")

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: Selectare celula cu prima potrivire gasita

Mesaj de RAMBO » Joi Oct 29, 2020 12:37 pm

Well.. mult mai complicat decat m-as fii asteptat, but it works.
Multumesc mult.

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

Re: Selectare celula cu prima potrivire gasita

Mesaj de IPP » Joi Oct 29, 2020 12:43 pm

Well, e foarte posibil sa existe si o varianta mult mai putin complicata sau, sigur, si o alta varianta.

Cam de aceea incerc sa spun intotdeauna "O propunere, solutie" si nu "SOLUTIA"

Sa va fie de folos

Scrie răspuns

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