[Visual Basic] Einfache Programmieraufgabe VBA Script in Excel + direcx

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Don Poncho, 8. Januar 2013 .

  1. 8. Januar 2013
    Zuletzt bearbeitet: 8. Januar 2013
    Einfache Programmieraufgabe VBA Script in Excel + direcx

    hi boysngirls,
    und zwar kommt gleich nen kumpel und ich soll ihm nen bischen bei seinen info aufgaben helfen. hab aber selbst schon seit jahren nix mehr programmiert und erst recht nicht in vba.

    die aufgabe ist ziemlich einfach aber ich kenn mich halt mit der umgebung 0 aus.

    zur aufgabe:
    es gibt eine liste von kraftwerken die (beispielsweise) von zelle a,2 bis a,10 geht. in den zellen stehen namen von kraftwerken.
    in den zellen b,2 bis b,10 soll die netzleistung angezeigt werden (dazu gleich mehr).
    zelle c,2 bis c,10 soll activex checkboxen beinhalten welche sozusagen der an und ausknopf für das entsprechende kraftwerk in der zeile ist.
    ist das kraftwerk aus soll als leistung 0 angezeigt werden, die checkbox ist deaktiviert und dahinter steht "off". wird das kraftwerk aktiviert (durch aktivieren der checkbox) soll die entsprechende leistung angezeigt werden. in zelle b,11 soll dann die zusammenaddierte leistung aller aktiven kraftwerke angezeigt werden.

    nu weiss ich nicht in wie fern mein gedankengang in der programmiersprache funktioniert...

    das hat er bisher programmiert

    Spoiler
    Code:
    Private Sub Neckarwestheim1_Click()
     If Neckarwestheim1.Value = True Then
     Cells(2, 2).Value = "840"
     Neckarwestheim1.Caption = "on"
     Else
     Cells(2, 2).Value = "0"
     Neckarwestheim1.Caption = "off"
     End If
     Addition
    End Sub
    
    
    Private Sub Neckarwestheim2_Click()
     If Neckarwestheim2.Value = True Then
     Cells(3, 2).Value = "1400"
     Neckarwestheim2.Caption = "on"
     Else
     Cells(3, 2).Value = "0"
     Neckarwestheim2.Caption = "off"
     End If
     Addition
    End Sub
    
    Private Sub Brokdorf_Click()
     If Brokdorf.Value = True Then
     Cells(4, 2).Value = "1480"
     Brokdorf.Caption = "on"
     Else
     Cells(4, 2).Value = "0"
     Brokdorf.Caption = "off"
     End If
     Addition
    End Sub
    
    Private Sub Brunsbüttel_Click()
     If Brunsbüttel.Value = True Then
     Cells(5, 2).Value = "806"
     Brunsbüttel.Caption = "on"
     Else
     Cells(5, 2).Value = "0"
     Brunsbüttel.Caption = "off"
     End If
     Addition
    End Sub
    
    Private Sub EmslandLingen_Click()
     If EmslandLingen.Value = True Then
     Cells(6, 2).Value = "1400"
     EmslandLingen.Caption = "on"
     Else
     Cells(6, 2).Value = "0"
     EmslandLingen.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Grafenrheinfeld_Click()
     If Grafenrheinfeld.Value = True Then
     Cells(7, 2).Value = "1345"
     Grafenrheinfeld.Caption = "on"
     Else
     Cells(7, 2).Value = "0"
     Grafenrheinfeld.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Isar1Essenbach_Click()
     If Isar1Essenbach.Value = True Then
     Cells(8, 2).Value = "912"
     Isar1Essenbach.Caption = "on"
     Else
     Cells(8, 2).Value = "0"
     Isar1Essenbach.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Isar2Essenbach_Click()
     If Isar1Essenbach.Value = True Then
     Cells(9, 2).Value = "1475"
     Isar2Essenbach.Caption = "on"
     Else
     Cells(9, 2).Value = "0"
     Isar2Essenbach.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Krümmel_Click()
     If Krümmel.Value = True Then
     Cells(10, 2).Value = "1402"
     Krümmel.Caption = "on"
     Else
     Cells(10, 2).Value = "0"
     Krümmel.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Philippsburg1_Click()
     If Philippsburg1.Value = True Then
     Cells(11, 2).Value = "926"
     Philippsburg1.Caption = "on"
     Else
     Cells(11, 2).Value = "0"
     Philippsburg1.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Philippsburg2_Click()
     If Philippsburg2.Value = True Then
     Cells(12, 2).Value = "1458"
     Philippsburg2.Caption = "on"
     Else
     Cells(12, 2).Value = "0"
     Philippsburg2.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub UnterweserEsenshamm_Click()
     If UnterweserEsenshamm.Value = True Then
     Cells(13, 2).Value = "1410"
     UnterweserEsenshamm.Caption = "on"
     Else
     Cells(13, 2).Value = "0"
     UnterweserEsenshamm.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub GundremmingenB_Click()
     If GundremmingenB.Value = True Then
     Cells(14, 2).Value = "1344"
     GundremmingenB.Caption = "on"
     Else
     Cells(14, 2).Value = "0"
     GundremmingenB.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub GundremmingenC_Click()
     If GundremmingenC.Value = True Then
     Cells(15, 2).Value = "1344"
     GundremmingenC.Caption = "on"
     Else
     Cells(15, 2).Value = "0"
     GundremmingenC.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub BiblisA_Click()
     If BiblisA.Value = True Then
     Cells(16, 2).Value = "1225"
     BiblisA.Caption = "on"
     Else
     Cells(16, 2).Value = "0"
     BiblisA.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub BiblisB_Click()
     If BiblisB.Value = True Then
     Cells(17, 2).Value = "1300"
     BiblisB.Caption = "on"
     Else
     Cells(17, 2).Value = "0"
     BiblisB.Caption = "off"
     End If
     Addition
    End Sub
    Private Sub Grohnde_Click()
     If Grohnde.Value = True Then
     Cells(18, 2).Value = "1430"
     Grohnde.Caption = "on"
     Else
     Cells(18, 2).Value = "0"
     Grohnde.Caption = "off"
     End If
     Addition
    End Sub
    
    Private Sub Addition()
     Dim strZeile As String
     Dim iIndex, iSumme As Integer
    
     For iIndex = 2 To 18 Step 1
     strZeile = Cells(iIndex, 2).Value
     iSumme = iSumme + CInt(strZeile)
     
     Next
     
     Cells(19, 2).Value = CStr(iSumme)
     
    End Sub
    
    Private Sub Neckarwestheim1_Click()
        If Neckarwestheim1.Value = True Then
            Cells(2, 2).Value = "840"
            Neckarwestheim1.Caption = "on"
        Else
            Cells(2, 2).Value = "0"
            Neckarwestheim1.Caption = "off"
        End If
        Addition
    End Sub
    
    Dim bSet As Boolean
        
        bSet = CheckBox16.Value
        
        If bSet = True Then
            Worksheets("Tabelle1").Range("B17").Value = 1300
        Else
            Worksheets("Tabelle1").Range("B17").Value = 0
        End If
    
    End Sub

    seh da ehrlich gesagt nicht wirklich durch...
    aber meine ersten ideen wären: ich würde die namen sowie die entsprechenden werte in nem array speichern. wird eine checkbox aktiviert werden die werte aus dem array (per integer von den durchnummerierten checkboxen?!) ausgelesen und in den entsprechenden zeilen angezeigt. anschließend wird dann der inhalt aus zelle b,2-b,10 zusammenaddiert und in zelle b,11 ausgegeben.

    mir gehts nich dadrum das er sich hier gleich ne fertige arbeit abholen kann aber das ich ihm nachvollziehbar erklären kann warum und wie. leider hab ich wie gesagt selbst nich wirklich ahnung wie das jetz in der praktischen umsetzung aussehen soll.

    also falls jemand sagen könnte "herrangehensweise ok nur..." oder sowas wäre ich schon beglückt. falls nen paar fetzen code mit raus springen würde ich mich natürlich noch mehr freuen.

    k danke erstmal


    edit:

    ok also das is jetz rausgekommen (so erstmal...) funktioniert in keinster weise aber vll isses garnich mehr so weit:

    Spoiler
    Code:
    Private Sub CheckBox1_Click()
     If CheckBox1.Value = True Then
     Cells(2, 2).Value = "840"
     CheckBox1.Caption = "on"
     Else
     Cells(2, 2).Value = "0"
     CheckBox1.Caption = "off"
     End If
     Addition
     End Sub
     
    Private Sub CheckBox2_Click()
     If CheckBox2.Value = True Then
     Cells(3, 2).Value = "160"
     CheckBox2.Caption = "on"
     Else
     Cells(3, 2).Value = "0"
     CheckBox2.Caption = "off"
     End If
     Addition
     End Sub
    
    Private Sub Addition()
    Dim strZeile As String
    Dim iIndex As Integer
    
     For iIndex = 2 To 18 Step 1
     strZeile = Cells(iIndex, 2).Value
     iSumme = iSumme + CInt(strZeile)
     Next
     Cells(19, 2).Value = CStr(iSumme)
     End Sub
    
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.