Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
300to304
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
300to304
300to304
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Warum läuft diese Prozedur nicht?

Warum läuft diese Prozedur nicht?
28.08.2003 08:32:23
FriederW
Hallo VBA-Experten,
aus diesem Forum wurde mir freundlicherweise die unten aufgeführte Prozedur übermittelt, die die nachfolgend beschriebene Aufgabenstellung bewältigen sollte:

In drei identischen Tabellen (Tabellenblätter "P1", "P2" und "P3") befinden sich in den Spalten B, C und D (jeweils ab Zeile 4) Datensätze, die in Abhängigkeit einer Angabe in der entsprechenden Zeile in Spalte E (dort können die Angaben "V1" oder "V2" stehen) in die bereits bestehenden Tabellenblätter "V1" bzw. "V2" jeweils ab Zeile 4 - als kompletter Datensatz in die Spalten B bis D übernommen werden sollen. Das heißt also, dass die Tabelle "V1" der Reihe nach mit den Datensätzen gefüllt wird, bei denen in der jeweiligen Zeile in den Tabellen "P1", "P2" oder "P3" in Spalte E "V1" vermerkt ist (entsprechendes gilt für die Tabelle "V2"). In den auszufüllenden Tabellen "V1" bzw. "V2" sollte in Spalte E mit der Angabe "P1", "P2" oder "P3" ein Hinweis auf die "Herkunft" des jeweiligen Datensatzes gegeben werden.

Starte ich die Prozedur, werden zwar die Tabellen "V1" und "V2" geleert, mehr tut sich aber leider nicht, d.h. es werden keinerlei Werte aus den Tabellen "P1", "P2" oder "P3" in die Tabellen "V1" oder "V2" übertragen.

Eine Fehlermeldung beim Ablauf der Prozedur erscheint allerdings auch nicht.

Woran liegt das? Würde mich sehr freuen, wenn ihr mir bei der "Fehlersuche" behilflich sein könntet. Ganz herzlichen Dank dafür bereits an dieser Stelle!

Mfg
Frieder

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Und wo ist die Prozedur?
28.08.2003 08:50:25
RAnton
-
AW: Sorry - Hier ist die Prozedur!
28.08.2003 09:09:58
FriederW
Hallo und Entschuldigung,
versehentlich habe ich vergessen, die Prozedur beizufügen, was ich hiermit nachhole.
Passiert im Eifer des Gefechts, ich wollte den Code unbedingt zum Laufen bringen, allein schaffe ich das aber wohl nicht, daher die Hektik. Sorry.
Mfg
Frieder


Sub fillSheets()
Dim lV1_cnt, lV2_cnt As Integer
Dim l_sheetname As String
'Zielbereiche leeren
For i = 1 To 2
Sheets("V" & CStr(i)).Range("B4:E65536") = ""
Next i
lV1_cnt = 0
lV2_cnt = 0
'Zielbereiche füllen
For j = 1 To 3
For k = 4 To 65536
l_sheetname = Sheets("P" & CStr(j)).Cells(k, 5)
If IsNull(CVar(l_sheetname)) Or _
IsEmpty(CVar(l_sheetname)) Or _
l_sheetname = "" Then
Exit For
ElseIf l_sheetname = "V1" Then
lV1_cnt = lV1_cnt + 1
For l = 2 To 4
Sheets(l_sheetname).Cells(lV1_cnt + 3, l) = Sheets("P" & CStr(j)).Cells(k, l)
Next l
Sheets(l_sheetname).Cells(lV1_cnt + 3, 5) = "P" & CStr(j)
ElseIf l_sheetname = "V2" Then
lV2_cnt = lV2_cnt + 1
For m = 2 To 4
Sheets(l_sheetname).Cells(lV2_cnt + 3, m) = Sheets("P" & CStr(j)).Cells(k, m)
Next m
Sheets(l_sheetname).Cells(lV2_cnt + 3, 5) = "P" & CStr(j)
End If
Next k
Next j
End Sub



Anzeige
AW: Sorry - Hier ist die Prozedur!
28.08.2003 09:28:41
RAnton
Hallo Frieder,
also an dem Code scheint nix merkwürdiges zu sein.
Bist du mal im Debug-Modus im Einzelschritt durch und hast dir angeschaut, was die einzelnen Codezeilen machen?

Gruß
RAnton
AW: Sorry - Hier ist die Prozedur!
28.08.2003 09:30:06
Nike
Hi,
könntest du mal die Datei bzw einen Ausschnitt dieser Datei posten?
ggf mit der Seite, wo die Ergebnisse her kommen und hin sollen
per Kommentar beschrieben ;-)

l_sheetname = Sheets("P" & CStr(j)).Cells(k, 5)
könntest du auch einfacher haben
l_sheetname = worksheets(j).Cells(k, 5)

das hier
If IsNull(CVar(l_sheetname)) Or _
IsEmpty(CVar(l_sheetname)) Or _
l_sheetname = "" Then
geht wohl auch so:
If l_sheetname = "" Then
oder?

Bye

Nike
Anzeige
AW: Sorry - Hier ist die Prozedur!
28.08.2003 10:33:07
FriederW
Hallo Nike,
füge Dir hier den Entwurf der betreffenden Datei bei.
Schön, wenn Du mir helfen könntest.
Hier bereits besten Dank für Deine Mühe.
Mfg
Frieder

https://www.herber.de/bbs/user/756.xls
AW: Sorry - Hier ist die Prozedur!
28.08.2003 13:17:02
Nike
Hi,

in deinem Code wird auf V1 geprüft, dabei stehen in den Spalten nur P1-P3 oder leer

ElseIf l_sheetname = "V1" Then

Ansonsten müßtest du mal zu deinen Tabellen dazuschreiben,
was von wo wohin kopiert werden soll- das hab ich noch nichtganz verstanden ;-)

Bye

Nike
Anzeige
AW: Sorry - Hier ist die Prozedur!
28.08.2003 13:31:02
FriederW
Hallo Nike,
ich glaub, dass die Beschreibung der Aufgabenstellung etwas zu wünschen übrig läßt.
Zudem hab ich in der geposteten Datei jeweils die Zellen E3 in den Tabellen V1 und V2 nicht korrekt bezeichnet, dort muss nicht Vertreter, sondern jeweils Produkt stehen.
Damit dürfte die Aufgabenstellung etwas leichter nachvollziehbar sein: Also sämtliche Werte aus den Spalten A bis E der Tabellen P1, P2, und P3 sollten in die Tabellen V1 oder V2 übertragen (kopiert werden; diese Tabellen also zeilenweise "gefüllt" werden) und zwar, die Datensätze bei denen in der Ursprungstabelle (P1, P2, P3) in der Spalte E V1 steht in die Tabelle V1 (entsprechend in Tabelle V2,wenn V2 in der Spalte E steht). In den Zieltabellen (V1 bzw. V2) sollte dann in der Spalte E (korrekte Bezeichnung: Produkt) entsprechend P1, P2 oder P3 (je nach Ursprung des Datensatzes) stehen.
Vielleicht hilft diese Beschreibung. Bereits besten Dank für Deine bisherige Mühe.

Mfg
Frieder
Anzeige
AW: Sorry - Hier ist die Prozedur!
28.08.2003 13:58:09
Nike
Hi,
der Fehler bleibt derselbe ;-)
In der Spalte stehen nur Werte wie
z.B. P1 bis P3 und keine V1 oder V2 Werte,
daher wird dein Code nix finden...

Bye

Nike
Danke! - und eine letzte Frage!
28.08.2003 16:48:39
FriederW
Hi Nike,
danke, das hätte ich eigentlich selbst merken müssen, aber manchmal steht man richtig auf der Leitung.
Würde mich freuen, wenn Du mir zeigen würdest, wie der Code verändert werden muss, wenn möglicherweise aus vier (statt bisher 3) Produkttabellen (also eine weitere Tabelle "P4"), die Werte in 3 Vertretertabellen (bisher 2, also eine weitere Tabelle "V3") übertragen werden sollen.
Wäre schön, wenn Du mir helfen kannst, ansonsten auch so bereits herzlichen Dank für Deine Arbeit.
Mfg Frieder
Anzeige
AW: Danke! - und eine letzte Frage!
29.08.2003 09:11:13
Nike
Hi Frieder,

in diesem Code ist aber jetzt nicht korrigiert, das nach V gesucht wird...



Bye

Nike
Vielen Dank! Habe einiges gelernt.
29.08.2003 11:58:48
FriederW
Hi Nike,
fünf Dinge habe ich Dir noch mitzuteilen:
1. Ich habe aus Deinen Hilfen einiges gelernt,
2. Ich habe aber auch gesehen, dass ich in Sachen VBA noch unheimlich viel lernen muss
3. Ich bewundere (und beneide)solche VBA Experten wie Dich um diese Kenntnisse
4. Ich freue mich, dass solche Könner so großzügig Neulingen immer wieder Hilfe anbieten
5. Ich bedanke mich dafür ganz herzlich bei Dir (u. allen anderen die mir geholfen haben)

Mfg
Frieder
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige