Print side | Luk vindue

Vise informationer fra en række

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3476
Udskrevet den: 29.Apr.2024 kl. 05:35


Emne: Vise informationer fra en række
Besked fra: yomomo
Emne: Vise informationer fra en række
Posteringsdato: 10.Maj.2018 kl. 15:29
Hey alle, har lavet en sub som finder den laveste værdi i en kolonne (i mit tilfælde er det 94), herefter har jeg så lavet en MsgBox som skal vise nogle andre informationer fra den række hvor den laveste værdi er. Indtil videre har jeg kunnet få vist den rigtige laveste værdi, men når jeg så prøver at få de andre værdier frem fra rækken, så tager den så værdierne fra række 94 i stedet for.
Koden jeg er kommet frem til indtil videre ser således ud:

Sub Ældste()
    
    Dim ENROLL_PERIOD As Range
    Dim period As Integer
    
    Set ENROLL_PERIOD = Range("E2:E" & Rows.Count)
    period = Application.WorksheetFunction.Min(ENROLL_PERIOD)
    If Val(period) And 1 Then
    MsgBox "Indskrevet: Forårssemestret " & (period / 2 + 1949) & vbNewLine & "Student Id: " & (Cells(period, 12)) & vbNewLine & "Enroll Date: " & (Cells(period, 4)) & vbNewLine & "Program Type: " & (Cells(period, 11))
    Else
    MsgBox "Indskrevet: Efterårssemestret " & (period / 2 + 1949) & vbNewLine & "Student Id: " & (Cells(period, 12)) & vbNewLine & "Enroll Date: " & (Cells(period, 4)) & vbNewLine & "Program Type: " & (Cells(period, 11))
    End If
    

End Sub



Svar:
Besked fra: Mads32
Posteringsdato: 10.Maj.2018 kl. 19:31
Hej

Når du har fundet den laveste værdi, kan du lave et Lopslag, der og dermed vise alle de værdier du har brug for i rækken med den mindste værdi 


Besked fra: excelent
Posteringsdato: 14.Maj.2018 kl. 21:20
Sub Ældste()
    
    Dim ENROLL_PERIOD As Range
    Dim period As Integer
    
    lastRow = Cells(Rows.Count, "E").End(xlUp).Row ' rk-nr på nederste ikke tomme celle
    
    Set ENROLL_PERIOD = Range("E2:E" & lastRow)
    period = Application.WorksheetFunction.Min(Range("E2:E" & lastRow))
    rk = Range("E2:E" & lastRow).Find(period, LookIn:=xlValues, LookAt:=xlWhole).Row
    
    If Val(period) And 1 Then
    MsgBox "Indskrevet: Forårssemestret " & (period / 2 + 1949) & vbNewLine & "Student Id: " & (Cells(rk, 12)) & vbNewLine & "Enroll Date: " & (Cells(rk, 4)) & vbNewLine & "Program Type: " & (Cells(rk, 11))
    Else
    MsgBox "Indskrevet: Efterårssemestret " & (period / 2 + 1949) & vbNewLine & "Student Id: " & (Cells(rk, 12)) & vbNewLine & "Enroll Date: " & (Cells(rk, 4)) & vbNewLine & "Program Type: " & (Cells(rk, 11))
    End If
    

End Sub

-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!



Print side | Luk vindue