Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"For Each WS" überspringt eine Tabelle

"For Each WS" überspringt eine Tabelle
29.01.2018 22:02:41
Aaron
Guten Abend zusammen,
ich steh hier gerade auf dem Schlauch, die Finger und das Hirn sind schon etwas wund ...
Ich hoffe, ihr könnt mir helfen.
Ich möchte eine Bestellliste über mehrere Tabellenblätter erstellen.
Klappt soweit auch.
Beim Schreiben der Bestellung laufe ich mit
For Each WS In ThisWorkbook.Worksheets

durch jedes Tabellenblatt und ziehe mir die Informationen zusammen.
Starte ich im Reiter "Bestellung" lässt er beim ersten Lauf die "Tabelle1" aus, beim zweiten Lauf nimmt er sie wieder mit.
Auch mit
If ActiveSheet Is Sheets("Bestellung") Then
With WB.Worksheets("Tabelle1")
.Select
.Range("B2").Select
End With
End If

komme ich irgendwie nicht zum gewünschten Ergebnis.
Was mache ich falsch?
Wo ist mein Denkfehler, bzw. warum wird Tabelle1 übersprungen?
https://www.herber.de/bbs/user/119377.xlsm
Vielen Dank im Voraus für eure Rückmeldung.
Gruß
Aaron

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "For Each WS" überspringt eine Tabelle
29.01.2018 22:17:24
Sepp
Hallo Aaron,
du hast ja eine Ausstiegsbedingung eingebaut, vielleicht liegt es daran.
Bei mr werden alle Tabellen durchlaufe, allerdings würde ich den Code etws ändern.
' **********************************************************************
' Modul: Modul_BestellungSchreiben Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Bestellung_gesamt()
'Variablen bestimmen
Dim WB As Workbook
Dim WS As Worksheet
Dim WS_Bestellung As Worksheet
Dim IntAktuelleZeile As Integer
Dim IntLetzteZeile As Integer
Dim IntLetzteZeile_Bestellung As Integer
Dim StrAktuellerArtikel As String
Dim StrAktuelleAnzahl As String
Dim Formel As String

'Variablen definieren
Set WB = ThisWorkbook
Set WS_Bestellung = WB.Worksheets("Bestellung")

IntLetzteZeile_Bestellung = WS_Bestellung.Cells(Rows.Count, 2).End(xlUp).Row

Formel = "=ZEILE()-1"

For Each WS In WB.Worksheets
  With WS
    If .Name <> "Bestellung" Then
      IntLetzteZeile = .Cells(Rows.Count, 2).End(xlUp).Row
      'Im einer Schleife sollen nun die Artikel mit geringer Anzahl ermittelt werden.
      For IntAktuelleZeile = 2 To IntLetzteZeile
        'WS.Range("C" & IntAktuelleZeile).Select
        
        'Variablen definieren
        StrAktuellerArtikel = .Range("B" & IntAktuelleZeile).Value
        StrAktuelleAnzahl = .Range("C" & IntAktuelleZeile).Value
        
        'aktuellen Wert ausgeben
        Debug.Print .Name
        Debug.Print StrAktuellerArtikel
        Debug.Print StrAktuelleAnzahl
        
        'Wenn eine Anzahl unter 5 Stück liegt, [...]
        If .Range("C" & IntAktuelleZeile) < 5 Then
          '[...] soll die erste freie Zeile ermittelt [...]
          IntLetzteZeile_Bestellung = IntLetzteZeile_Bestellung + 1
          With WS_Bestellung
            '[...] und die Daten übertragen werden.
            .Range("A" & IntLetzteZeile_Bestellung).FormulaLocal = Formel
            .Range("B" & IntLetzteZeile_Bestellung) = StrAktuellerArtikel
            .Range("C" & IntLetzteZeile_Bestellung) = StrAktuelleAnzahl
            .Range("D" & IntLetzteZeile_Bestellung) = WS.Name
          End With
        End If
      Next IntAktuelleZeile
    End If
  End With
Next WS

WS_Bestellung.Activate
MsgBox "Die Bestellungen wurden aufgenommen"

Set WS_Bestellung = Nothing
Set WB = Nothing
End Sub

Gruß Sepp

Anzeige
DANKE!
29.01.2018 22:22:13
Aaron
Hallo Sepp,
klasse, vielen Dank für deine schnelle Rückmeldung und die Codeoptimierung.
Funktioniert wie am Schnürchen. :)
Gruß
Aaron

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige