Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
LinkedCell einer Textbox per Macro zuweisen
25.08.2007 10:46:00
Karsten
Hallo
Ich suche per for...next Befehl einen Wert in einer Spalte.
Als Ausgabe bekomme ich ja eine Zahl.
Wie kann ich diese Zahl jetzt per Macro in einen Linkedcell eintragen?
For a = 50 To 500
If Sheets("Daten").Cells(1, a) = Sheets("Daten").Cells(1, 49) Then
TextBox3.LinkedCell = "Daten!" & a & "2"
Next a
So geht es leider nicht, weil a als Zahl und nicht als Buchstabe ausgegeben wird.
MfG
Karsten

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: LinkedCell einer Textbox per Macro zuweisen
25.08.2007 11:09:19
{Boris}
Hi,
zunächst mal müsste Dein Code bei Deiner angegebenen Excelversion eigentlich abfliegen, da XP keine 500 Spalten hat.
Dein Problem lässt sich auch am Besten mit der Find-Methode erledigen:

Sub aus_der_Hand()
Dim C As Range
Set C = Sheets("Daten").Range("AX1:IV1").Find(Sheets("Daten").Cells(1, 49), lookat:=xlwhole)
If Not C Is Nothing Then
TextBox3.LinkedCell = "Daten!" & C.Offset(1).Address
End If
End Sub


Grüße Boris

AW: LinkedCell einer Textbox per Macro zuweisen
25.08.2007 11:22:45
Daniel
Hi
mal grundsätzlich, Office XP kann doch nur 256 Spalten, das mit den 500 würde erst ab Excel 2007 gehen.
dein Makro müsste dann so aussehten:

For a = 50 To 256
If Sheets("Daten").Cells(1, a) = Sheets("Daten").Cells(1, 49) Then
TextBox3.LinkedCell = "Daten!" & cells(2, a).address
Next a


Besser wäre allerdings folgendes Makro, daß keine Schleife benötigt, sondern die Find-Funktion verwendet


a = sheets("Daten").range("AX1:IV1").find(what:=sheets("Daten").cells(1,49).value, lookat:= _
xlwhole).column
TextBox3.LinkedCell = "Daten!" & cells(2, a).address


oder die Vergleichsfunktion:


a = worksheetfunction.match(sheets("Daten").cells(1,49), sheets("Daten").range("ax1:iv1"), 0)+ _
49
TextBox3.LinkedCell = "Daten!" & cells(2, a).address


beide Varianten haben aber den Nachteil, daß das Makro mit der Fehlermeldung abbricht, wenn der Wert aus Cells(1,49) nicht gefunden wurde.
Außderdem würde, wennn der Suchbegriff mehrfach vorkommt, deine Schleife den letzten Wert zurückgeben, bei meinen beiden Varianten dagegen immer der erste gefundene.
Gruß, Daniel

Anzeige
AW: LinkedCell einer Textbox per Macro zuweisen
25.08.2007 11:32:00
Karsten
Hallo
Danke für die schnellen Hinweise. Ich werde beide ausgiebig testen.
Das mit der 500 macht kein Problem, weil immer vorher ein ergebnis gefunden wird und die 500 aus einer Reihen-Suche stammt.
Gibt es jetzt noch die Möglichkeit, der Textbox vorzuschreiben, das Format der Zelle zu behalten?
Denn ich verlinke eine Datumsangabe (Aug. 07), die wird aber als Zahl ausgegeben (39295).
MfG
Karsten

AW: LinkedCell einer Textbox per Macro zuweisen
25.08.2007 11:43:53
Daniel
Hi
meines Wissen nach kann man der Textbox kein spezielle Zahlenformat mitgeben, es ist halt ne TEXT-Box.
Du könntest den Wert natürlich mit
Textbox3.text = text(sheehts("Daten").cells(a,2).value, "MMM. YY")
formatiert reinschreiben, das macht aber nur Sinn, wenn das Datum in der Textbox nicht mehr geändert werden soll (und keine LinkedCell mehr erforderlich ist)
Falls doch, müsste der Wert ggf durch ein Makro zurückgeschrieben werden, das den Textbox-Text wieder in ein datum verwandelt.
Gruß, daniel
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige