जब आप एक स्थानिक बारकोड को स्कैन करते हैं तो शीट के बीच स्विच करने के लिए एक्सेल पाने / प्रोग्राम करने का एक तरीका है


0

मैं एक छोटे से व्यवसाय के लिए काम करता हूं और हमारी नई सूची प्रबंधन प्रणाली को स्थापित करने में मदद की जरूरत है। मुझे एक्सेल दस्तावेज़ तैयार हो गया है और बार-कोड स्कैनर बार-कोड को सीधे कोशिकाओं में इनपुट करता है लेकिन मुझे समस्या हो रही है। हमारे पास 100 से अधिक भाग हैं और प्रत्येक भाग में एक विशिष्ट वर्कशीट टैब है जिसमें प्रत्येक को एक विशिष्ट भाग संख्या के साथ लेबल किया गया है। क्या ऐसा भी है कि मैं एक वर्कशीट को कोड कर सकता हूं कि जब एक भाग संख्या बारकोड स्कैन किया जाता है तो 1234LOCK कहें कि एक्सेल स्वचालित रूप से 1234LOCK लेबल वाली शीट पर जाएगा?


1
जब बारकोड स्कैन किया जाता है, तो एक्सेल को कैसे पता चलेगा? यदि इसे स्कैन करने के बाद, Excel उस बारकोड को Main Sheetसेल में डालता है A1, तो आप एक ऐसी Workbook Change()घटना बना सकते हैं जो उस शीट पर जा सकती है जो इसे A1संदर्भित करता है। आपने क्या प्रयास किया है?
BruceWayne

फिलहाल जब एक बार-कोड स्कैन किया जाता है तो यह कर्सर को चालू करने पर बार-कोड की जानकारी डालता है। मैंने वास्तव में बहुत कोशिश नहीं की है क्योंकि मैं अभी भी सीख रहा हूं। तो अपने स्टेटमेंट को स्पष्ट करने के लिए, यदि मेन शीट सेल A1 कहता है 1234LOCK और मैं 1234LOCK स्कैन करता हूँ तो मैं एक वर्कबुक चेंज बना सकता हूँ जो शीट 1234LOCK में जाती है?
विलियम आरोन विनफ्रे

आगे स्पष्ट करने के लिए, मैंने एक मैक्रो सेट करना शुरू कर दिया है, जो मैं चाहूंगा उसे एक बार क्लिक कर लिया जाए जो एक इनपुट के लिए सुनता है और एक बार प्राप्त होने पर यह इनपुट शीट पर जाता है। उदाहरण के लिए यदि मैं 1234LOCK में सेलेक्ट बटन पर क्लिक करता हूँ और स्कैन करता हूँ तो यह शीट पर जाता है 1234LOCK
विलियम आरोन विनफ्रे

जवाबों:


0

इसे उस शीट के वर्कशीट मॉड्यूल में रखें, जिसे 1234LOCKआप बारकोड स्कैन करते समय डालते हैं।

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim lastRow As Long

If Range("C" & Rows.Count).End(xlUp).Row = Range("D" & Rows.Count).End(xlUp).Row Then
    lastRow = Range("C" & Rows.Count).End(xlUp).Row
ElseIf Range("C" & Rows.Count).End(xlUp).Row < Range("D" & Rows.Count).End(xlUp).Row Then
    lastRow = Range("D" & Rows.Count).End(xlUp).Row + 1
End If

If Target.Address = "$C$" & lastRow Then
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = Range("C" & lastRow).Value Then
            ws.Activate
        End If
    Next ws
End If
End Sub

मैं मान रहा हूं कि आपकी स्कैनिंग एक वर्कशीट परिवर्तन को ट्रिगर करेगी, और नाम में चला जाता है A1


यह मुझे सही दिशा में मिल रहा है, यह यकीन है कि बहुत मदद की!
विलियम आरोन विनफ्रे

मुझे आखिरकार वह सब मिल गया जो सही तरीके से काम कर रहा था, मेरे पास एक आखिरी सवाल है। मेरे पास निम्नलिखित मूल कोड के साथ एक मैक्रो सेट है। प्राइवेट सब कॉम्मनबटन 2_क्लिक () रेंज ("C99999")। एंड (xlUp), ऑफसेट (1,0) .select
विलियम आरोन विनफ्रे

मुझे आखिरकार वह सब मिल गया जो सही तरीके से काम कर रहा था, मेरे पास एक आखिरी सवाल है। मेरे पास निम्नलिखित मूल कोड के साथ एक मैक्रो सेट है। रेंज ("C99999")। अंत (xlUp), ऑफसेट (1,0)। समस्या को प्रतिबिंबित करें कि मुझे C और D दोनों स्तंभ कक्षों में अंतिम सेल प्रविष्टि को जानने के लिए बटन की आवश्यकता है और चयनकर्ता को कॉलम C पंक्ति में रखें। स्तंभ C या D के लिए प्रविष्टि की अंतिम पंक्ति है। उदाहरण यह होगा कि D10 में एक संख्या है, लेकिन C10 में कोई संख्या नहीं है जब मैं मैक्रो शुरू करता हूं तो चयनकर्ता को स्तंभ C11 में रखने की आवश्यकता होती है, भले ही इसमें एक खाली मान हो कॉलम C10 क्योंकि D10 में एक संख्या है? कोई सुझाव?
विलियम आरोन विनफ्रे

@WilliamAaronWinfrey - आप उस सेल के साथ क्या कर रहे हैं? यह मत करो.Select । क्या वह कोशिका जो अनिवार्य रूप से होने वाली है $A$1? (आखिरी सेल वह है जहाँ आपका BARSCAN जाता है?)
BruceWayne

हां यह सही है
विलियम आरोन विनफ्रे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.