Makro zu Auswerten einer Tabelle
#1
Hallo zusammen,

ich hab eine Arbeitsmappe mit 5 Tabellen, möchte nun in Tabelle 1 einen Button setzten welcher alle Tabellen
nach rot Ausgefüllten Zellen durchsucht und diese dann in Tabelle 5 kopiert. Der inhalt der  roten zellen in Tabelle 1-4 sollen nach dem kopieren gelöscht werden.
Button und so alles keine Problem aber nen code zum suchen in allen Tabellen und dann kopiert klappt irgendwie nicht.

Könnt Ihr mit bitte ein paar tips oder vorschläge geben wie ich das angehen soll?

Danke

VG
Tobias
Top
#2
Hallo Tobis,

hier ein sehr rudimentärer Code, den ich auch nicht unbedingt empfehle. Was ist denn das Kriterium, weshalb die Zellen rot werden? Kann man die Suchbereiche eingrenzen?

Code:
Option Explicit

Sub redCells()
   Dim wks As Worksheet
   Dim rng As Range
   Dim redRange As Range
   
   For Each wks In ThisWorkbook.Worksheets
       If wks.CodeName <> "SheetVonDemDuStartest" Then
           For Each rng In wks.UsedRange
               If rng.Interior.Color = vbRed Then
                   SheetVonDemDuStartest.Cells(UsedRange.Rows.Count + 1, 1).Value = rng.Value
                   If redRange Is Nothing Then
                       Set redRange = rng
                   Else
                       Set redRange = Union(redRange, rng)
                   End If
               End If
           Next rng
           redRange.Delete
           Set redRange = Nothing
       End If
   Next wks
End Sub
Top
#3
Hallo Jonas

es ist eine Art Lagerverwaltung.
Auf allen Tabellenblätter stehen in A5 bis E5 verscheidene Daten, wenn ein Mitarbeiter in Spalte F ein Datum eingibt wird die Zeile von A bis F rot
Am Monatsende möchte ich alle roten zeilen in ein extra Tabellenblatt kopieren und diese dann von den anderen Tabellen löschen.

VG
Tobias
Top
#4
Hallo Tobias,

also mein Code oben ist getestet und funktioniert. Wenn Du Interesse an einer Optimierung hast, lade mal bitte eine Beispieldatei mit dem selben Aufbau wie dein Original hoch.

Bitte eine *.xlsx-Datei ohne Makros.
Top
#5
Hallo

hier eine bespieldate bei betätigen des Button anndes farbige in die letzte tabelle und dann löschen.


Angehängte Dateien
.xlsx   Test Lager.xlsx (Größe: 23,15 KB / Downloads: 3)
Top
#6
Hallo Tobias,

folgenden Code dem Button zuweisen

Code:
Option Explicit

Private Sub CommandButton1_Click()
   Dim wks As Worksheet
   Dim i As Long
   
   For Each wks In ThisWorkbook.Worksheets
       If wks.CodeName <> "Tabelle1" And wks.CodeName <> "Tabelle5" Then
           For i = 7 To 5 Step -1
               With wks
                   If .Cells(i, 4).Value > 0 Then
                       Tabelle5.Cells(Tabelle5.UsedRange.Rows.Count + 1, 1).Resize(1, 4) = .Cells(i, 1).Resize(1, 4).Value
                       .Rows(i).Delete
                   End If
               End With
           Next i
       End If
   Next wks
End Sub
Top
#7
klappt fast löscht die farbigen kopiert sie aber nicht in letzte Tabelle
Top
#8
Hallo Tobias,

(03.11.2017, 13:00)tobi85 schrieb: ...kopiert sie aber nicht in letzte Tabelle...

Doch, macht der Code.
Top
#9
Hallo Jonas,

hmmm ja im Test klappts genauso wie ich mir das vorgestellt habe...aber  in meiner orginal Datei komischer weiße nicht.

VG
Tobias
Top
#10
Hallo Tobias,

Du musst natürlich die Code-Namen der Sheets entsprechend anpassen. Das sind die Namen im VBE nicht die, die der User in der Mappe vergeben kann.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste