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

Was mach ich jetzt verkehrt?

Was mach ich jetzt verkehrt?
19.08.2002 11:26:01
Sebastian R.
So, ich habe jetzt ein Userform erstellt, bei dem es 6 Felder gibt (text1, text2, text3, text4, row1, row2)
In die textX Felder kommen Daten hinein.
Row1 ist die Zeile, von welcher an die Werte nachher eingefügt werden sollen.
Row2 ist die Zeile, bei der das Programm aufhören soll.

Es soll also später so aussehen:

Text1 Text2 Text3 Text4

Text1 Text2 Text3 Text4

Text1 Text2 Text3 Text4

Text1 Text2 Text3 Text4

Private Sub button_ins_Click()
Dim z As Long
If z > 65000 Then z = 2
Do Until z = row2
z = row1
Cells(3, z) = text1
z = z + 1
Cells(3, z) = text2
z = z + 1
Cells(3, z) = text3
z = z + 1
Cells(3, z) = text4
'zwischen den Zeilen soll dann eine leere Zeile sein
z = z + 2
Loop
End Sub


Wenn ich das Userform starten fügt er mir zwar eine leere Zeile an, danach bekomme ich jedoch eine Fehlermeldung von wegen Definierungsfehler...

Was ist verkehrt?

Danke an Euch alle.
Sebastian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Was mach ich jetzt verkehrt?
19.08.2002 11:39:29
BCM
Hi Sebastian,
also kurz gesagt: z kann bei Dir größer als 256 sein.
Du schreibst aber Cells(3,z). z steht hier für die Spalten, und da gibts nur 256.
Isses das?
BCM
Re: Was mach ich jetzt verkehrt?
19.08.2002 12:07:56
Martin Beck
Hallo Sebastian,

entweder hast Du nicht allen Code gepostet und/oder es liegt vieles im Argen. Auf das Spalten-/Zeilenproblem wurde schon hingewiesen. Mit Cells(3, z) schreibst Du immer in die Spalte C.

Allerdings wird mit Deinem Code nichts geschrieben, das sämtliche Variablen nicht belegt wurden. Du mußt ja irgendwie den per UserForm eingegebenen Text in Deinem Code verarbeiten.

Ich habe die Userform mal nachgestellt. Sie enthält 6 Textboxen und einen CommandButton. Die (standardmäßig vorgegebenen) Namen sind

TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6

und

CommandButton1

Die Userform selbst heißt UserForm1.

Verwende nun mal folgenden Code:

In ein normales Modul:

Sub einfügen()
UserForm1.Show
End Sub

Über dieses Makro wird die UserForm1 aufgerufen.

Dem CommanButton auf der Userform weist Du folgenden Code zu:

Private Sub CommandButton1_Click()
For i = TextBox5 To TextBox6 Step 5
Cells(i, 1) = TextBox1
Cells(i, 2) = TextBox2
Cells(i, 3) = TextBox3
Cells(i, 4) = TextBox4
Next i
Unload UserForm1
End Sub

Wenn Du Deine Userform verwenden willst, mußt Du die Namen der Textboxen, des Commandbuttons und der Userform ggf. noch anpassen.

Gruß
Martin Beck

P.S. Deinen Fragen zu Excelausdrücken entnehme ich, daß Du Dir meine Lösung in dem anderen Thread angeschaut hast. Funktioniert sie?

Anzeige
Re: Was mach ich jetzt verkehrt?
19.08.2002 12:17:35
Sebastian R.
Danke Martin & BMC, das hat mir jetzt echt geholfen.

Ich habe es jetzt auch hinbekommen, man muß halt 3 x nachdenken und dann loslegen.

Ciao
Sebastian

Re: Was mach ich jetzt verkehrt?
19.08.2002 12:56:33
Sebastian R.
Hallo Martin, ich habe das Form noch ein wenig angepaßt. Es hat jetzt noch div. Kontrollkästchen (ATT,IMG_L,IMG_S...) eingefügt.

Ist das jeweilige Kästchen geklickt (also =1 ?!) dann soll ein bestimmter Wert in eine Zelle eingetragen werden.

Ich habe die Abfrage ob 1 oder 0 mit einer if-schleife gemacht, bekomme aber die Fehlermeldung, daß für das "loop" eine "DO" Anweisung fehlt, die aber da ist.


Hier mein Script:

Private Sub button_ins_Click()
Dim z As Integer
If z > 65000 Then z = 2
z = row1
row2 = row2 + 1
Do Until z >= row2
Cells(z, 2) = text1
Cells(z, 3) = text2
Cells(z, 4) = text3
Cells(z, 5) = text4
Cells(z, 6) = "P"
Cells(z, 7) = lng
z = z + 1
'Wenn SP_2 = click dann soll in Zelle (z,6) - "SP-2" stehen
If SP_2 = 1 Then
Cells(z, 6) = "SP-2"
Cells(z, 7) = lng
z = z + 1
End
If ATT = 1 Then
Cells(z, 6) = "ATT"
z = z + 1
End
If IMG_S = 1 Then
Cells(z, 6) = "IMG-S"
z = z + 1
End
If IMG_L = 1 Then
Cells(z, 6) = "IMG-L"
z = z + 1
End
z = z + 2
Loop
End Sub

Was mach ich verkehrt

Anzeige
Re: Was mach ich jetzt verkehrt?
19.08.2002 13:11:34
Martin Beck
Hallo Sebastian,

ist mir jetzt zu mühsam, das alles durchzugehen, aber es muß zumindest dreimal "End If" statt "End" heißen (Schau Dir mal die Hilfe zu "End" an ;-)). Vielleicht war's das ja schon.

Gruß
Martin Beck

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige