Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Überprüfen ob alle Werte vorhanden
#1
Hallo,

ich habe auf einem Tabellenblatt eine Artikelliste. Diese werden über verschiedenste VBA Anwendungen auf andere Tabellenblätter verteilt.
Ich müsste nun für mich eine Signalkennzeichnung erstellen, sobald alle Artikel aus der Liste weiterverarbeitet wurden.
Die Tabellenblätter sind nicht indizierbar und haben immer unterschiedliche Namen. Zudem ist die Anzahl der Tabellenblätter auch nicht identisch.
Anbei mal eine Beispieldatei (ohne VBA).

Meine erste Idee war folgende Formel zu nutzen:http://www.herber.de/excelformeln und bitte suchen .../formeln.html?welcher=233

Diese muss ich allerdings wieder verwerwerfen, da die Anzahl an Tabellenblätter, sowie deren Namen nicht immer identisch sind.

Über Hilfe wäre ich sehr dankbar.

Viele Grüße
Antworten Top
#2
Hier dei Datei


Angehängte Dateien
.xlsx   Artikelsuche über mehrere Tabellenblätter.xlsx (Größe: 10,44 KB / Downloads: 7)
Antworten Top
#3
Hallo.

du kannst das ggf. mit VBA prüfen. Dazu müsste man aber mehr wissen: Kommen die Artikel in den anderen Blättern einmalig vor? Wenn die Artikel schon per VBA verteilt werden, dann können diese Routinen doch schon prüfen, ob alles verteilt wurde. Dazu müsste man etwas mehr von den VBA-Routinen kennen.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
[-] Folgende(r) 1 Nutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • deschroe
Antworten Top
#4
Hallo,
vielen Dank für deine Antwort. 
Über den folgenden Code werden die Artikel verteilt.

Code:
Function WorkSheetExists(ByVal ws As String) As Boolean
On Error Resume Next
WorkSheetExists = Not Worksheets(ws) Is Nothing
End Function

Sub Bestelldatei()
Dim ws As Worksheet

Application.ScreenUpdating = False

If WorkSheetExists(Worksheets("Bestand").Range("E4")) Then
    Set ws = Worksheets(Worksheets("Bestand").Range("E4").Value)
Else
    Set ws = Worksheets.Add(after:=Worksheets(3))
    ws.Name = Worksheets("Bestand").Range("E4")
End If

With ws
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Bestand").Range("B2").Value
    .Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M32").Value
    .Cells(.Rows.Count, 1).End(xlUp).Offset(, 2).Value = Sheets("Bestand").Range("M35").Value
    MsgBox "Hinzugefügt zu " & Worksheets("Bestand").Range("E4").Value
End With

If Worksheets("Bestand").Range("M31").Value <> "" And Worksheets("Bestand").Range("M31").Value <> 0 Then
    If WorkSheetExists(Worksheets("Bestand").Range("E5")) Then
        Set ws = Worksheets(Worksheets("Bestand").Range("E5").Value)
    Else
        Set ws = Worksheets.Add(after:=Worksheets(3))
        ws.Name = Worksheets("Bestand").Range("E5")
    End If
    
    With ws
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Bestand").Range("B2").Value
        .Cells(.Rows.Count, 1).End(xlUp).Offset(, 1).Value = Sheets("Bestand").Range("M31").Value
        .Cells(.Rows.Count, 1).End(xlUp).Offset(, 2).Value = Sheets("Bestand").Range("M35").Value
                MsgBox "Hinzugefügt zu " & Worksheets("Bestand").Range("E5").Value
    End With
End If

Application.ScreenUpdating = True
End Sub

Über den nachfolgenden Code werden die Bestelldaten bzw. die Artikelliste gelöscht.


Code:
Option Explicit

Sub Bestelldatenlöschen()
'
' Bestelldatenlöschen Makro
'

'
    Sheets("Bestand").Select
    Range("F2").Select
    Selection.ClearContents
    Range("B4:C4").Select
    Sheets("Bestellung").Select
    Cells.Select
    Selection.ClearContents
    Sheets("Bestand").Select
    Range("B4:C4").Select
    Selection.ClearContents
    Sheets("Bestellung").Select
    Range("A1").Select
    
End Sub

Zwischen diesen beiden Schritten möchte ich eigentlich eine Überprüfung haben, ob alle Artikel wirklich verteilt wurden auf Tabellen. Ob in gesonderter Form oder in einen der Codes mit eingebunden wäre mir egal. Mir fehlt nur leider das Können.
Antworten Top
#5
Hallo,

Zitat:ich habe auf einem Tabellenblatt eine Artikelliste. Diese werden über verschiedenste VBA Anwendungen
auf andere Tabellenblätter verteilt. 

Du setzt doch schon VBA ein. Warum suchst Du jetzt eine Formellösung?
Aber Du müßtest schon mehr Infos liefern.


Später: nun warst Du schneller als ich, denn dieser Post sollte eigentlich vor Deiner Antwort platziert sein.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#6
Würde es denn eine Möglichkeit geben über Formel oder VBA?
Wie gesagt eine Integration in meinen Code ist absolut nicht notwendig.
Antworten Top
#7
Hallöchen,

füge doch einfach neben den Artikeln eine Spalte "Übertragen" ein und lass den Code dann ok oder x oder was auch immer eintragen. Wenn Du dann noch irgendwo ein Erfolgsergebnis brauchst, zählst Du, ob Artikel und ok in gleicher Anzahl vorliegen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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