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

Forumthread: Zelleninhalt in Variable speichern

Zelleninhalt in Variable speichern
Maria
Hallo Liebe Forumianer :)
Also ich möchte aus einer geschlossenen Datein den Wert der Zelle B5 in meine aktuell geöffnete Datei an den String "aktuell geöffnet:" hängen.
Hab einiges ausprobiert, aber irgendwie funktioniert nichts. Wenn ich mir den Wert der Zelle B5 in einer MsgBox ausweisen lasse, bekomme ich den richtigen Wert, komm gerade net weiter... wäre super, wenn ihr mir helfen könntet.
Dim TextB5 As String
TextB5 = [B5].Text
With Worksheets("ZEUS Themen ")
Range("B2").Value = "Stand: " & Date
Range("F2").Value = "Offene FAVs Vorbericht: " & TextB5
End With
Danke schonmal...
Liebe Grüße
Maria
Anzeige
da fehlen die Punkte for Range! oT
01.06.2010 13:15:09
JOWE
nicht for Range, sondern vor Range
01.06.2010 13:16:56
JOWE
AW: nicht for Range, sondern vor Range
01.06.2010 13:26:11
Maria
das versteh ich jetzt nicht
Anzeige
AW: Zelleninhalt in Variable speichern
01.06.2010 13:30:54
welga
Hallo,
versuch es mal so:
With Worksheets("ZEUS Themen ")
.Range("B2")= "Stand: " & Date
.Range("F2")= "Offene FAVs Vorbericht: " & [B5]
End With
ungetestet!!
Gruß
welga
vergiss es, habe überlesen
01.06.2010 13:34:02
welga
..dass es aus einer geschlossenen Datei eingelesen werden soll.
AW: Zelleninhalt in Variable speichern
01.06.2010 13:31:27
Oberschlumpf
Hi Maria
Wenn du tatsächlich aus einer geschlossenen Excel-Datei
(also auch nicht im Hintergrund, bzw. parallel zu deiner "Hauptdatei" geöffnet)
einen Zellwert auslesen willst, dann geht das meines Wissens nur, indem du diesen Wert erst mal mit VBA in eine Hilfszelle in deiner Hauptdatei schreiben lässt. Erst dann kannst du den Wert aus der Hilfszelle deinem String hinzufügen - die Hilfszelle, bzw dessen Inhalt kannst du später ja immer wieder mit VBA löschen.
Die Syntax sieht so aus:
Range("Hilfszelle").Value = "='LW:\Pfad\[Dateiname.xls]Blattname'!Zelle"
alles, was schwarz ist, muss genau so übernommen werden.
Für "Hilfszelle" musst du natürlich eine Zelle eingeben, die du dafür verwenden kannst.
Die andersfarbigen Einträge bedeuten:
LW: das Laufwerk (C:\, oder D:\ oder oder oder), auf dem die Quelldatei gespeichert ist
Pfad: der Verzeichnisname, in dem die Quelldatei gespeichert ist
Dateiname.xls: der Name der Datei, aus dem der Wert gelesen werden soll
Blattname: der Tabellenblattname, in dem der Wert in Zelle B5 steht
Zelle: die Zelle, um die es geht
z Bsp:
Dim TextB5 As String
Range("A1").Value = "='C:\Eigene Dateien\Maria\[Quelldatei.xls]ZEUS Themen'!B5"
TextB5 = [A1].Text
Range("A1").Value = ""

Dein Code, wie von dir angegeben, funktioniert meines Wissens nur, wenn die Datei doch geöffnet ist. Aber du schreibst ja von einer geschlossenen Datei.
Und, wie JOWE schon schreibt, fehlt vor jedem Range der Punkt.
Hilfts denn?
Ciao
Thorsten
Anzeige
AW: Zelleninhalt in Variable speichern
01.06.2010 13:44:25
Maria
also die Datei ist in dem Sinne nicht geschlossen, habe sie "unsichtbar" geöffnet, aber ich werde deinen Vorschlag gleich mal ausprobieren, u mich dann wieder melden... :) merci :)
AW: Zelleninhalt in Variable speichern
01.06.2010 13:52:36
Maria
Danke Leute,
der Tipp von Welga hat funktioniert.
@Thorsten, aber ich kann deines auch noch sehr oft gebrauchen, hab es ausprobiert funktioniert auch.
Vielen Vielen Dank euch
Anzeige
AW: Zelleninhalt in Variable speichern
01.06.2010 13:55:35
Oberschlumpf
wenn doch geöffnet, dann schreib das doch auch - siehst ja, was da für Missverständnisse entstehen.
"unsichtbar" geöffnet ist NICHT geschlossen
Somit hab ich mir umsonst die ganze Mühe gemacht :-(
Denn wenn die Datei doch geöffnet ist, dann funzt das auch mit dem With...End With Code - du musst vor Range nur n Punkt setzen.
Viel Erfolg - ich klink mich hier aus.
Anzeige
AW: sag ich doch, aber sie versteht's ja nicht
01.06.2010 14:03:26
JOWE
AW: sag ich doch, aber sie versteht's ja nicht
01.06.2010 14:09:32
Maria
es hat geklappt.... sorry, für die umstände
musst dich nicht entschuldigen,...
01.06.2010 14:17:22
Oberschlumpf
...Hi Maria
Denn für genau solche Fragen - auch deine - ist so ein Forum da...und wir helfen ja auch gerne.
Aber es wäre schön, wenn sich die Fragenden vorm Absenden und während des Formulierens Gedanken machen, ob denn all das, was sie so schreiben/fragen, auch wirklich den Tatsachen entspricht.
Denn eine "unsichtbar" geöffnete Datei ist nun mal NICHT geschlossen - das ist eine Tatsache.
Ansonsten aber gilt:
Ich wünsch dir weiter viel Erfolg mit Excel (der geilsten Erfindung, seit es Schoko..ähh..Microsoft gibt! :-)) )
Und frag hier ruhig weiter - ich hab mir eigt nur mit Hilfe dieses Forums Excel beigebracht.
Wir - die Fragenden, die Antwortenden...und HANS nich zu vergessen...hehe - sind + bleiben einfach die Gutsten!!! :-))
Ciao
Thorsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt in Variable speichern


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle in eine Variable zu speichern, kannst du die folgenden Schritte befolgen. Dies funktioniert in Excel VBA:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsx)" > Einfügen > Modul.

  3. Schreibe den folgenden Code in das Modul:

    Dim TextB5 As String
    TextB5 = ThisWorkbook.Worksheets("DeinBlattname").Range("B5").Value
  4. Um den Wert in einer anderen Zelle anzuzeigen, kannst du den folgenden Code verwenden:

    ThisWorkbook.Worksheets("DeinBlattname").Range("F2").Value = "Offene FAVs Vorbericht: " & TextB5

Mit diesen Schritten kannst du den Wert aus der Zelle B5 auslesen und in der Variable TextB5 speichern.


Häufige Fehler und Lösungen

  1. Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."

    • Lösung: Achte darauf, dass du den richtigen Blattnamen und die richtige Zelle verwendest. Beispiel: Worksheets("DeinBlattname") muss existieren.
  2. Fehler: "Typen unverträglich."

    • Lösung: Stelle sicher, dass der Zellinhalt den richtigen Datentyp hat. Wenn du z.B. mit Zahlen arbeitest, verwende Dim TextB5 As Double.
  3. Fehler: "Die Datei ist geschlossen."

    • Lösung: Wenn du aus einer geschlossenen Datei lesen willst, musst du diese zuerst in eine Hilfszelle schreiben. Siehe den Abschnitt "Alternative Methoden".

Alternative Methoden

Wenn du den Wert einer Zelle aus einer geschlossenen Datei auslesen möchtest, kannst du dies mit einer Hilfszelle tun:

  1. Öffne die Datei "unsichtbar" mit folgendem Code:

    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Pfad\Zu\DeinerDatei.xlsx", False, True)
  2. Schreibe den Wert in eine Hilfszelle:

    Range("A1").Formula = "='[DeineDatei.xlsx]Blattname'!B5"
  3. Lese den Wert aus der Hilfszelle:

    Dim TextB5 As String
    TextB5 = Range("A1").Value
  4. Schließe die Hilfsdatei, wenn nicht mehr benötigt:

    wb.Close False

Praktische Beispiele

Hier ist ein vollständiges Beispiel, wie du den Wert einer Zelle aus einer geöffneten Datei in eine Variable speichern kannst:

Sub Beispiel()
    Dim TextB5 As String

    ' Wert aus Zelle B5 in Variable speichern
    TextB5 = ThisWorkbook.Worksheets("Blatt1").Range("B5").Value

    ' Wert in andere Zelle schreiben
    ThisWorkbook.Worksheets("Blatt1").Range("F2").Value = "Aktueller Wert: " & TextB5
End Sub

Für das Auslesen aus einer geschlossenen Datei sieht der Code so aus:

Sub AuslesenGeschlosseneDatei()
    Dim wb As Workbook
    Dim TextB5 As String

    Set wb = Workbooks.Open("C:\Pfad\Zu\DeinerDatei.xlsx", False, True)
    Range("A1").Formula = "='[DeineDatei.xlsx]Blattname'!B5"

    TextB5 = Range("A1").Value
    wb.Close False

    ThisWorkbook.Worksheets("Blatt1").Range("F2").Value = "Wert aus geschlossener Datei: " & TextB5
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende Application.ScreenUpdating = False, um die Performance zu verbessern, wenn du viele Zellen bearbeitest.
  • Denke daran, Fehlerbehandlung zu implementieren, um unerwartete Fehler abzufangen:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie speichere ich den Wert einer aktiven Zelle in einer Variablen?
Du kannst den Wert der aktiven Zelle so speichern:

Dim aktiverWert As Variant
aktiverWert = ActiveCell.Value

2. Wie kann ich mehrere Zellwerte in einer Variablen speichern?
Du kannst eine Array-Variable verwenden, um mehrere Werte zu speichern:

Dim werte() As Variant
werte = ThisWorkbook.Worksheets("Blatt1").Range("B1:B5").Value

Das gibt dir die Werte der Zellen B1 bis B5 in einem Array zurück.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige