Results 1 to 10 of 12

Thread: Drop-Down Menu with Multiple Conditions

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,316
    Rep Power
    10
    _ continued from last post

    Part A)


    This is fairly similar to what we did here: https://excelfox.com/forum/showthrea...-in-excel-cell

    My start point, as previously, would be to get some of the syntax for the coding, based on some investigation. This is because I don’t know, and will probably never want to learn, the almost infinite number of formatting possibilities and syntaxes
    ( By the way, I understand nothing about drop down boxes…. )
    A lot of your requirements involve Event coding, so I am going once again into the worksheet object code module.
    ( Right click on the worksheet tab and select View Code https://imgur.com/klH9ehK )
    ( One of the main reasons why Microsoft have given us access rights to the object code module of worksheets is because there we find the event macros. They are all already there, and available to us, but we do not always see them until we access them , ( via the drop down lists there in the code module
    First Select Worksheet : https://imgur.com/2UqSmkZ
    Then choose a macro : https://imgur.com/n3kwQqR
    ).

    From the VBEditor, if I hit the key combination, Ctrl+g , I can get the Immediate window, which I can drag around freely. I can even drag it around anywhere on my screen outside the VB Editor window
    ( https://imgur.com/MVp4geJ )

    My next move is to type in the Immediate window a few things to help gat some syntaxes. First I type a ? , after which I can type typical VBA code lines.
    I am looking at the formats in your list table, ( https://excelfox.com/forum/showthrea...ll=1#post14863 , https://excelfox.com/forum/showthrea...ll=1#post14864 )
    Here are a few results, ( I got some the command ideas from my previous post: https://excelfox.com/forum/showthrea...ll=1#post14812 )
    https://imgur.com/IJKPqSR
    ? Range("AM15").font.ThemeColor
    7
    ? Range("AM15").font.TintAndShade
    0
    ? Range("AM15").font.Color
    10855845
    ? Range("AM15").font.Colorindex
    48
    ? Range("AM16").font.tintandshade
    0
    ? Range("AM16").font.Bold
    Falsch
    ? Range("AM16").font.Color
    6751362
    ? Range("AM16").font.Colorindex
    13
    ? Range("AM16").font.Bold
    Falsch
    ? Range("AT19").Font.Tintandshade
    0
    ? Range("AT19").Font.Color
    0
    ? Range("AT19").Font.colorindex
    -4105
    ? Range("AT19").Font.Bold
    Falsch


    I think that gives me some of the formatting syntax that I need ,at least for the first half of the problem.
    I probably don’t need all that information.

    The coding is then very similar to what we did previously ( https://excelfox.com/forum/showthrea...ll=1#post14814 )
    Possibly the use of ElseIf below maybe new to you.
    ( Some use of the formatting done by the coding may be unnecessary, at least at this stage. … )

    Here is the coding for Part A) https://excelfox.com/forum/showthrea...ll=1#post14868




    Part B)
    4. On clicking this cell "R19" a drop down menu appear with 5 option - "Expired" "Divorced" "Break-Up" "Abandonment" "Enter Reason Manually"
    5. On selecting an item, it appear in normal color and format
    6. On selecting "Enter Reason Manually" from this drop-down, the cell "R19" becomes empty, so that the reason can be entered manually


    I am slightly puzzled why you are not simply adding a drop down list here, as in Cell J19

    I am not sure why clicking on a cell should be required to make something like a drop down list for that cell. Why not just make a drop down list for that cell?

    I think I need some clarity as to your reasons to do this, or possibly I have not understood exactly what you want.
    You are asking for approximately 2 things in PartB):
    B(i)) A selectable list to appear on cell selection. That is basically what a drop down list is
    B(ii)) ( Your 6. ) This is similar to Part A)

    The coding to make a selectable list appear based on a cell selection may involve a use of UserForms. This is a somewhat advanced area of VBA. It is not one that I am too familiar with. I discussed this with you before : https://excelfox.com/forum/showthrea...ll=1#post14805
    This might require a lot of work, which would take it out of the realms of a free help forum. You might be lucky and find someone willing to do this for you at one of the larger Excel Forums, but I think it is unlikely.

    Alternatively, we may be able to get VBA to make a drop down list. I would start this option by running the macro recorder whilst making manually a drop down list for the cell R19. But I am not sure what the advantages of this would be over simply having initially the drop down list there.
    I did just record a macro whilst selecting the arrow on a drop down list. Unfortunately , no coding is produced by this: Not all actions taken manually produce coding by the macro recorder. So this does not help us.


    I wonder if in PartB) , what you are asking for is something similar to what you asked for here: https://excelfox.com/forum/showthrea...-List-in-Excel ? – You requirement in Part B) , seems to be an attempt again to get a solution for a tree like Horizontal Hierarchical List structure…

    I am not personally sure what is the best way for you to proceed with requirement Part B)
    The only way I Know to do it would be a complicated coding involving UserForms. It is too advanced for you to be involved with, and it would be a lot of work for somebody to do for you…
    Other possibly ways to do this were given by Logit : https://excelfox.com/forum/showthrea...ll=1#post14807
    You also said you had ideas for how to do it. https://excelfox.com/forum/showthrea...ll=1#post14806


    I think at the end of the day, you wont get an easy answer. Either you or someone else is going to have to take some time to do some work., unless you can find a finished solution that has already been done by someone.

    Part B) ( 4. 5. 6. ) is really a completely separate issue to Part A) ( 1. 2. 3. 7. )

    Alan
    Last edited by DocAElstein; 08-31-2020 at 04:28 PM.
    ….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
    If you are my enemy, we will try to kick the fucking shit out of you…..
    Winston Churchill, 1939
    Save your Forum..._
    _...KILL A MODERATOR!!

  2. #2
    Member
    Join Date
    May 2020
    Posts
    66
    Rep Power
    4
    Part B)

    I am slightly puzzled why you are not simply adding a drop down list here, as in Cell J19

    I am not sure why clicking on a cell should be required to make something like a drop down list for that cell. Why not just make a drop down list for that cell?

    I think I was unable to explain my points clearly. The reason for not adding a drop down list in the cell "R19" is-

    As per my knowledge, a normal drop down list made by Data Validation tool, allows the user to enter the only values which are defined in the data validation list. That is, if the drop down list have only 2 menu, say "A" and "B", the user can not enter any other value in the cell other than "A' and "B".

    Here, in my case, I've several occasions when I have to type many things in the cell "R19". I have to use the drop down list in the cell "R19" in only one case, and the case is "If cell J19 contain the value Single Parent Family". In all other cases, I need to enter data in the cell manually.

  3. #3
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,316
    Rep Power
    10
    Hi
    Quote Originally Posted by Anshu View Post
    ....., I found

    (1) When I select the cell "J19" and press the 'delete' key on my keyboard, the cell value is deleted, but the fade font "(Select)" does not appear in the cell "J19".
    However, when I press the backspace key after selecting the cell "J19", "(Select)" appers.

    (2) When I select any option from the drop down menu or enter manually any value in the cell "J19", it apperas in the cell in the same faded font, just like "Select". (Solved!)

    (3) When I select an option in Cell "J19", say "Nuclear Family", the corresponding value in the cell "R19", for example "(Remark if any)", appears in faded font. That's nice.
    But when I type something in the Cell "R19", it appears in the same faded font, just like "(Remarks if any)"
    .
    Point (2)
    I probably was not too sure exactly what you wanted., but your solution is OK.
    Something of this form would also be OK
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$J$19" Then
            If Target.Value = "" Then
             Let Application.EnableEvents = False
             Let Target.Value = "(Select Here)"
             Let Application.EnableEvents = True
             Let Target.Font.Color = 10855845
            ElseIf Target.Value = "Nuclear Family" Or Target.Value = "Joint Family" Then
             Let Application.EnableEvents = False
             Let Range("R19").Value = "(Remark if any)"
             Let Application.EnableEvents = True
             Let Range("R19").Font.Color = 10855845
             Let Target.Font.Color = 6751362
            ElseIf Target.Value = "Single-Parent Family" Then
             Let Application.EnableEvents = False
             Let Range("R19").Value = "(Select Reason)"
             Let Application.EnableEvents = True
             Let Range("R19").Font.Color = 10855845
             Let Target.Font.Color = 6751362
            ElseIf Target.Value = "Uncategorised" Then
             Let Application.EnableEvents = False
             Let Range("R19").Value = "(Please Specify the Case)"
             Let Application.EnableEvents = True
             Let Range("R19").Font.Color = 10855845
             Let Target.Font.Color = 6751362
            End If
        Else
        ' Target is Not a cell to be acted on
        End If
    End Sub

    Point (1)
    I was not sure myself what is going on there. It may be something to do with Merged cells.
    ( Merged cells often cause problems in VBA Many helpers at forums will not help anyone using Merged cells. You should try to avoid using merged cells as much as possible. Many professional programmers hate them! )

    I did some experimenting:
    I put a stop on the macro by clicking in the margin … https://imgur.com/bMVCshK BrownRoundStopInMargin.JPG
    Then I do the …._
    _ backspace key after selecting the cell, and in the Immediate window, type
    ? Target.Address
    It gives me $J$19, as I expect
    I then repeat the same experiment,
    _using the Delete key
    It gives me $J$19:$P$19
    https://imgur.com/BB5KhGi Target_Address.JPG
    So it would appear that in using the delete key, VBA thinks I was selecting all the merged cells

    So a solution to this problem could be to replace
    If Target.Address = "$J$19" Then
    with
    If Target.Address = "$J$19" Or Target.Address = "$J$19:$P$19" Then

    But , this introduces another problem …
    .Value applied to more than one cell will return an array() – a field of many values. For example, Range("$J$19:$P$19").Value will give us a row of 8 columns of data. This will cause problems in the rest of the macro. For example, an array cannot be equated to "" – So this following code line, for example, would error
    If Range("$J$19:$P$19").Value = "" Then
    One solution to this would be to replace Target in most of the coding with a range object variable, say RngTgt, then assign that to Range("$J$19") if Target is $J$19 or $J$19:$P$19
    Code:
        Dim RngTgt As Range: Set RngTgt = Target
            If Target.Address = "$J$19:$P$19" Then Set RngTgt = Range("J19")
    

    Point(3)
    This is fairly easy. We just need an extra code section
    Code:
        If Target.Address = "$R$19" Then
         Let Target.Font.ColorIndex = xlAutomatic
        Else
        End If
    
    That could be simplified to
    Code:
        If Target.Address = "$R$19" Then Let Target.Font.ColorIndex = xlAutomatic
    
    So here is the next macro version from me: https://excelfox.com/forum/showthrea...ll=1#post14875








    Quote Originally Posted by Anshu View Post
    ... The reason for not adding a drop down list in the cell "R19" is- .... As per my knowledge, a normal drop down list made by Data Validation tool, allows the user to enter the only values which are defined in the data validation list. That is, if the drop down list have only 2 menu, say "A" and "B", the user can not enter any other value in the cell other than "A' and "B".
    Here, in my case, I've several occasions when I have to type many things in the cell "R19". I have to use the drop down list in the cell "R19" in only one case, and the case is "If cell J19 contain the value Single Parent Family". In all other cases, I need to enter data in the cell manually.
    OK. That makes sense.
    I do not know much about drop down lists and data Validation.
    I have never used any drop down lists.
    I am not too sure how to proceed further with this.
    As I mentioned there are two possibilities, a UserForm solution or a simpler solution involving automating making a drop down list
    Quote Originally Posted by DocAElstein View Post
    .......
    The coding to make a selectable list appear based on a cell selection may involve a use of UserForms. This is a somewhat advanced area of VBA. It is not one that I am too familiar with. I discussed this with you before : https://excelfox.com/forum/showthrea...ll=1#post14805
    This might require a lot of work, which would take it out of the realms of a free help forum. You might be lucky and find someone willing to do this for you at one of the larger Excel Forums, but I think it is unlikely.


    Alternatively, we may be able to get VBA to make a drop down list. I would start this option by running the macro recorder whilst making manually a drop down list for the cell R19. ....


    I will post again if I have any more thoughts on this.


    Alan ( Elston )
    Attached Files Attached Files
    Last edited by DocAElstein; 09-02-2020 at 05:17 PM.
    ….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
    If you are my enemy, we will try to kick the fucking shit out of you…..
    Winston Churchill, 1939
    Save your Forum..._
    _...KILL A MODERATOR!!

Similar Threads

  1. Drop-down list of three tables
    By mahmoud-lee in forum Excel Help
    Replies: 12
    Last Post: 02-24-2014, 04:57 AM
  2. Nested If Formula With Multiple Conditions
    By lprc in forum Excel Help
    Replies: 10
    Last Post: 04-22-2013, 07:27 PM
  3. Replies: 4
    Last Post: 03-22-2013, 01:47 PM
  4. Add Macros To Custom Menu
    By mfaisalrazzak in forum Excel Ribbon and Add-Ins
    Replies: 2
    Last Post: 03-01-2013, 04:23 PM
  5. split data into multiple workbooks with 3 conditions.
    By malaionfun in forum Excel Help
    Replies: 5
    Last Post: 05-11-2012, 11:26 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •