Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

LinkedCell per VBA einstellen

Forumthread: LinkedCell per VBA einstellen

LinkedCell per VBA einstellen
05.02.2008 15:11:32
oxe
hi!
habe ein problem und suche jetzt schon seit einer weile nach einer lösung, vielleicht könnt ihr mir helfen, wohlmöglich stehe ich nur auf dem schlauch. habe folgende funktion:

Sub NeueZeile()
Dim wks_00_LOP As Worksheet
Set wks_00_LOP = ThisWorkbook.Worksheets("00_LOP")
Dim anzahlZeilen As Integer
anzahlZeilen = wks_00_LOP.Cells(wks_00_LOP.Rows.Count, 1).End(xlUp).Row
Dim nummerNeueZeile As Integer
nummerNeueZeile = anzahlZeilen + 1
Dim combo As Object
wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).RowHeight = 30 'Zeilenhöhe  _
einstellen
wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).Interior.ColorIndex = 3  ' _
Nummer 3 entspricht Farbe rot
wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).Borders.LineStyle =  _
xlContinuous  'Rahmen hinzufügen
wks_00_LOP.Range("A" & nummerNeueZeile).HorizontalAlignment = xlCenter 'Ausrichten
wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).VerticalAlignment = xlCenter
wks_00_LOP.Range("B" & nummerNeueZeile & ":C" & nummerNeueZeile).HorizontalAlignment = xlLeft
wks_00_LOP.Range("D" & nummerNeueZeile & ":J" & nummerNeueZeile).HorizontalAlignment = xlCenter
wks_00_LOP.Range("A" & nummerNeueZeile & ":B" & nummerNeueZeile).Font.Bold = True 'Spalte 1 und  _
2 fett schreiben
wks_00_LOP.Range("A" & nummerNeueZeile).Value = nummerNeueZeile - 6 'Nummerierung
Set combo = wks_00_LOP.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=Range("H" & nummerNeueZeile).Left, _
Top:=Range("H" & nummerNeueZeile).Top, Width:=63, Height:=30)
combo.ListFillRange = "00_Bearbeiter!B15:B23"
combo.LinkedCell = Range("H" & nummerNeueZeile)
End Sub


ja, also es soll so ein dropdown-menu erstellt werden (in dieser gerade neu hinzugefügten zeile, der mittlere teil ist quasi uninteressant für euch), von welchem ich dann die werte weiterverwenden kann. er fügt das menu auch ein und die liste der auswahlpunkte funktioniert auch, aber in der LinkedCell steht nichts drin. was ist da los? wer kann mir helfen?

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: LinkedCell per VBA einstellen
05.02.2008 15:23:11
Daniel
HI
in LinkedCell kommt normalerweise ein Textstring mit der Adresse des Zellbezugs rein, dh. so sollte es funktionieren:

combo.LinkedCell = Range("H" & nummerNeueZeile).address


Gruß, Daniel

AW: LinkedCell per VBA einstellen
05.02.2008 15:25:00
oxe
oh mann, danke sehr!!
jetzt funktioniert es!
hatte das ".Address" irgendwann hintendrann aber da dann wohl noch irgendetwas anderes falsch...
danke :-)
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

LinkedCell per VBA einstellen


Schritt-für-Schritt-Anleitung

Um eine LinkedCell in Excel mittels VBA einzustellen, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle ein neues Modul:

    • Gehe zu Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub NeueZeile()
       Dim wks_00_LOP As Worksheet
       Set wks_00_LOP = ThisWorkbook.Worksheets("00_LOP")
       Dim anzahlZeilen As Integer
       anzahlZeilen = wks_00_LOP.Cells(wks_00_LOP.Rows.Count, 1).End(xlUp).Row
       Dim nummerNeueZeile As Integer
       nummerNeueZeile = anzahlZeilen + 1
       Dim combo As Object
       wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).RowHeight = 30
       wks_00_LOP.Range("A" & nummerNeueZeile & ":J" & nummerNeueZeile).Interior.ColorIndex = 3
       wks_00_LOP.Range("B" & nummerNeueZeile & ":C" & nummerNeueZeile).HorizontalAlignment = xlLeft
       Set combo = wks_00_LOP.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
           DisplayAsIcon:=False, Left:=Range("H" & nummerNeueZeile).Left, _
           Top:=Range("H" & nummerNeueZeile).Top, Width:=63, Height:=30)
       combo.ListFillRange = "00_Bearbeiter!B15:B23"
       combo.LinkedCell = Range("H" & nummerNeueZeile).Address
    End Sub
  4. Führe das Skript aus:

    • Drücke F5, um das Skript auszuführen.
  5. Überprüfe die LinkedCell:

    • Stelle sicher, dass die LinkedCell nun den richtigen Zellbezug anzeigt.

Häufige Fehler und Lösungen

  • Problem: Die LinkedCell bleibt leer.

    • Lösung: Stelle sicher, dass du .Address an die LinkedCell-Zuweisung anhängst:
      combo.LinkedCell = Range("H" & nummerNeueZeile).Address
  • Problem: Das Dropdown-Menü wird nicht angezeigt.

    • Lösung: Überprüfe, ob die ListFillRange korrekt gesetzt ist und die angegebenen Zellen Werte enthalten.

Alternative Methoden

  1. Verwendung von Formeln:

    • Anstatt eine LinkedCell per VBA zu setzen, kannst du auch Formeln verwenden, um Werte aus einer Dropdown-Liste zu beziehen.
  2. Manuelles Erstellen eines Dropdowns:

    • Gehe zu Daten > Datenüberprüfung und wähle die Option für Dropdown-Listen.

Praktische Beispiele

  • Beispiel 1: Erstellen eines einfachen Dropdowns mit LinkedCell:

    combo.ListFillRange = "Liste!A1:A10"
    combo.LinkedCell = "B1"
  • Beispiel 2: Dynamisches Aktualisieren der LinkedCell:

    • Du kannst die LinkedCell mit einem Namen definieren, um sie flexibler zu gestalten.

Tipps für Profis

  • Verwende benannte Bereiche: Anstatt feste Zellreferenzen zu verwenden, nutze benannte Bereiche, um die Wartung deiner VBA-Programme zu erleichtern.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung in deinem Code, um sicherzustellen, dass dein Skript auch bei unerwarteten Eingaben stabil bleibt.

FAQ: Häufige Fragen

1. Was ist eine LinkedCell?
Eine LinkedCell ist eine Zelle in Excel, die mit einem Steuerelement wie einem Dropdown-Menü verknüpft ist. Sie zeigt den aktuell ausgewählten Wert an.

2. Wie funktioniert die LinkedCell in VBA?
In VBA wird die LinkedCell durch das Setzen der LinkedCell-Eigenschaft des Steuerelements auf eine Zelladresse erstellt, die den aktuellen Wert speichert.

3. Kann ich mehrere LinkedCells in einer Zeile haben?
Ja, du kannst mehrere Steuerelemente in einer Zeile platzieren, solange jede LinkedCell auf eine unterschiedliche Zelle verweist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige