Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit Code Dreh gleich durch

Problem mit Code Dreh gleich durch
11.12.2007 21:23:00
Martin
Hallo Leute
Ich habe ein Problem mit einem Code.
Habe auch schon hier im Forum mit Daniel gepostet aber habe, dennoch einen Fehler drin
Der Code ist:

Private Sub CommandButton1_Click()
Dim i%, y%
Dim TXT$
Dim LB As New Collection
LB.Add TextBox1
LB.Add TextBox2
LB.Add TextBox3
LB.Add TextBox4
LB.Add TextBox5
LB.Add TextBox6
LB.Add TextBox7
LB.Add TextBox8
LB.Add TextBox9
LB.Add TextBox10
Set c = Worksheets("Kontrolle").Columns(1).Find(TextBox1.Text)
For i = 2 To 10
BUp(i) = Worksheets("Kontrolle").Cells(c.Row, i)
c.Offset(0, i - 1) = LB(i)
With frmkdbest.ListBox1
.List(.ListIndex, i - 1) = LB(i)
End With
Next i
CommandButton2.Enabled = True
End Sub



Der Code hält an der Stelle
Set c = Worksheets("Kontrolle").Columns(1).Find(TextBox1.Text)
Bleibt der Code stehen und sagt Variable nicht definiert (wobei das meiner Meinung nach die Defifnition ist)
Hier der Link zur Mappe
https://www.herber.de/bbs/user/48403.xls
Bitte helft mir
Besten Dank im Vorraus
Martin

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Code Dreh gleich durch
11.12.2007 21:31:00
Peter
Hallo Martin,
ich würde es so schreiben:
With Worksheets("Kontrolle").Columns(1)
Set c = .Find(TextBox1.Text)
End With
Abgesehen davon, dass ich LookAt:= und LookIn:= verwenden würde und unbedingt
If Not c Is Nothing Then
Gruß Peter

AW: Problem mit Code Dreh gleich durch
11.12.2007 21:52:00
cm
Hallo Martin,
Mit "Set c = ..." definierst du keine Variable!
Diese wird über "Dim c As ..." deklariert. Die Variablen-Deklaration sollte bevorzugt am Anfang der Prozedur erfolgen (alleine schon aufgrund der Übersicht).
Bei deinem Code fehlt außerdem die noch Deklaration von "BUp()". Dafür scheint aber die Deklaration der Variable y überflüssig, da diese nicht gebraucht wird.
Also einfach mal auf die Fehlermeldung hören, und die Ursache beseitigen - einer der vielen Vorteile von "Option Explicit"
Gruß
cm

Anzeige
AW: Problem mit Code Dreh gleich durch
11.12.2007 21:53:00
Martin
Hallo Peter
leider funktioniert es nicht
Meldung ist:
Fehler beim kompilieren
Variable nicht definiert
es wird "c =" Blau markiert
Hast du noch einen Vorschlag ?
Gruß Martin

AW: Problem mit Code Dreh gleich durch
11.12.2007 22:19:00
Peter
Hallo Martin,
dann definiere c doch
Dim C As Range
Gruß Peter

AW: Problem mit Code Dreh gleich durch
11.12.2007 21:40:00
Daniel
hi
nope

Set c = Worksheets("Kontrolle").Columns(1).Find(TextBox1.Text)


ist keine Definition, sondern eine Wertzuweisung.
die Definition wäre


dim c as range


es ist im Prinzip wie mit Transportbehältern.
erst musst du festlegen, was für einen Transportbehälter du haben willst (also Briefumschlag, Tupperbox oder Überseecontainer), das machst du am Makroanfang mit der DIM-anweisung (so wie du es in deinem Beispiel für die Variablen TXT, i, y und LB gemacht hast, für c un BUP fehtl diese Dimensionierung noch)
dann kannst du diese Behälter mit Werten füllen, so wie du Nudelsalat (oder aber auch Tiramisu oder Götterspeise) in einen Behälter der Sorte Tupperbox füllen kannst.
das würde dann diese Zeile machen:


Set c = Worksheets("Kontrolle").Columns(1).Find(TextBox1.Text)


aber wie gesagt, erst muss dimensioniert werden, und wenn du versuchst, Nudelsalat in einen Briefumschlag zu stecken, gibts natürlich Probleme.
Gruß, Daniel

Anzeige
AW: Problem mit Code Dreh gleich durch
11.12.2007 22:19:00
Martin
Hallo Daniel
Bitte hilf mir noch einmal
auf was muß ich BUp (i) dimensionieren ?
Gruß Martin

AW: Problem mit Code Dreh gleich durch
11.12.2007 22:30:19
Martin
Hallo Daniel hab es gefunden
Juhu es läuft
Vielen Dank für deine Hilfe und vorallendingen für deine Geduld
Danke auch an die Anderen für die Hilfe
Gruß Martin

AW: Problem mit Code Dreh gleich durch
11.12.2007 22:37:00
Daniel
Hi
du musst BUP als Range und als ein array mit 10 Feldern dimensionieren, also:

DIM BUP(10) as Range


die dimensionierung muss aber ausserhalb der Makros (direkt unter OPTION EXPLICIT) erfolgen, da diese Variable von mehreren Makros verwendet wird.
Aber hab ich dir das alles nicht schon mal erklärt?
Gruß, Daniel

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige