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

Verstehe den Code nicht.

Verstehe den Code nicht.
27.09.2002 00:03:35
Karl-Heinz
Hallo Excelenten!

Seit einiger Zeit versuch ich nun schon den VB-Code zu verstehen
und zu erlernen, bislang nur mit mäßigen Erfolg.
Das wird wohl immer wie Hund und Katze bleiben.

Folgenden Code habe ich aus dem Archiv von Hans kopiert und
ausprobiert - läuft tadellos.

Betrifft: Bei Eintrag eines "x" in Spalte F soll die jeweilige
Zeile in Tabelle 2 kopiert werden.

Tabelle 1:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
If Target.Column <> 6 Then Exit Sub
If Target.Value <> "x" Then Exit Sub
With Worksheets("Tabelle2")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + _
(WorksheetsFunction.CountA(.Columns(1)) = 0) +1
Range(Cells(Target.Row, 1), Cells(Target.Row, 5)).Copy . _
Cells(iRow, 1)
End With
End Sub

Nun meine Fragen dazu:
1.) In der 3.und 4.Zeile die If-Abfrage, warum der Operator
"ungleich"?
Nach meinem Verständnis kann in diesem Falle doch nur "gleich"
true ergeben und die Anweisung ausgeführt wird.

2.) Warum keine Anweisung zur Schleife? Schließlich klappert der
Code die gesamte Spalte F ab, oder übersehe ich da was.

Ich würde mich sehr freuen, wenn mir jemand den Code ein wenig interpretieren würde.

Mit freundlichen Grüßen
Karl-Heinz




3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Verstehe den Code nicht.
27.09.2002 00:25:48
Heinz Posch
Bin auch kein Ass, aber die erste Frage ist mal leicht.

Es soll ja nur was passieren wenn in Spalte F (= Column 6) ein "x" drinnen steht. Darum Exit Sub (Abbruch) wenn die aktive Zelle nicht in Spalte F ist und weiters wenn dies zwar der Fall ist, dort aber kein x steht. Könnte auch lauten:

If Target.Column <> 6 And Target.Value <> "x" Then Exit Sub
Hier müssten beide Bedignungen erfüllt sein und darum gehts ja in dem Beispiel.

Bei dem danach blick ich auch nicht ganz durch, jedenfalls läuft da nichts durch alle Spalten oder Zeilen sondern kopiert einfach einen ganzen Bereich. RowsCount z.B. ist einfach die vorhandenen zeilen zählen die die Liste hat. Weiß man diese Zahl, kann man im Anschluss mit einem Bereich (Range) genau eine ganze Spalte z.B. kopieren, genau von der ersten bis zur letzten Zeile, um diese in einem anderen Tabellenblatt einzufügen.

Viel Spaß noch beim Pauken,

Heinz

Anzeige
Re: Verstehe den Code nicht.
27.09.2002 06:18:27
Hajo_Zi
Hallo Karl-Heinz

zu 2
das Change Ereignis wird ausgelöst bein Veränderung einer Zelle, darum braucht es keine Schleife sein. Das Makro wird automatisch ausgeführt. Bei dem Makro wirs davon ausgegangen das nur eine Zelle mit einmal ausgefüllt wird.

Gruß Hajo

Danke Heinz und Hajo,
27.09.2002 19:45:22
Karl-Heinz
Wieder einen Schritt weitergekommen.
Viele Grüße Karl-Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige