Forum Discussion

P951d03s_94's avatar
P951d03s_94
Copper Contributor
Jul 08, 2024

info

I have a server name dl360g10. this server has many conbinations to it. How can I select 1 group and have it populated on a sheet .

1 example

Proliant_DL360_G10_Server
FlexLom
PCIe1
PCIe2
PCIe3
PSU1
PSU2
  • NikolinoDE's avatar
    NikolinoDE
    Gold Contributor

    P951d03s_94 

    To achieve this in Excel using VBA, you'll need to create a macro that allows you to select a server configuration from a predefined list and then populate a sheet with the corresponding details. Here’s a step-by-step guide to help you set this up:

    Step 1: Prepare Your Data

    First, create a list of possible server configurations and their details. You can do this on a separate sheet named "Configurations".

    1. Open Excel and create a new worksheet named "Configurations".
    2. In this worksheet, list all possible configurations in a table format. For example:

    Configuration

    Component 1

    Component 2

    Component 3

    Component 4

    Component 5

    Component 6

    Component 7

    Proliant_DL360_G10_Server

    FlexLom

    PCIe1

    PCIe2

    PCIe3

    PSU1

    PSU2

     

    Proliant_DL380_G10_Server

    FlexLom

    PCIe1

    PCIe2

    PCIe3

    PSU1

    PSU2

     

    Step 2: Create a User Form for Selection

    1. Press Alt + F11 to open the VBA editor.
    2. Insert a new UserForm:
      • Go to Insert > UserForm.
      • Add a ComboBox to the form for selecting the configuration.
      • Add a CommandButton to the form for triggering the population of the sheet.

    Step 3: Populate the ComboBox with Configurations

    1. Double-click the UserForm to open its code window.
    2. Use the UserForm_Initialize event to populate the ComboBox with the configurations from the "Configurations" sheet:

    Vba Code is untested backup your file.

    Private Sub UserForm_Initialize()
        Dim ws As Worksheet
        Dim i As Integer
    
        Set ws = ThisWorkbook.Sheets("Configurations")
        i = 2
    
        Do While ws.Cells(i, 1).Value <> ""
            Me.ComboBox1.AddItem ws.Cells(i, 1).Value
            i = i + 1
        Loop
    End Sub

    Step 4: Populate the Sheet Based on Selection

    1. Add the following code to the CommandButton's Click event:

    Vba Code is untested backup your file.

    Private Sub CommandButton1_Click()
        Dim wsConfig As Worksheet
        Dim wsTarget As Worksheet
        Dim selectedConfig As String
        Dim i As Integer
        Dim row As Integer
    
        Set wsConfig = ThisWorkbook.Sheets("Configurations")
        Set wsTarget = ThisWorkbook.Sheets("Sheet1") ' Change to your target sheet name
    
        selectedConfig = Me.ComboBox1.Value
    
        If selectedConfig = "" Then
            MsgBox "Please select a configuration"
            Exit Sub
        End If
    
        ' Clear the target sheet before populating
        wsTarget.Cells.Clear
    
        ' Find the selected configuration in the Configurations sheet
        i = 2
        row = 1
    
        Do While wsConfig.Cells(i, 1).Value <> ""
            If wsConfig.Cells(i, 1).Value = selectedConfig Then
                wsTarget.Cells(row, 1).Value = "Configuration"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 1).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 1"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 2).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 2"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 3).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 3"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 4).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 4"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 5).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 5"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 6).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 6"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 7).Value
                row = row + 1
    
                wsTarget.Cells(row, 1).Value = "Component 7"
                wsTarget.Cells(row, 2).Value = wsConfig.Cells(i, 8).Value
                row = row + 1
    
                Exit Do
            End If
            i = i + 1
        Loop
    End Sub

    Step 5: Run the Macro

    1. Press Alt + F8 to open the Macro dialog box.
    2. Select the macro associated with the UserForm and click "Run".
    3. The UserForm will appear, allowing you to select a configuration and populate the target sheet.

    By following these steps, you can create a VBA macro that allows you to select a server configuration and populate an Excel sheet with the details of that configuration. This approach can be customized further based on your specific requirements.

    NOTE: Since no one has answered it for at least one day or more, I entered your question in the AI. The text and the steps are the result of the AI. Maybe it will help you further in your project, if not please just ignore it.

     

    My answers are voluntary and without guarantee!

     

    Hope this will help you.

    Was the answer useful? Mark as best response and Like it!

    This will help all forum participants.

Resources