ਬਹੁ-ਚੋਣ ਦੇ ਨਾਲ ਡ੍ਰੌਪਡਾਊਨ ਸੂਚੀ

ਇੱਕ ਐਕਸਲ ਸ਼ੀਟ ਵਿੱਚ ਕਲਾਸਿਕ ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀ ਬਹੁਤ ਵਧੀਆ ਹੈ, ਪਰ ਇਹ ਤੁਹਾਨੂੰ ਪੇਸ਼ ਕੀਤੇ ਸੈੱਟ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਵਿਕਲਪ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਕਈ ਵਾਰ ਇਹ ਬਿਲਕੁਲ ਉਹੀ ਹੁੰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ, ਪਰ ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਜਿੱਥੇ ਉਪਭੋਗਤਾ ਨੂੰ ਚੁਣਨ ਦੇ ਯੋਗ ਹੋਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕੁਝ ਸੂਚੀ ਵਿੱਚੋਂ ਤੱਤ.

ਆਉ ਅਜਿਹੀ ਬਹੁ-ਚੋਣ ਸੂਚੀ ਦੇ ਕਈ ਆਮ ਅਮਲਾਂ ਨੂੰ ਵੇਖੀਏ।

ਵਿਕਲਪ 1. ਹਰੀਜੱਟਲ

ਉਪਭੋਗਤਾ ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀ ਵਿੱਚੋਂ ਆਈਟਮਾਂ ਨੂੰ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਚੁਣਦਾ ਹੈ, ਅਤੇ ਉਹ ਬਦਲੇ ਜਾ ਰਹੇ ਸੈੱਲ ਦੇ ਸੱਜੇ ਪਾਸੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ, ਆਟੋਮੈਟਿਕ ਹੀ ਖਿਤਿਜੀ ਸੂਚੀਬੱਧ ਹੁੰਦੇ ਹਨ:

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ ਸੈੱਲ C2:C5 ਵਿੱਚ ਡ੍ਰੌਪ-ਡਾਊਨ ਸੂਚੀਆਂ ਇੱਕ ਮਿਆਰੀ ਤਰੀਕੇ ਨਾਲ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ, ਭਾਵ

  1. ਸੈੱਲ C2:C5 ਚੁਣੋ
  2. ਟੈਬ ਜਾਂ ਮੀਨੂ ਡੇਟਾ ਇੱਕ ਟੀਮ ਚੁਣੋ ਡਾਟਾ ਪ੍ਰਮਾਣਿਕਤਾ
  3. ਖੁੱਲਣ ਵਾਲੀ ਵਿੰਡੋ ਵਿੱਚ, ਇੱਕ ਵਿਕਲਪ ਚੁਣੋ ਸੂਚੀ ਅਤੇ ਇੱਕ ਰੇਂਜ ਦੇ ਤੌਰ ਤੇ ਨਿਸ਼ਚਿਤ ਕਰੋ ਸਰੋਤ ਸੂਚੀ A1:A8 ਲਈ ਸਰੋਤ ਡੇਟਾ ਵਾਲੇ ਸੈੱਲ

ਫਿਰ ਤੁਹਾਨੂੰ ਸ਼ੀਟ ਮੋਡੀਊਲ ਵਿੱਚ ਇੱਕ ਮੈਕਰੋ ਜੋੜਨ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਸਾਰੇ ਮੁੱਖ ਕੰਮ ਕਰੇਗਾ, ਭਾਵ ਹਰੇ ਸੈੱਲਾਂ ਦੇ ਸੱਜੇ ਪਾਸੇ ਚੁਣੇ ਗਏ ਮੁੱਲਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀਆਂ ਵਾਲੀ ਸ਼ੀਟ ਟੈਬ 'ਤੇ ਸੱਜਾ-ਕਲਿੱਕ ਕਰੋ ਅਤੇ ਕਮਾਂਡ ਦੀ ਚੋਣ ਕਰੋ ਸੂਤਰ ਸੰਕੇਤਾਵਲੀ. ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਨੂੰ ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਐਡੀਟਰ ਵਿੰਡੋ ਵਿੱਚ ਪੇਸਟ ਕਰੋ ਜੋ ਖੁੱਲ੍ਹਦੀ ਹੈ:

ਪ੍ਰਾਈਵੇਟ ਸਬ ਵਰਕਸ਼ੀਟ_ਚੇਂਜ(ਰੇਂਜ ਦੇ ਤੌਰ 'ਤੇ ਵੈੱਲ ਟਾਰਗੇਟ) ਗਲਤੀ 'ਤੇ ਅੱਗੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜੇਕਰ ਇੰਟਰਸੈਕਟ(ਟਾਰਗੇਟ, ਰੇਂਜ("C2:C5")) ਕੁਝ ਨਹੀਂ ਹੈ ਅਤੇ ਟਾਰਗੇਟ ਹੈ। ਸੈੱਲਸ. ਕਾਉਂਟ = 1 ਫਿਰ ਐਪਲੀਕੇਸ਼ਨ.EnableEvents = False ਜੇਕਰ Len(Target.Of.O) (0, 1)) = 0 ਫਿਰ Target.Offset(0, 1) = ਟਾਰਗੇਟ ਹੋਰ ਟਾਰਗੇਟ।End(xlToRight)।Offset(0, 1) = ਟਾਰਗੇਟ ਐਂਡ ਜੇ Target.ClearContents ਐਪਲੀਕੇਸ਼ਨ।EnableEvents = True End If End Sub  

ਜੇਕਰ ਲੋੜ ਹੋਵੇ, ਤਾਂ ਇਸ ਕੋਡ ਦੀ ਦੂਜੀ ਲਾਈਨ ਵਿੱਚ ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀਆਂ C2:C5 ਦੀ ਸੰਵੇਦਨਸ਼ੀਲ ਰੇਂਜ ਨੂੰ ਆਪਣੇ ਨਾਲ ਬਦਲੋ।

ਵਿਕਲਪ 2. ਵਰਟੀਕਲ

ਪਿਛਲੇ ਸੰਸਕਰਣ ਵਾਂਗ ਹੀ, ਪਰ ਨਵੇਂ ਚੁਣੇ ਗਏ ਮੁੱਲ ਸੱਜੇ ਪਾਸੇ ਨਹੀਂ ਜੋੜੇ ਗਏ ਹਨ, ਪਰ ਹੇਠਾਂ:

ਇਹ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਪਰ ਹੈਂਡਲਰ ਮੈਕਰੋ ਕੋਡ ਥੋੜ੍ਹਾ ਬਦਲਦਾ ਹੈ:

ਪ੍ਰਾਈਵੇਟ ਸਬ ਵਰਕਸ਼ੀਟ_ਚੇਂਜ (ਰੇਂਜ ਦੇ ਤੌਰ 'ਤੇ ਵੈਵਲ ਟਾਰਗੇਟ) ਗਲਤੀ 'ਤੇ ਅੱਗੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜੇਕਰ ਇੰਟਰਸੈਕਟ (ਟਾਰਗੇਟ, ਰੇਂਜ("C2:F2")) ਕੁਝ ਵੀ ਨਹੀਂ ਹੈ ਅਤੇ ਟਾਰਗੇਟ ਹੈ। ਸੈੱਲ. ਕਾਉਂਟ = 1 ਫਿਰ ਐਪਲੀਕੇਸ਼ਨ.EnableEvents = ਗਲਤ ਜੇ Len(Target.Of.O) (1, 0)) = 0 ਫਿਰ Target.Offset(1, 0) = ਟਾਰਗੇਟ ਹੋਰ ਟਾਰਗੇਟ।End(xlDown)।Offset(1, 0) = ਟਾਰਗੇਟ ਐਂਡ ਜੇ Target.ClearContents ਐਪਲੀਕੇਸ਼ਨ।EnableEvents = True End If End Sub  

ਦੁਬਾਰਾ, ਜੇਕਰ ਲੋੜ ਹੋਵੇ, ਤਾਂ ਇਸ ਕੋਡ ਦੀ ਦੂਜੀ ਲਾਈਨ ਵਿੱਚ C2:F2 ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀਆਂ ਦੀ ਸੰਵੇਦਨਸ਼ੀਲ ਰੇਂਜ ਨੂੰ ਆਪਣੀ ਖੁਦ ਦੀ ਸੂਚੀ ਨਾਲ ਬਦਲੋ।

ਵਿਕਲਪ 3. ਉਸੇ ਸੈੱਲ ਵਿੱਚ ਇਕੱਠੇ ਹੋਣ ਦੇ ਨਾਲ

ਇਸ ਵਿਕਲਪ ਵਿੱਚ, ਇਕੱਤਰੀਕਰਨ ਉਸੇ ਸੈੱਲ ਵਿੱਚ ਹੁੰਦਾ ਹੈ ਜਿੱਥੇ ਡ੍ਰੌਪ-ਡਾਉਨ ਸੂਚੀ ਸਥਿਤ ਹੈ। ਚੁਣੇ ਹੋਏ ਤੱਤਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਦਿੱਤੇ ਅੱਖਰ (ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਕਾਮੇ) ਦੁਆਰਾ ਵੱਖ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

ਹਰੇ ਸੈੱਲਾਂ ਵਿੱਚ ਡ੍ਰੌਪ-ਡਾਊਨ ਸੂਚੀਆਂ ਪਿਛਲੇ ਤਰੀਕਿਆਂ ਵਾਂਗ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮਿਆਰੀ ਤਰੀਕੇ ਨਾਲ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਸਾਰਾ ਕੰਮ ਦੁਬਾਰਾ, ਸ਼ੀਟ ਮੋਡੀਊਲ ਵਿੱਚ ਇੱਕ ਮੈਕਰੋ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

ਪ੍ਰਾਈਵੇਟ ਸਬ ਵਰਕਸ਼ੀਟ_ਚੇਂਜ(ਰੇਂਜ ਦੇ ਤੌਰ 'ਤੇ ਵੈਵਲ ਟਾਰਗੇਟ) ਗਲਤੀ 'ਤੇ ਅੱਗੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜੇਕਰ ਇੰਟਰਸੈਕਟ (ਟਾਰਗੇਟ, ਰੇਂਜ("C2:C5")) ਕੁਝ ਨਹੀਂ ਹੈ ਅਤੇ ਟਾਰਗੇਟ ਹੈ। ਸੈੱਲਸ. ਕਾਉਂਟ = 1 ਫਿਰ ਐਪਲੀਕੇਸ਼ਨ. EnableEvents = ਗਲਤ newVal = ਟਾਰਗੇਟ ਐਪਲੀਕੇਸ਼ਨ। oldval = ਟਾਰਗੇਟ ਜੇ Len(oldval) <> 0 ਅਤੇ oldval <> newVal ਫਿਰ Target = Target & "," & newVal Else Target = newVal End If Len(newVal) = 0 ਤਾਂ Target.ClearContents Application.EnableEvents = True End If ਅੰਤ ਉਪ  

ਜੇਕਰ ਲੋੜੀਦਾ ਹੋਵੇ, ਤਾਂ ਤੁਸੀਂ ਕੋਡ ਦੀ 9ਵੀਂ ਲਾਈਨ ਵਿੱਚ ਵੱਖਰੇ ਅੱਖਰ (ਕਾਮਾ) ਨੂੰ ਆਪਣੇ ਨਾਲ ਬਦਲ ਸਕਦੇ ਹੋ (ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਸਪੇਸ ਜਾਂ ਇੱਕ ਸੈਮੀਕੋਲਨ)।

  • ਐਕਸਲ ਸ਼ੀਟ ਸੈੱਲ ਵਿੱਚ ਇੱਕ ਸਧਾਰਨ ਡਰਾਪ ਡਾਉਨ ਸੂਚੀ ਕਿਵੇਂ ਬਣਾਈਏ
  • ਸਮੱਗਰੀ ਦੇ ਨਾਲ ਡ੍ਰੌਪਡਾਉਨ ਸੂਚੀ
  • ਗੁੰਮ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਡ੍ਰੌਪਡਾਉਨ ਸੂਚੀ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ
  • ਮੈਕਰੋ ਕੀ ਹਨ, ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਵਿੱਚ ਮੈਕਰੋ ਕੋਡ ਕਿੱਥੇ ਪਾਉਣਾ ਹੈ

ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ