Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen mit variablen Adressen einen Wert zuweisen

Zellen mit variablen Adressen einen Wert zuweisen
30.11.2004 18:47:44
Kostja
Hallo,
bei meinem Problem möchte ich aus einer bestehenden Tabelle (Arbeitsblatt1) eine neue Tabelle (Arbeitsblatt2) wie folgt erstellen.
Für jede Zelle, die eine Bedingung erfüllt, soll in der neuen Tabelle eine neue Zeile mit drei Zellen gefüllt werden: der zur Zelle gehörenden Spaltenüberschrift, der zur Zelle gehörenden Zeilenüberschrift und dem Inhalt der Zelle selbst.
Unproblematisch ist die Ermittlung der Zelladresse der geprüften Zelle (z.B. B15). Aber wie kann ich jetzt dafür sorgen, dass in das eine Feld der Inhalt von B1 (Spaltenüberschrift) und in das andere der Inhalt von A15 (Zeilenüberschrift) übernommen wird. Wie muss in einem Ausdruck der Form worksheets("blatt1").cells(hier die variabel zusammengesetzte Adresse).value die Adresse lauten?
Zunächst müssten ja die Zeile und Spalte aus der Adresse extrahiert und je einer Variablen zugeordnet werden und dann soll daraus die variable Adresse konstruiert werden.
Fazit: Wie ermittle ich Spalte und Zeile aus einer bekannten Adresse und wie gebe ich eine Zelladresse an, die sich aus Variablen und Konstanten zusammensetzen soll?
Danke an alle, die bis hierher gelesen haben ;-)
Kostja
Anzeige
AW: Zellen mit variablen Adressen einen Wert zuweisen
Kurt
hi Kostja,
willst du uns mit VBA=gut ein wenig auf den arm nehmen ?
zeile = ActiveCell.Row
spalte = ActiveCell.Column
...und Tschüss Kurt
AW: Zellen mit variablen Adressen einen Wert zuweisen
Kostja
Lieber Kurt,
entschuldige bitte, falls ich mich missverständlich ausgedrückt habe (ich seh gerade selbst, dass es ein bisschen konfus war). Ich habe die Zeile und Spalte natürlich auf diesem Weg einer Variablen zuweisen können. Dass das funktioniert, kann ich auch prima durch die Überwachung im Verlauf der Ausführung nachvollziehen. Ich habe allerdings mit diesen Variablen keinen Erfolg bei der folgenden Anweisung gehabt:
worksheets(tabelle1).cells(variable1,variable2).value = worksheets(tabelle2).cells(variable1,1).value
Gruß
Konstantin
PS: Wenn ich wirklich gut in VBA wäre, müsste ich hier nicht nachfragen, oder ;-)
Anzeige
AW: Zellen mit variablen Adressen einen Wert zuweisen
Udo
worksheets("tabelle1").cells(variable1,variable2).value = worksheets("tabelle2").cells(variable1,1).value
Udo
AW: Zellen mit variablen Adressen einen Wert zuweisen
Kostja
Danke Udo! Mit Hilfe von Jans Ansatz habe ich das Problem inzwischen gelöst! Ein paar Anpassungen noch und alles läuft (auch wenn mein Rechner ne halbe Stunde braucht um die ganze Tabelle abzuarbeiten ;-) )
Beste Grüße
Kostja
Anzeige
AW: Zellen mit variablen Adressen einen Wert zuweisen
Jan
Hi Kostja,
Ich weiß nicht, ob ich Dich richtig verstanden habe.
Schau mal nach, ob der Link die richtige lösung für Dein Problem ist.
https://www.herber.de/bbs/user/14149.xls
Jan
AW: Zellen mit variablen Adressen einen Wert zuweisen
Kostja
Danke Jan! Das war auf jeden Fall ein Stoß in die richtige Richtung. Ich habs noch an meine Tabellengröße angepasst und die Reihenfolge bei der Ausgabe verändert, aber es läuft und sieht gut aus (auch wenn mein Rechner während der Ausführung ne halbe Stunde nicht zu gebrauchen ist ;-) ).
Beste Grüße
Kostja
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellen mit variablen Adressen einen Wert zuweisen


Schritt-für-Schritt-Anleitung

  1. Variablen definieren: Zuerst solltest du die Zeile und Spalte, die du verwenden möchtest, in Variablen speichern. Zum Beispiel:

    zeile = ActiveCell.Row
    spalte = ActiveCell.Column
  2. Wert zuweisen: Um einer Zelle einen Wert zuzuweisen, kannst du die folgende Anweisung verwenden:

    Worksheets("Tabelle1").Cells(zeile, spalte).Value = Worksheets("Tabelle2").Cells(zeile, 1).Value

    Hier wird der Wert aus Zelle A[zeile] von „Tabelle2“ in die Zelle [zeile, spalte] von „Tabelle1“ übertragen.

  3. Zelladresse zusammensetzen: Wenn du die Adresse einer Zelle mit bestimmten Inhalten benötigst, kannst du die Zelladresse als Variable definieren:

    zelleAdresse = "B" & zeile
    Worksheets("Tabelle1").Range(zelleAdresse).Value = "Dein Wert"
  4. Makro erstellen: Wenn du diese Schritte automatisieren möchtest, erstelle ein Makro:

    Sub ZelleWertZuweisen()
       Dim zeile As Integer
       Dim spalte As Integer
       zeile = ActiveCell.Row
       spalte = ActiveCell.Column
       Worksheets("Tabelle1").Cells(zeile, spalte).Value = Worksheets("Tabelle2").Cells(zeile, 1).Value
    End Sub

Häufige Fehler und Lösungen

  • Fehler: „Objekt oder Klasse nicht gefunden“: Überprüfe, ob die Arbeitsblätter korrekt benannt sind. Stelle sicher, dass die Namen in den Anweisungen exakt mit denen in deiner Excel-Datei übereinstimmen.

  • Lösung: Falsche Zelladresse: Wenn die Zelladresse nicht korrekt ist, versichere dich, dass die Variablen für Zeile und Spalte richtig zugewiesen sind. Verwende Debugging, um die Werte zu überprüfen.


Alternative Methoden

  • Feste Werte zuweisen: Anstatt Werte aus anderen Zellen zu übernehmen, kannst du auch feste Werte zuweisen:

    Worksheets("Tabelle1").Cells(zeile, spalte).Value = 100
  • Excel-Formeln verwenden: Du kannst auch Excel-Formeln in die Zellen einfügen:

    Worksheets("Tabelle1").Cells(zeile, spalte).Formula = "=SUM(A1:A10)"

Praktische Beispiele

  • Beispiel 1: Übertrage die Überschrift einer Spalte:

    Worksheets("Tabelle1").Cells(zeile, spalte).Value = Worksheets("Tabelle2").Cells(1, spalte).Value
  • Beispiel 2: Zelle in einer anderen Tabelle ansprechen:

    Dim zelle As Range
    Set zelle = Worksheets("Tabelle2").Cells(zeile, spalte)
    Worksheets("Tabelle1").Cells(zeile, spalte).Value = zelle.Value

Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler durch Tippfehler in Variablennamen zu vermeiden.

  • Verwende Debug.Print, um die Werte von Variablen während der Ausführung des Codes zu überprüfen. Dies ist nützlich, um sicherzustellen, dass die richtigen Zelladressen verwendet werden.

  • Experimentiere mit Array-Formeln, um mehrere Zellen auf einmal zu bearbeiten.


FAQ: Häufige Fragen

1. Wie kann ich den Wert einer Zelle in einer Variablen speichern?
Du kannst den Wert einer Zelle in einer Variablen speichern, indem du die folgende Anweisung verwendest:

Dim meinWert As Variant
meinWert = Worksheets("Tabelle1").Cells(1, 1).Value

2. Kann ich die Zelladresse dynamisch erstellen?
Ja, du kannst die Zelladresse dynamisch erstellen, indem du Zeile und Spalte kombinierst:

Dim zelleAdresse As String
zelleAdresse = "A" & zeile

3. Wie kann ich eine Schleife verwenden, um mehrere Zellen zu bearbeiten?
Du kannst eine Schleife wie folgt verwenden:

For i = 1 To 10
    Worksheets("Tabelle1").Cells(i, 1).Value = i
Next i

Diese Anleitung sollte dir helfen, effizient Werte in Excel-Zellen zuzuweisen, insbesondere mit VBA.

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