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

Textboxen vergleichen

Textboxen vergleichen
16.01.2004 07:20:42
felix
Hallo,
in dem folgenden Code habe ich ein Problem
diese Stelle:
Set Controls("Sp_" & (TextBox1.Value)) = .Cells(Zeile1, Spalte1)
Ich möchte das der Inhalt der Textbox die Variable im Zusammenhang mit "SP_"
ergibt. (In der Textbox steht eine Zahl zwischen 1 und 3). Nur mit "controls" fuktioniert es nicht. Hat jemand eine Idee???
im Nachklapp der komplette Code
Gruß
Felix


Private Sub Sortieren()
Dim Sp_1 As Range, Sp_2 As Range, Sp_3 As Range, Sp_4 As Range, Sp_5 As Range _
, Sp_6 As Range, Sp_7 As Range, Sp_8 As Range, Sp_G As Range
Call SchutzRaus
With Sheets(1)
Set Sp_G = .Range(Cells(Zeile1, Spalte1), Cells(65536, Spalte10))
Set Controls("Sp_" & (TextBox1.Value)) = .Cells(Zeile1, Spalte1)
Set Controls("Sp_" & (TextBox2.Value)) = .Cells(Zeile1, Spalte2)
Set Controls("Sp_" & (TextBox3.Value)) = .Cells(Zeile1, Spalte3)
End With
Sp_G.Sort Key1:=Sp_1, Order1:=xlAscending, Key2:=Sp_2 _
, Order2:=xlAscending, Key3:=Sp_3, Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Call SchutzRein
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Textboxen vergleichen
16.01.2004 08:04:22
Dan
Hallo,
"Set Controls("Sp_" & (TextBox1.Value)) = .Cells(Zeile1, Spalte1)"
- Dieser code kann nicht funktionieren aus mehren grunden :
Was ergibt dies : .Cells(etwas)? Es ist das selbe wie .Cells(etwas).Value, also es ergibt irgendeinen wert. Also der befehl hat einen wert auf der rechten seite und ein Set Statement auf der linken seite, und das geht nicht :-).
- Und die Controlls Collection benutzt man zu (laut help) :
"You can use the Controls collection to enumerate or count individual controls, and to set their properties".
- Set statement sollte so aussehen (vereinfacht):
Set objectvar = objectexpression Also z.B. :
Dim EineTabelle As Worksheet
Set EineTabelle = Excel.Application.Worksheets("Tabelle1")
'Die Variable EineTabelle "zeigt" jetzt auf Object "Tabelle1"
Hat es dir bischen geholfen? :-)
Gruss Dich, Dan
Anzeige
AW: Textboxen vergleichen
16.01.2004 08:12:09
felix
hallo Dan
stell Dir vor:
Zeile1 = 2
Spalte1 = 2
das Ergebnis soll so aussehen
Set Sp_1 = .Cells(Zeile1, Spalte1)
also wie bringe ich "Sp_" und Textbox1.value zusammen????
Set ("Sp_" & TextBox1.Value) = .Cells(Zeile1, Spalte1)
Gruß
Felix
AW: Textboxen vergleichen
16.01.2004 08:48:43
Dan
Ich verstehe nicht was du brauchst, aber :
Zeile1 = 2
Spalte1 = 2
Set Sp_1 = .Cells(Zeile1, Spalte1)
kann man auch nicht schreiben, weil Set benutzt man um object variable mit einer object referentz zu fullen (fullen ist wahrscheinlich nicht richtiges wort, aber es faellt mir nichts besseres ein, mein deutsch hat grenzen :-)))
Sp_1 hast du als Range deklariert und Range ist eine object variable. .Cells(Zeile1, Spalte1) ergibt wieder einen wert, also du versuchst eine object variable mit einem wert zu fullen und das geht nicht.

also wie bringe ich "Sp_" und Textbox1.value zusammen????
Set ("Sp_" & TextBox1.Value) = .Cells(Zeile1, Spalte1)
Wenn Sp_1 ein Range ist, muss man es ungefahr so machen :
' auf einer User Form hast du ein Text Box mit dem Namen TextBox1
' und ein Command Button mit dem Namen CommandButton1
' diese Code kommt in den Classen Modul des User Forms
Option Explicit

Private Sub CommandButton1_Click()
Dim Sp_1 As Range
' Sp_1 zeigt jetzt auf range "a1:c5"
Set Sp_1 = Range("a1:c5")
' alle cellen im range "a1:c5" werden jetzt einen wert,
' den man in den TextBox1 geschrieben hat bekommen
Sp_1.Value = Me.TextBox1.Value
End Sub

Verstehst jetzt? D.
Anzeige
AW: Textboxen vergleichen
16.01.2004 09:03:51
felix
Hallo Dan
Ich glaube wir kommen nicht zueinander.
probier mal folgendes:

Sub test()
Dim Sp_1 As Range
Set Sp_1 = Sheets(1).Cells(1, 2)
Sp_1.Select
End Sub

Weil Du meinst ich würde das Value in die Variable laden.
Gruß
Felix
AW: Textboxen vergleichen
16.01.2004 09:19:58
Dan
:-) na ja, VBA ist eben anders als ich dachte. Ich muss zugeben, das ich mich geirrt habe! Code :
Set Sp_1 = Sheets(1).Cells(1, 2)
ist Ok!
Und laut help ist es auch so :-)
Range Property : Using this property without an object qualifier returns a Range object that represents all the cells on the active worksheet.
Also eigentlich habe ich etwas gelernt, aber wie sieht es mit dir aus? Du hast immer dein Problem. Ich mochte dir helfen, aber ich verstehe nicht genau was du brauchst :-). Also falls du es nochmals beschreiben willst, werde ich vesuchen es zu verstehen. Oder du koentest deine frage nochmals posten, damit auch jemmand anders darauf reagieren koennte? Jedenfalls ich habe jetzt bischen zeit. :-) D.
Anzeige
AW: Textboxen vergleichen
16.01.2004 13:12:08
felix
Hallo Dan,
lebst Du noch?
bin leider ins Bett gegangen, da ich Nachtwache hatte.
Muß auch gleich wieder ins Bett.
Nochmals vielen Dank.
Werde das Problem wohl nocheinmal zu einem anderen Zeitpunkt ins Netz stellen.
Eigentlich ist mein Problem ganz einfach.
Ich möchte wissen, wie ich eine variable Variable (As Range) schaffe.
Dies soll mit hilfe einer Textbox gehen.
Set Controls("Sp_" & (TextBox1.Value)) = .Cells(Zeile1, Spalte1)
Das Ergebnis der Variablen wäre z.B.
Sp_1 oder Sp_2 oder Sp_3
Gruß
Felix
AW: Textboxen vergleichen
16.01.2004 15:29:23
Dan
Hallo,
ich bin wieder da :-). Name fur eine Variable muss man am anfang in den code schreiben. Also ich denke, dass es nicht geht eine varaiblen-name zu bilden wenn das code schon lauft (also ich denke es :-)
Versuch mal dies :
' in ein User form eine TextBox und ein CommandButon zugeben
' in den Text Box wert schreiben, 1,2 oder 3
' code in den User Form Class Modul kopieren
'********************************************************************
' dies ist nur ein beispiel
' es versucht zu ilustrieren, wie man eine variable von typ range auf
' ein bestimten range setzt, im abhangigkeit vom wert den man in den Text Box
' schreibt
' text box reagiert nur auf 1, 2, oder 3
Option Explicit
Private Const Zeile1 As Long = 10
Private Const Spalte1 As Long = 5
Private Const Spalte2 As Long = 8
Private Const Spalte3 As Long = 12


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Ich möchte wissen, wie ich eine variable Variable (As Range) schaffe.
' Dies soll mit hilfe einer Textbox gehen.
Dim RangeVariable
Set RangeVariable = SetRangeVariable(Me.TextBox1.Value)
If (Not RangeVariable Is Nothing) Then
RangeVariable.Select
Else
Me.TextBox1.Value = "Nothing"
End If
End Sub


Private Function SetRangeVariable(ByVal TextBoxWert As Variant) As Range
' rSp_x sind eigentlich nicht notig, sie dienen nur der ilustrazion
' man koente naturlich der Function SetRangeVariable gleich den Range zuordnen :
' Set SetRangeVariable = Cells(Zeile1, Spalte1)
' aber andererseits koente man die vars rSp_x an der Modul Ebene deklarieren
' und sie in diesem modul ruig benutzen ...
Dim rSp_1 As Range
Dim rSp_2 As Range
Dim rSp_3 As Range
Dim vWert As String
vWert = CStr(TextBoxWert)
Select Case vWert
Case "1"
Set rSp_1 = Cells(Zeile1, Spalte1)
Set SetRangeVariable = rSp_1
Case "2"
Set rSp_2 = Cells(Zeile1, Spalte2)
Set SetRangeVariable = rSp_2
Case "3"
Set rSp_3 = Cells(Zeile1, Spalte3)
Set SetRangeVariable = rSp_3
Case Else
Set SetRangeVariable = Nothing
End Select
End Function

Anzeige
AW: Textboxen vergleichen
16.01.2004 15:44:44
Dan
Felix,
ich gehe jetz nach haus, falls du mich per e-mail was fragen willst, schreib mir an
dusek@cb.vakjc.cz
Am Montag bin ich (hoffentlich:-)) wieder da.
Gruss Dich, Dan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige