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

Forumthread: Zellbereich aus Makro mit Variablen ansprechen

Zellbereich aus Makro mit Variablen ansprechen
31.08.2006 07:29:40
Daniel
Hallo zusammen,
Mein Problem ist folgendes: Ich habe in einem Excelblatt eine Sverweis-Abfrage gemacht und als Ergebnis stehen in zwei Zellen nebeneinander die Zellen-Positionen (z.B. steht "A23" in der einen und "C45" in der anderen Zelle), die auf den Bereich des aktuellen Datensatzes hinweisen.
Nun möchte ich in meinem Makro diesen Zellbereich, also die den Bereich von "A23" bis "C45" ansprechen. Das soll aber relativ geschehen, weil sich die Position der Daten kontinuierlich verändert. Nur die Position der Sverweisabfrage bleibt gleich. Ich habe nun also geschrieben:
Sheets("Tabelle1").Select
Range("D4").Select 'hier steht das Ergebnis der ersten Abfrage
Set zelle1 = Selection
Range("E4").Select
Set zelle2 = Selection 'hier steht das Ergebnis der zweiten Abfrage
um zwei Variablen zu definieren, die den Inhalt der beiden Ergebniszellen übernehmen. Wenn ich zum Testen eine Messagebox aufrufe msgbox(zelle1) wird der korrekte Inhalt , z.B. "A23" angezeigt, also übernommen wird der Inhalt.
Wenn ich jetzt aber die Bereiche auf die "A23" usw. hinweisen, mit
Range("zelle1:zelle2").select
ansprechen möchte und kopieren will, bekomme ich die "Fehlermeldng 424, Objekt erforderlich". Daraus werde ich nicht schlau. Oder ist es nicht möglich einen Bereich mit Variablen anzusprechen? Achso: die Variablen habe ich mit "Dim zelle1, zelle2 as Range" definiert.
Ich würde mich sehr über Eure Hilfe freuen. Vielen Dank..Daniel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich aus Makro mit Variablen ansprechen
31.08.2006 08:01:03
IngGi
Hallo Daniel,
deklariere die Variablen zelle1 und zelle2 als Stringvariablen.
Dim zelle1 As String, zelle2 As String
zelle1 = Range("D4")
zelle2 = Range("E4")
Range(zelle1 & ":" & zelle2).Select
Wie du siehst, kannst du dabei auch auf die ganze Selektiererei zum Füllen der Variablen zelle1 und zelle2 verzichten.
Gruß Ingolf
Anzeige
AW: Zellbereich aus Makro mit Variablen ansprechen
31.08.2006 09:09:14
Daniel
Suuper! Vielen Dank für die schnelle Hilfe!
Viele Grüße
Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellbereich in Excel VBA mit Variablen ansprechen


Schritt-für-Schritt-Anleitung

Um einen Zellbereich in Excel VBA mit Variablen anzusprechen, folge diesen Schritten:

  1. Variablen deklarieren: Du musst die Variablen für die Zelladressen als Strings deklarieren.

    Dim zelle1 As String, zelle2 As String
  2. Zellenwerte zuweisen: Weise den Zellinhalten die Werte der Variablen zu.

    zelle1 = Range("D4").Value
    zelle2 = Range("E4").Value
  3. Bereich ansprechen: Verwende die Variablen, um den gewünschten Zellbereich auszuwählen.

    Range(zelle1 & ":" & zelle2).Select
  4. Aktion durchführen: Du kannst jetzt den ausgewählten Bereich kopieren oder eine andere Aktion durchführen.


Häufige Fehler und Lösungen

  1. Fehlermeldung 424: Wenn du die Fehlermeldung "Objekt erforderlich" erhältst, liegt das oft daran, dass du versuchst, einen Bereich mit einer Variable anzusprechen, die nicht korrekt deklariert ist. Stelle sicher, dass die Variablen als Strings und nicht als Range deklariert sind.

  2. Falsche Zellreferenzen: Überprüfe die Zellreferenzen in den Zellen D4 und E4. Wenn diese leer sind oder nicht im richtigen Format vorliegen, kann dies zu Fehlern führen.


Alternative Methoden

Eine alternative Methode zur Verwendung von Variablen ist die direkte Verwendung von Cells:

Dim startRow As Long, endRow As Long
startRow = Cells(4, 1).Value ' Wert aus Zelle A4
endRow = Cells(4, 3).Value ' Wert aus Zelle C4
Range(Cells(startRow, 1), Cells(endRow, 3)).Select

Diese Methode ist besonders nützlich, wenn du mit numerischen Zeilen- und Spaltenindizes arbeitest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man einen Zellbereich mit Variablen anspricht und kopiert:

Sub KopiereBereich()
    Dim zelle1 As String, zelle2 As String
    zelle1 = Range("D4").Value
    zelle2 = Range("E4").Value
    Range(zelle1 & ":" & zelle2).Copy Destination:=Range("F4")
End Sub

In diesem Beispiel wird der Bereich von D4 bis E4 kopiert und in die Zelle F4 eingefügt.


Tipps für Profis

  • Debugging: Nutze Debug.Print um die Werte deiner Variablen während der Ausführung anzuzeigen. Dies hilft dir, Fehler schneller zu identifizieren.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro robust ist, wenn unerwartete Zellinhalte auftreten.
  • Benennung von Variablen: Verwende aussagekräftige Namen für deine Variablen, um den Code leichter verständlich zu machen.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Bereiche mit Variablen ansprechen?
Ja, du kannst mehrere Variablen verwenden, um verschiedene Bereiche anzusprechen, indem du die Syntax entsprechend anpasst.

2. Was mache ich, wenn die Zellreferenzen dynamisch sind?
Du kannst die Zellreferenzen aus einer anderen Quelle beziehen, zum Beispiel aus einer Benutzerabfrage oder einer Datenbank, um die Flexibilität zu erhöhen.

3. Ist es möglich, Zellen mit Variablen zu formatieren?
Ja, du kannst die Formatierung von Zellen, die du mit Variablen ansprichst, ganz normal durchführen, z.B. Range(zelle1 & ":" & zelle2).Interior.Color = RGB(255, 0, 0) um den Hintergrund rot zu färben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige