Advertisement
Guest User

LOOKUP

a guest
Apr 25th, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Option Explicit
  2.  
  3. Private Sub Lookup(ByVal Target As Range, ByVal ColNum As Integer, ByVal WS_DataBase As String)
  4.     Dim Found As Integer
  5.         Found = 0
  6.        
  7.     If ColNum = 1 Then
  8.         For i = 0 To Application.WorksheetFunction.CountA(Worksheets(WS_DataBase).Range("A:A")) - 2
  9.             If Worksheets(WS_DataBase).Range("A2").Offset(i, 0).Value = Target.Value Then
  10.                 Target.Offset(0, 1).Value = Worksheets(WS_DataBase).Range("A2").Offset(i, 1).Value
  11.                 Target.Offset(0, 2).Value = Worksheets(WS_DataBase).Range("A2").Offset(i, 2).Value
  12.                 Target.Offset(0, 3).Value = Worksheets(WS_DataBase).Range("A2").Offset(i, 3).Value
  13.                 Target.Offset(0, 4).Value = Worksheets(WS_DataBase).Range("A2").Offset(i, 4).Value
  14.                 Found = Found + 1
  15.             End If
  16.         Next i
  17.     End If
  18.        
  19.     If ColNum = 3 Then
  20.         For i = 0 To Application.WorksheetFunction.CountA(Worksheets(WS_DataBase).Range("A:A"))
  21.             If Worksheets(WS_DataBase).Range("C2").Offset(i, 0).Value = Target.Value Then
  22.                 Target.Offset(0, -2).Value = Worksheets(WS_DataBase).Range("C2").Offset(i, -2).Value
  23.                 Target.Offset(0, -1).Value = Worksheets(WS_DataBase).Range("C2").Offset(i, -1).Value
  24.                 Target.Offset(0, 1).Value = Worksheets(WS_DataBase).Range("C2").Offset(i, 1).Value
  25.                 Target.Offset(0, 2).Value = Worksheets(WS_DataBase).Range("C2").Offset(i, 2).Value
  26.                 Found = Found + 1
  27.             End If
  28.         Next i
  29.     End If
  30.        
  31.     If Found = 0 Then
  32.         MsgBox ("Nie znaleziono")
  33.     ElseIf Found > 1 Then
  34.         MsgBox (Found & " zduplikowane pozycje")
  35.     End If
  36. End Sub
  37.  
  38. Private Sub Worksheet_Change(ByVal Target As Range)
  39.     Application.EnableEvents = False
  40.    
  41.     Dim WS_DataBase As String
  42.         WS_DataBase = "B"
  43. 'SIZE
  44.    If Selection.Count > 1 Then
  45.         MsgBox ("Zaznaczono więcej niż jedną komórkę")
  46.         Target.Value = ""
  47.         Application.EnableEvents = True
  48.         Exit Sub
  49.     End If
  50.    
  51. 'CLEAR
  52.    If Target.Value = "" And Target.Row > 1 Then
  53.         Target.Rows.EntireRow.ClearContents
  54.     End If
  55.    
  56. 'LOOKUP
  57.    If Target.Row > 1 Then
  58.         If (Target.Column = 1 Or Target.Column = 3) And Target.Value <> "" Then
  59.             Call Lookup(Target, Target.Column, WS_DataBase)
  60.         Else
  61.         Target.Rows.EntireRow.ClearContents
  62.         End If
  63.     End If
  64.    
  65.     Application.EnableEvents = True
  66. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement