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

Funktion arbeitet nicht auf inaktiver Tabelle

Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:15:52
Mark
Hallo zusammen!
Bisher konnte ich alle meine kleinen und großen Probleme mit diesem Forum lösen. Dafür mal herzlichen Dank an alle.
Folgendes. Ich habe einen Arbeitsplan programmiert und viele Funktionen die auf inaktive oder verborgene Tabellenblätter zugreifen und dort Daten auslesen, manipulieren und zurück schreiben. Soweit alles i.O. bis auf folgende Funktion:
Sub KillMAFromRow()
' Löscht doppelte MA's aus der Tabelle löschen
Dim oZelle1 As Range, oZelle2 As Range
For Each oZelle1 In wsTable.Range("Q55:AB56")
If oZelle1.value  "" Then
For Each oZelle2 In wsTable.Range("Q4:AB7")
If oZelle1.value = oZelle2.value Then oZelle1.ClearContents
Next oZelle2
End If
Next oZelle1
End Sub

Befindet sich mein Zeiger auf einem anderen Tabellenblatt als wsTable bringt der obige Code nicht das Ergebnis das ich mir wünsche. Zelleninhalte werden nicht gelöscht.
Hat von euch jemand eine Idee?

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:17:29
Hajo_Zi
die variable wsTabelle ist nicht definiert.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:20:53
Mark
Hallo Hajo!
wsTable ist der CodeName vom Worksheet :)
andere Idee?
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:25:15
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Gruß Hajo
Anzeige
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:39:11
Mark
Ich habe den fehlerhaften Teil nun hochgelanden.
https://www.herber.de/bbs/user/120336.xlsm
Die Funktion heißt SetRules. Ist der Zeiger auf der Tabelle 'DynTable' gibt es keine Fehler.
Ist die aktive Tabelle zum Beispiel 'Tabelle2' werdet Ihr den Fehler auf wsTable im Bereich Q4:AB7 sehen können weil im Bereich Q55:AB57 nicht die doppelten Werte gelöscht wurden.
Thx
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:44:59
Hajo_Zi
Ichb habe Tabele2 gewählt und in Q4 was eingetragen und das Makro durchlafen assen er hat nichts in Tabelle2 geschrieben.
Gruß Hajo
Anzeige
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 18:07:02
Mark
Ich versuche das Problem verständlich zu erklären. Sorry.
Die Funktion 'SetRules' ruft eine Menge anderer Funktionen auf. Unter anderem den Sub 'CreateTable2MA' in welchem der folgende CODE:
For i = 1 To AnzahlAP
sMA = wsTable.Range("P4").Offset(0, i).Value
For j = 1 To AnzahlAP
If sMA = wsTable.Range("P55").Offset(0, j).Value Then wsTable.Range("P55").Offset(0, j).Value = ""
If sMA = wsTable.Range("P55").Offset(1, j).Value Then wsTable.Range("P55").Offset(1, j).Value = ""
Next j
Next i
das Problem verursacht das dieser nur fehlerfrei ausgeführt wird wenn ich mich auf dem Tabellenblatt wsTable befinde. Ist also das aktive Blatt Tabelle2 und du startest im Direktfenster SetRule und schaust danach auf wsTable siehst du das die Funktion ein anderes Ergebnis liefert.
Ist der gleichwertige Code wie zum Anfang, wollte halt schauen ob es mit dem For each was zu tun hat... Ansonsten wieder 'KillMAFromRow aus SetRule auskommentieren und die letzen Zeilen in CreateTable2MA löschen.
Anzeige
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:54:31
Zwenn
Hallo Mark,
mal in Anlehnung an Luschis Einlassung ... Wo hast Du denn wsTable deklariert? Diese Variable ist nicht mal global deklariert (was ich eh ablehne). Auch ansonsten sehe ich immer nur, dass die Variable verwendet wird. Deshalb wundere ich mich, dass damit überhaupt irgend etwas funktioniert.
Gruß,
Zwenn
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:59:13
Mark
wie bereits erwähnt ist wsTable der Codename von einem Tabellenblatt.
Anzeige
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 18:05:47
Zwenn
Ahhh,
sorry, hatte ich nicht wahr genommen.
Ich glaube, Du hast nur einen Punkt vergessen
11.03.2018 18:19:16
Zwenn
So,
habe nun mal in Sub CreateTable2MA() rein gesehen. Da ist mir folgendes aufgefallen:

Sub CreateTable2MA()
' Erstellt eine Hilfstabelle mit allen MA's welche nur 2 AP's können
' 11.03.2018
Dim sMA As String, i As Integer, j As Integer, oZelle1 As Object, oZelle2 As Object
Dim lZeile As Long
With wsTable
Range("Q55:AB56").Cells.ClearContents

Wenn Du aber With verwendest, wird das nur auf Teile des Codes angewendet, vor denen ein Punkt steht. In sofern denke ich, es müsste nicht heißen

Range("Q55:AB56").Cells.ClearContents

sondern

.Range("Q55:AB56").Cells.ClearContents

Ansonsten bezieht sich der genannte Codeteil auf die aktuelle Tabelle.
Viele Grüße,
Zwenn
Anzeige
AW: Ich glaube, Du hast nur einen Punkt vergessen
11.03.2018 18:24:02
Mark
Super Jungs! Danke Zwenn.
Vielen Dank das Ihr euch die Zeit für mein Problem genommen habt.
Ich hätte den Fehler nicht an dieser Stelle erwartet und auch nicht dort danach gesucht! Klasse Arbeit. Gruß Mark
AW: Ich glaube, Du hast nur einen Punkt vergessen
11.03.2018 18:27:50
Zwenn
Hey Mark,
ich hätte dort gar nicht nachgesehen, wenn Du nicht geschrieben hättest, dass der Fehler von dort ausgeht. Aber manchmal ist man einfach Betriebsblind. Das kenne ich auch zur Genüge :-)
Schön dass es jetzt gelöst ist^^
Zwenn
AW: Funktion arbeitet nicht auf inaktiver Tabelle
11.03.2018 17:25:11
Luschi
Hallo Mark,
ich hoffe, Du hast 'wsTable' nicht so definiert:
Set wsTable = ActiveSheet
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige