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

Forumthread: Adresse einer Zelle in einem Range

Adresse einer Zelle in einem Range
03.04.2017 14:57:45
Barbaraa
Hallo
vielleicht eine einfache frage, dennoch, ich komme nicht dahinter.
Wie bekommt man die Adresse einer Zelle in einem Range?
Beispiel:
Im Bereich "Typ" soll in die erste Zelle einer jeden Zeile, die als Zellinhalt "Apfel" hat, "Birne" stehen.
Sub Zeile_finden()
Dim Zelle As Range
Dim Typ As Range
For Each Zelle In Typ
If Zelle.Value = "Apfel" Then
Typ(?,1)= "Birne"
End If
Next
End Sub
Dort, wo "?" steht, soll die gesuchte Zahl hin.
Freue mich über Eure Antworten.
LG, Barbara
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adresse einer Zelle in einem Range
03.04.2017 15:14:22
Beverly
Hi Barbara,
wenn ich dein Anliegen richtig verstanden habe:
Cells(Zelle.Row, 1) = "Birne"


AW: Adresse einer Zelle in einem Range
03.04.2017 15:29:15
Barbaraa
Verzeih, da habe ich mich falsch ausgedrückt.
Im Bereich "Typ" soll in die erste Zelle einer jeden Range-Zeile des Bereichs "Typ", die als Zellinhalt "Apfel" hat, "Birne" stehen.
und nicht die Zelle in Spalte A. Der Bereich "Typ" kann durchaus weiter rechts anfangen.
LG,
Barbara
Anzeige
AW: Adresse einer Zelle in einem Range
03.04.2017 15:34:51
Beverly
Du hast der variablen ja keinen Zellbereich zugewiesen...
Nach diesem Prinzip:
Sub Zeile_finden()
Dim Zelle As Range
Dim Typ As Range
Set Typ = Range("B5:E20")
For Each Zelle In Typ
If Zelle.Value = "Apfel" Then
Typ.Cells(Zelle.Row - 4, 1) = "Birne"
End If
Next
End Sub


Anzeige
AW: Adresse einer Zelle in einem Range
03.04.2017 15:57:04
Barbaraa
Jaja, keinen Zellbereich zugewiesen, schlecht formuliert, und dennoch konntet ihr mir helfen:
Hier die Lösung:
Sub Zeile_finden()
Dim Zelle As Range
Dim Typ As Range
Set Typ = Range("D150", "F153")
For Each Zelle In Typ
If Zelle.Value = "Apfel" Then
Cells(Zelle.Row, Typ.Column).Value = "Birne"
End If
Next
End Sub

(natürlich unter der Voraussetzung, dass da wirklich Texte drin sind)
Und ich dachte, dass man das auch mit dem Range und seiner Adressierung machen könnte, also Typ statt Cells.
Problem gelöst, Vielen Dank.
LG,
Barbara
Anzeige
AW: Adresse einer Zelle in einem Range
03.04.2017 15:19:16
UweD
Hallo
so?
Sub Zeile_finden()
    Dim Zelle As Range
    Dim Typ As Range
    Set Typ = Range("B2:C8")
    For Each Zelle In Typ.SpecialCells(xlCellTypeConstants, 3) 'Nur Zellen die Text oder Zahlen enthalten 
        If Zelle.Value = "Apfel" Then
            Cells(Zelle.Row, 1) = "Birne"
        End If
     Next
End Sub

LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Adresse einer Zelle in einem Range ermitteln


Schritt-für-Schritt-Anleitung

Um die Adresse einer Zelle in einem bestimmten Range zu ermitteln und auf Basis des Zellinhalts Änderungen vorzunehmen, kannst du folgendes VBA-Skript verwenden:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Kopiere und füge den folgenden Code ein:

    Sub Zeile_finden()
        Dim Zelle As Range
        Dim Typ As Range
        Set Typ = Range("B5:E20") ' Definiere deinen Bereich hier
        For Each Zelle In Typ
            If Zelle.Value = "Apfel" Then
                Cells(Zelle.Row, Typ.Column).Value = "Birne"
            End If
        Next
    End Sub
  4. Führe das Makro aus: Drücke F5, während der Cursor im Codebereich ist.


Häufige Fehler und Lösungen

  • Fehler: "Typ ist nicht zugewiesen"

    • Lösung: Stelle sicher, dass du den Range "Typ" korrekt zugewiesen hast, bevor du die Schleife durchgehst.
  • Fehler: Zelle wird nicht gefunden

    • Lösung: Überprüfe, ob der gesuchte Inhalt ("Apfel") tatsächlich im definierten Bereich vorhanden ist.

Alternative Methoden

Eine weitere Möglichkeit, die Adresse einer Zelle mit bestimmten Inhalten zu ermitteln, ist die Verwendung der Funktion Find:

Sub Zelle_finden_mit_Find()
    Dim Zelle As Range
    Set Zelle = Range("B5:E20").Find("Apfel")
    If Not Zelle Is Nothing Then
        Zelle.Offset(0, 1).Value = "Birne" ' Setze "Birne" in die Zelle rechts von "Apfel"
    End If
End Sub

Diese Methode ist besonders nützlich, wenn du nur die erste gefundene Zelle mit dem Inhalt "Apfel" ändern möchtest.


Praktische Beispiele

Nehmen wir an, du möchtest die Adresse aller Zellen im Bereich "D150:F153" auslesen, die den Inhalt "Apfel" haben. So könntest du das umsetzen:

Sub Zellen_adressen_auslesen()
    Dim Zelle As Range
    Dim Typ As Range
    Set Typ = Range("D150:F153")
    For Each Zelle In Typ
        If Zelle.Value = "Apfel" Then
            Debug.Print Zelle.Address ' Gibt die Adresse der Zelle im Immediate-Fenster aus
        End If
    Next
End Sub

In diesem Beispiel wird die Zelladresse der gefundenen Zellen in der Debug-Konsole angezeigt.


Tipps für Profis

  • Verwende SpecialCells: Um nur Zellen mit bestimmten Inhalten zu bearbeiten, nutze Typ.SpecialCells(xlCellTypeConstants) für eine schnellere Verarbeitung.

  • Zelladresse berechnen: Du kannst die Zelladresse auch direkt in einer Variable speichern, um sie später zu verwenden:

    Dim Adresse As String
    Adresse = Zelle.Address
  • VBA und Excel-Formeln kombinieren: Mit ActiveCell.Formula kannst du Formeln direkt in Zellen einfügen, um dynamische Berechnungen durchzuführen.


FAQ: Häufige Fragen

1. Wie kann ich die Adresse einer Zelle mit VBA ermitteln?
Du kannst die Adresse einer Zelle mit Zelle.Address im VBA-Code auslesen. Dies gibt dir die exakte Adresse der Zelle zurück.

2. Gibt es eine Möglichkeit, die Adresse einer Zelle mit einem bestimmten Inhalt zu finden?
Ja, du kannst die Find-Methode nutzen, um die Zelle zu suchen und deren Adresse auszulesen.

3. Wie kann ich die Zelladresse für einen Bereich dynamisch anpassen?
Du kannst die Zelladresse mit Variablen kombinieren und so dynamische Referenzen erstellen, die auf verschiedene Bereiche zeigen.

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