Thema Datum  Von Nutzer Rating
Antwort
04.08.2013 14:12:46 sse
NotSolved
05.08.2013 05:52:34 Gast15658
NotSolved
05.08.2013 05:54:37 Gast63028
NotSolved
05.08.2013 08:23:44 Gast23625
NotSolved
Rot Dynamisch beliebig viele verschachtelte For Schleifen
05.08.2013 09:59:10 Gast10316
NotSolved
05.08.2013 21:27:51 sse
Solved

Ansicht des Beitrags:
Von:
Gast10316
Datum:
05.08.2013 09:59:10
Views:
871
Rating: Antwort:
  Ja
Thema:
Dynamisch beliebig viele verschachtelte For Schleifen

Wenn deine Tabelle1 so ausschaut:

  A B C D
1        
2        
3        
4        

Dann so:

Option Explicit

Public Sub step()
  
  Dim wks       As Excel.Worksheet
  Dim rngDaten  As Excel.Range
  
  Set wks = Worksheets("Tabelle1")
  Set rngDaten = wks.Range("A1:D4")
  
  If Not SetMarker(rngDaten, rngDaten.Columns.Count) Then
    
    If vbYes = MsgBox("Der Endzustand wurde erreicht." & vbNewLine & _
                      vbNewLine & _
                      "Soll zurückgesetzt werden?", _
                      vbQuestion Or vbYesNo) _
    Then
      Call rngDaten.ClearContents
    End If
    
  End If
  
End Sub

Private Function SetMarker(Range As Excel.Range, ByVal Index As Long, Optional Value = "X") As Boolean
  
  Dim rngColumn As Excel.Range
  Dim rngMarker As Excel.Range
  
  If Index < 1 Then Exit Function
  SetMarker = True
  
  Set rngColumn = Range.Columns(Index)
  Set rngMarker = rngColumn.Find(Value, LookIn:=xlValues, LookAt:=xlWhole)
  
  If Not rngMarker Is Nothing Then
    If rngMarker.Row < rngColumn.Cells(rngColumn.Cells.Count).Row Then
      rngMarker.Offset(1).Value = Value
    Else
      SetMarker = SetMarker(Range, Index - 1, Value)
      If SetMarker Then rngColumn.Cells(1).Value = Value
    End If
    If SetMarker Then Call rngMarker.ClearContents
  Else
    rngColumn.Cells(1).Value = Value
  End If
  
End Function

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
04.08.2013 14:12:46 sse
NotSolved
05.08.2013 05:52:34 Gast15658
NotSolved
05.08.2013 05:54:37 Gast63028
NotSolved
05.08.2013 08:23:44 Gast23625
NotSolved
Rot Dynamisch beliebig viele verschachtelte For Schleifen
05.08.2013 09:59:10 Gast10316
NotSolved
05.08.2013 21:27:51 sse
Solved