Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Code erweitern | Herbers Excel-Forum


Betrifft: VBA Code erweitern von: Uwe
Geschrieben am: 27.10.2008 17:13:29

Hallo Forum,

kann mir jemand ein Tip geben, wie ich den folgenden VBA Code auf weitere Spalten erweitern kann.
Es sollen folgende Spalten dazu: 18 - 28, 32 - 42, 46 - 56, 60 - 70

Private Sub aktualisieren_montag_Click()
Dim wks As Worksheet, lngSpalte As Long
  Set wks = ActiveSheet
  With wks
    'Spalten D bis N abarbeiten
    For lngSpalte = 4 To 14
      'Eintrag in Zeile 6 der Spalten prüfen
      Select Case .Cells(6, lngSpalte).Value
        Case "frei", "krank", "url"
          .Range(.Cells(7, lngSpalte), .Cells(43, lngSpalte)).ClearContents
        Case "früh"
          .Range(.Cells(21, lngSpalte), .Cells(23, lngSpalte)).Value = "Mittag"
        Case "spät"
          .Range(.Cells(25, lngSpalte), .Cells(27, lngSpalte)).Value = "Mittag"
        Case "kurz früh"
          .Range(.Cells(31, lngSpalte), .Cells(43, lngSpalte)).ClearContents
        Case "kurz spät"
          .Range(.Cells(7, lngSpalte), .Cells(18, lngSpalte)).ClearContents
        Case Else
        .Range(.Cells(7, lngSpalte), .Cells(43, lngSpalte)).Value = "Inbound"
    End Select
    Next
  End With
End Sub



Vielen Dank für die Hilfe

Gruß André

  

Betrifft: AW: VBA Code erweitern von: Peter Feustel
Geschrieben am: 27.10.2008 17:50:04

Hallo André,

so z. B.

Option Explicit

Private Sub aktualisieren_montag_Click()

Dim wks As Worksheet, lngSpalte As Long
Dim aSpalten  As Variant
Dim iIndex    As Integer

   aSpalten = Array(4, 14, 18, 28, 32, 42, 46, 56, 60, 70)

   Set wks = ActiveSheet
   With wks
     'Spalten D bis N abarbeiten
     For iIndex = 0 To (UBound(aSpalten) - 1) Step 2
        For lngSpalte = aSpalten(iIndex) To aSpalten(iIndex + 1)
          'Eintrag in Zeile 6 der Spalten prüfen
           Select Case .Cells(6, lngSpalte).Value
              Case "frei", "krank", "url"
                 .Range(.Cells(7, lngSpalte), .Cells(43, lngSpalte)).ClearContents
              Case "früh"
                 .Range(.Cells(21, lngSpalte), .Cells(23, lngSpalte)).Value = "Mittag"
              Case "spät"
                 .Range(.Cells(25, lngSpalte), .Cells(27, lngSpalte)).Value = "Mittag"
              Case "kurz früh"
                 .Range(.Cells(31, lngSpalte), .Cells(43, lngSpalte)).ClearContents
              Case "kurz spät"
                 .Range(.Cells(7, lngSpalte), .Cells(18, lngSpalte)).ClearContents
              Case Else
                 .Range(.Cells(7, lngSpalte), .Cells(43, lngSpalte)).Value = "Inbound"
           End Select
        Next lngSpalte
     Next iIndex
   End With

End Sub



Gruß Peter


  

Betrifft: Funktioniert!! von: André
Geschrieben am: 29.10.2008 17:42:37

Hallo Peter!

Funktioniert SUPER!!

Vielen Dank!!!


Beiträge aus den Excel-Beispielen zum Thema "VBA Code erweitern"