Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
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

Nach Kriterium in allen blättern suchenn

Nach Kriterium in allen blättern suchenn
27.12.2020 11:47:30
Christian
Hallo,
Ich hoffe Ihr könnt mir bei meinem Problem helfen.
Das Makro soll mir aus Tabelle2 die Zellen in Tabelle1 kopieren wenn in Tabelle2 die Spalte W ein x aufweist.
Bis hier hin habe ich das geschaft mit diesem Makro:
Option Explicit
Option Compare Text
Sub BedingteKopieZeilen1()
Dim Zeile    As Long
Dim ZeileOut As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
With Sheets("Tabelle2")
ZeileOut = 1
For Zeile = 2 To .Cells(Rows.Count, "W").End(xlUp).Row
If .Cells(Zeile, "W").Value Like "x" Then
.Rows(Zeile).Copy Destination:=Sheets("Tabelle1").Rows(ZeileOut)
ZeileOut = ZeileOut + 1
End If
Next Zeile
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Im Moment suche ich in einem Tabellenblatt was auch klappt.
Das Makro soll aber aus allen Tabellenblätter diesen Wert x suchen und in Tabelle1 kopieren.
Wäre euch sehr dankbar wenn ihr mir da helfen könntet.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Kriterium in allen blättern suchenn
27.12.2020 12:08:26
GerdL
Moin Christian,
teste bitte mal.
Sub Unit()
Dim Zeile    As Long, y As Integer
Dim ZeileOut As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
For y = 2 To Sheets.Count
With Sheets("Tabelle" & y)
ZeileOut = 1
For Zeile = 2 To .Cells(.Rows.Count, "W").End(xlUp).Row
If .Cells(Zeile, "W").Value Like "x" Then
.Rows(Zeile).Copy Destination:=Sheets("Tabelle1").Rows(ZeileOut)
ZeileOut = ZeileOut + 1
End If
Next Zeile
End With
Next y
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub


Gruß Gerd
Anzeige
AW: Nach Kriterium in allen blättern suchenn
27.12.2020 12:10:14
ralf_b
liest sich so ähnlich wie Daniels Fragen heute.
Baue um deinen Code eine Schleife über alle Worksheets.
Frage den Namen ab und überspringe bei Übereinstimmmung dein Zielblatt
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name  "Tabelle1" Then
'Do something
End If
Next ws

AW: Nach Kriterium in allen blättern suchenn
28.12.2020 09:33:22
Christian
Hallo Ralf,
Danke für deinen Tipp.
Wo binde ich die Schleife in mein Makro ein?
Bin halt noch blutiger Anfänger was VBA angeht.
Lg
Christian
AW: Nach Kriterium in allen blättern suchenn
28.12.2020 12:44:37
ralf_b
Hallo Christian,
Voraussetzung für die Arbeit mit Vba ist zu wissen was man da vor sich hat.
Wenn du bereits einen Code hast, der auch läuft, gehe ich davon aus das du diesen Code verstehst.
Eine Schleifenkonstruktion um diesen Code herum zu bauen, anhand einer Vorlage sollte dann für dich machbar sein.
Dim ws As Worksheet 'erzeugen,deklarieren einer Variable um das jeweilige Objekt aufzunehmen  _
und ansprechbar zu machen
For Each ws In Worksheets 'Beginn der Schleife durch die Worksheetsauflistung der aktuellen  _
Arbeitsmappe
'Namensprüfung, des aktuell in der Objektvariable steckenden Worksheetobjectes
If ws.Name  "Tabelle1" Then
'programmcode für weitere Dinge hier rein
End If    'ende der Namensprüfung
Next ws   'Wendepunkt oder Ende der Schleife
Was stimmt denn mit der Lösung von Gerd nicht?
Gruß
rb
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige