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

Forumthread: VBA Adresse aus Zelle

VBA Adresse aus Zelle
22.08.2022 13:20:32
Marko
Hallo in die Runde,
wie muss ich folgende Code schreiben, um das Makro ausführen zu können.
Kopieren möchte die Inhalte aus Sheets("Tabelle1"). Range("CA12:DF12") nach der Zieladresse die sich in Sheets("Tabelle1"). Range("CA11") befindet.
Die Zieladresse ist variabel und lautet im konkreten Fall 'KoBo (2)'!A32:AB32 und wurde mit dem Befehl "Verketten" zusammengesetzt.

Private Sub CommandButton3_Click()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Range("CA11").Value = Sheets("Tabelle1").Range("CA12:DF12").Value
'hier weiß ich nicht, wie ich die Adresse aus der Zelle CA11 in den Code einfügen kann
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Vielen Dank für Eure Unterstützung.
Beste Grüße, Marko
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Adresse aus Zelle
22.08.2022 13:28:37
MCO
Probier das mal...

Sheets("Tabelle1"). Range("CA12:DF12") .copy range(Sheets("Tabelle1"). Range("CA11").text)
... ungetestet....
Gruß, MCO
AW: VBA Adresse aus Zelle
22.08.2022 13:40:53
Marko
Hallo MCO,
leider funktioniert der Code nicht.
AW: VBA Adresse aus Zelle
22.08.2022 14:19:04
UweD
Hallo
versuch es mal so

    Dim TB As Worksheet, Zelle As String, ARR
'Annahme in CA steht'KoBo (2)'!A32:AB32
ARR = Split(Sheets("Tabelle1").Range("CA11").Text, "!")
ARR(0) = Replace(ARR(0), "'", "")
ARR(0) = Replace(ARR(0), "=", "") 'falls noch Gleichheitszeichen drin steht
Set TB = Sheets(ARR(0))
Zelle = ARR(1)
Sheets("Tabelle1").Range("CA12:DF12").Copy TB.Range(Zelle)
LG UweD
Anzeige
AW: VBA Adresse aus Zelle
22.08.2022 14:40:27
Marko
Hallo UweD,
das Kopieren funktioniert. Es steht in der den Zieladressen leider nicht die Werte, sondern #BEZUG.
Woran kann das liegen?
Beste Grüße, Marko
AW: VBA Adresse aus Zelle
22.08.2022 14:57:21
Luschi
Hallo Marko,
Du mußt mehr die Möglichkeiten des Debuggers nutzen:
- setze in die Zeile: Set TB = Sheets(ARR(0)) einen Haltepunkt mit der F9-Taste
- schalte über: Ansicht Überwachungsfenster dies ein
- markiere die Variable 'ARR und ziehe sie bei gedrückter Maustaste in diese Ü-Fenster und lasse sie fallen
- starte Dein Makro
- beim Haltepunkt hält die Programmausausführung an
- im Ü-Fenster kannst Du dir den Inhalt er Variablen 'ARR' ansehen
- mit der F8-Taste kannst Du dann die Programmausführung um 1 Zeile weiterschalten
Ich bin mir sicher, daß da mit Hilfe von Worksheetfunction.Transpose der Inhalt noch gedreht werden muß, vielleicht sogar doppelt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Adresse aus Zelle
22.08.2022 15:14:47
Marko
Hallo Luschi,
vielen Dank für die Info. In dem Bereich war ich bis jetzt noch nicht unterwegs, werde mich damit beschäftigen.
Besten Gruß, Marko
Mustertabelle
22.08.2022 15:03:26
UweD
..hochladen.
LG UweD
AW: VBA Adresse aus Zelle
22.08.2022 14:48:38
GerdL
Moin Marko!
Die Werte von 32 Zellen aus Tabelle 1!CA12:DF12 passen in 28 Zellen von Tabelle KoBo (2)!A32:AB32 leider nicht alle rein.
Entweder ist die Quelle zu verkleinern oder das Ziel zu vergrößern. :-)
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

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

VBA Adresse aus Zelle richtig verwenden


Schritt-für-Schritt-Anleitung

Um die Werte aus einem Bereich in Excel zu kopieren und die Zieladresse dynamisch aus einer Zelle auszulesen, kannst Du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass die Zieladresse in der Zelle CA11 steht und die Werte aus CA12:DF12 kopiert werden sollen.

Private Sub CommandButton3_Click()
    Dim TB As Worksheet
    Dim Zelle As String
    Dim ARR As Variant

    ' Adresse aus Zelle auslesen
    ARR = Split(Sheets("Tabelle1").Range("CA11").Text, "!")
    ARR(0) = Replace(ARR(0), "'", "")
    ARR(0) = Replace(ARR(0), "=", "") ' falls ein Gleichheitszeichen drin steht
    Set TB = Sheets(ARR(0))
    Zelle = ARR(1)

    ' Werte kopieren
    Sheets("Tabelle1").Range("CA12:DF12").Copy TB.Range(Zelle)
End Sub

Dieser Code nutzt die Funktion Split, um die Adresse aus der Zelle CA11 in den Arbeitsblattnamen und die Zielzelle zu zerlegen. Stelle sicher, dass die Adresse korrekt formatiert ist, z.B. 'KoBo (2)'!A32:AB32.


Häufige Fehler und Lösungen

  1. Fehler: #BEZUG!

    • Ursache: Die Anzahl der Zellen im Quellbereich passt nicht zum Zielbereich.
    • Lösung: Überprüfe, ob der Zielbereich groß genug ist, um die kopierten Werte aufzunehmen.
  2. Fehler: Ungültige Zieladresse

    • Ursache: Die Zieladresse in CA11 ist falsch formatiert.
    • Lösung: Stelle sicher, dass die Adresse immer im Format 'Tabellenname'!Zelle vorliegt.
  3. Fehler beim Kopieren

    • Lösung: Überprüfe, ob das Arbeitsblatt, aus dem Du kopierst, wirklich existiert und richtig adressiert ist.

Alternative Methoden

Eine alternative Methode, um die Adresse einer Zelle auszulesen, wäre die Nutzung der Range.Address-Eigenschaft. Diese Methode kann hilfreich sein, wenn Du die Adresse in einem anderen Kontext verwenden möchtest.

Dim ZielAdresse As String
ZielAdresse = Sheets("Tabelle1").Range("CA11").Address

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die excel vba adresse zelle auslesen kannst:

  1. Kopieren von Daten in eine andere Tabelle:

    • Verwende den obigen VBA-Code, um Daten aus einem Bereich in eine andere Tabelle zu kopieren, indem Du die Zieladresse aus einer Zelle ausliest.
  2. Verketten von Adressen:

    • Du kannst die Verketten-Funktion in Excel verwenden, um dynamische Adressen zu erstellen, die dann im VBA-Code verwendet werden können.

Tipps für Profis

  • Nutze den Debugger und setze Haltepunkte mit der F9-Taste, um den Code Schritt für Schritt zu überprüfen.
  • Verwende das Überwachungsfenster in Excel, um Variablenwerte während der Ausführung zu kontrollieren.
  • Experimentiere mit der WorksheetFunction.Transpose-Methode, wenn Du Daten kopierst und die Ausrichtung ändern musst.

FAQ: Häufige Fragen

1. Wie kann ich die Adresse einer Zelle in VBA direkt verwenden? Um die Adresse einer Zelle in VBA zu verwenden, kannst Du die Range.Address-Eigenschaft nutzen, um die genaue Adresse zu erhalten.

2. Was mache ich, wenn ich die Zieladresse nicht kenne? In diesem Fall kannst Du die Adresse dynamisch mit der Verketten-Funktion in Excel erstellen und im VBA-Code darauf zugreifen.

3. Kann ich mehrere Zellen gleichzeitig adressieren? Ja, Du kannst Bereiche in VBA adressieren, indem Du z.B. Range("A1:B2") verwendest, um mehrere Zellen zu kopieren oder zu manipulieren.

4. Was ist, wenn mein Ziel-Worksheet nicht existiert? Überprüfe, ob das Arbeitsblatt existiert, bevor Du versuchst, darauf zuzugreifen. Du kannst das mit einer Fehlerbehandlung in VBA tun.

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