VBA - Zeilennr. aus Tabelle abarbeiten

Bild

Betrifft: VBA - Zeilennr. aus Tabelle abarbeiten
von: Joerschi
Geschrieben am: 28.07.2015 18:37:52

Hallo liebes Forum,
aktuell trage ich in Excel in A1 "von Zeile" und A2 "bis Zeile" eine Nummer ein, worauf in VBA dann ein Prozess abgearbeitet wird (welcher aus der Zelle B2 die jeweils aktuelle zu bearbeitende Zeile rausliest und dann einen Prozess abarbeitet).
So sieht die Formel aus:

For i = .Cells(1, 1) To .Cells(1, 2)
      .Cells(2, 1) = i
Problem ist, dass sie die Zeilennummern nur nacheinander abgearbeitet werden.
Ich würde mir gern eine Tabelle A5:A10 anlegen, wo wild irgendwelche Zeilennummern drinstehen und obiger Prozess diese Zeilennummern entsprechend der Tabelle nacheinander abarbeitet.
Kann jemand helfen, wie man die Formel oben dazu adaptieren müsste (also auf die neue Tabelle bezogen)?
Danke und viele Grüße
Joerschi

Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Sepp
Geschrieben am: 28.07.2015 18:53:21
Hallo Joerschi,
das ist keine Formel, eine solche schreibst du in eine Zelle deiner Tabelle, sondern Code!
So?

Dim rng As Range


For Each rng In Range("A5:A10")
  If IsNumeric(rng) And rng <> "" Then
    Cells(rng.Value, 1) = rng.Value
  End If
Next

Gruß Sepp


Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Joerschi
Geschrieben am: 28.07.2015 20:07:57
Dank Dir Sepp.
Ich bekomme es irgendwie noch nicht ganz hin :-(
So sieht mein Code aus (unten).
Darin ist der Algho eingefügt mit Bezug auf die Minitabelle JI23:JI24 mit zwei unterschiedlichen Zeilen-Zahlenwerten.
Im Ergebnis des Prozesses wird jedoch noch zweimal genau das gleiche gemacht (Kopieren von Daten in anderes TAbellenblatt).
Könntest Du nochmal schauen, wo der Fehler liegen könnte?

Sub Test()
Dim rng As Range
  Application.ScreenUpdating = False
  With Sheets("Tabelle1")
    For Each rng In Range("JI23:JI24")
  If IsNumeric(rng) And rng <> "" Then
    Cells(rng.Value, 1) = rng.Value
      KopiereDaten
      .Range("aid1:aih3000").Copy
      With Sheets("Tabelle2")
        .Cells(2, Columns.Count).End(xlToLeft) _
          .Offset(-1, IIf(.Range("a1") = "", 0, 6)).PasteSpecial xlPasteValues
      End With
      End If
  Next
    
  End With
  Application.CutCopyMode = False
  Application.Goto Sheets("Tabelle2").Range("A1"), True
End Sub
Vielen Dank im Voraus und beste Grüße
Joerschi

Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Sepp
Geschrieben am: 28.07.2015 20:29:22
Hallo Joerschi,
also der Code ist doch nonsense! Zeig mal den Code wie du ihn vorher hattest.
Und beschreibe nochmal genau, was du ändern willst.

Gruß Sepp


Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Joerschi
Geschrieben am: 28.07.2015 20:44:55
allo Sepp,
sorry - bin in VBA leider noch großer Anfänger.
So sah der Ursprungscode aus:

Sub Test()
  Application.ScreenUpdating = False
  With Sheets("Tabelle1")
    For i = .Cells(11, 276) To .Cells(11, 277)
      .Cells(12, 276) = i
      KopiereDaten
      .Range("aid1:aih3000").Copy
      With Sheets("Tabelle2")
        .Cells(2, Columns.Count).End(xlToLeft) _
          .Offset(-1, IIf(.Range("a1") = "", 0, 6)).PasteSpecial xlPasteValues
      End With
    Next i
  End With
  Application.CutCopyMode = False
  Application.Goto Sheets("Tabelle2").Range("A1"), True
End Sub
Sub KopiereFilter()
    With Sheets("Tabelle1")
    
    Range("jr12:pe12").Select
    ActiveWindow.SmallScroll Down:=-12
    Selection.Copy
    Range("jr5").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    
    .Range("jp17").Copy
    .Range("aih4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
          Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    
    End With
End Sub
"Problem" ist halt, dass die ganzen Berechnungen erst anlaufen, wenn in Zelle JP12 (in der Ursprungsformel .cells(12, 276)) die Zeilennummer drin steht.
Also die, welche in der gesuchten Lösung in der vorgegebenen Tabelle drin stehen.
In der alten Formel wird in JP 11 und JQ11 "von" "bis" der Zeilennummer vorgegeben.
Aber dann wird halt leider nur nacheinander abgearbeitet... :-(
Viele Grüße
Joerschi

Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Joerschi
Geschrieben am: 28.07.2015 20:54:31
Sub "KopiereFilter" unten soll natürlich "Sub KopiereDaten" heißen...

Bild

Betrifft: AW: VBA - Zeilennr. aus Tabelle abarbeiten
von: Sepp
Geschrieben am: 28.07.2015 21:03:54
Hallo Joerschi,
also ganz schlau werd' ich aus deiner Beschreibung noch immer nicht.

Sub Test()
Dim rng As Range

Application.ScreenUpdating = False
With Sheets("Tabelle1")
  For Each rng In .Range("JI23:JI24")
    If IsNumeric(rng) And rng <> "" Then
      .Cells(12, 276) = rng.Value
      KopiereDaten
      .Range("aid1:aih3000").Copy
      With Sheets("Tabelle2")
        .Cells(2, Columns.Count).End(xlToLeft) _
          .Offset(-1, IIf(.Range("a1") = "", 0, 6)).PasteSpecial xlPasteValues
      End With
    End If
  Next
End With
Application.CutCopyMode = False
Application.Goto Sheets("Tabelle2").Range("A1"), True
End Sub


Gruß Sepp


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA - Zeilennr. aus Tabelle abarbeiten"