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

Forumthread: mit VBA Teil einer Formel ersetzen

mit VBA Teil einer Formel ersetzen
21.03.2008 18:24:48
mtremer
Hallo Excel-Freunde,
hier ist mal wieder eine Frage, die Ihr Profis bestimmt einfach lösen könnt.
Zuerst meine Formel, die in jeder Zelle zwischen A10 und H30 steht:
ZÄHLENWENN('02'!$D$2:$D$3000;A117)
Nun soll durch einen VBA-Code die Formel angepasst werden, sodass '02' durch '03' ausgetauscht wird.
Allerdings nur im Bereich A15 bis H25.
Danke für Eure Mühe.
Viele Grüße
Marco

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit VBA Teil einer Formel ersetzen
21.03.2008 18:34:00
Herbert
Hi,
machs mit suchen und ersetzen und lass dabei den Rekorder laufen.
mfg Herbert

AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:01:00
mtremer
Hallo Herbert,
die Idee hatte ich auch.
Wenn ich dann aber auf "alle ersetzen" drücke, werden auch die Zellen, die sich nicht im besagten Bereich befinden, ersetzt. Der Recorder gibt mir dann natürlich den Code, mit dem gleichen Nebeneffekt...
Ich brauche also einen Code, der ausschließlich in einem fest definierten Bereich die Formeln ändert.
Gibt es da keine Lösung für?
Viele Grüße
Marco

Anzeige
AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:19:34
Renee
Hi Marco,
Wie wär's mit etwas wie:

ActiveSheet.Range("A15:H25").Formula = "=COUNTIF('03'!$D$2:$D$3000,$A$117)"


GreetZ Renée

AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:25:23
mtremer
Hi Renée,
mir schwebt da etwas vor, das nur die '02' ind '03' ändert.
Da ich in allen Zellen andere Bezüge habe, würde mit Deinem Code ja alles gleich werden...
Das scheint ja doch eine schwierigere Aufgabe zu sein, oder?
Viele Grüße
Marco

Anzeige
AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:25:00
mtremer
Hi Renée,
mir schwebt da etwas vor, das nur die '02' ind '03' ändert.
Da ich in allen Zellen andere Bezüge habe, würde mit Deinem Code ja alles gleich werden...
Das scheint ja doch eine schwierigere Aufgabe zu sein, oder?
Viele Grüße
Marco

AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:31:00
Renee
Hi Marco,
Was dir vorschwebt, kann ich leider von hier aus nicht sehen ;-)
Dann Probier doch mal:

ActiveSheet.Range("A15:H25").Formula = Replace(ActiveSheet.Range("A15").Formula, "'77'", "' _
03'")


GreetZ Renée

Anzeige
AW: mit VBA Teil einer Formel ersetzen
21.03.2008 19:35:04
mtremer
Juhuu, das ist es!
Ich danke Dir.
Viele Grüße
Marco
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mit VBA Teil einer Formel ersetzen


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA einen Teil einer Formel zu ersetzen, z.B. '02' durch '03', kannst du folgenden VBA-Code verwenden. Der Code wird nur im definierten Bereich A15 bis H25 ausgeführt:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Gehe zu Einfügen > Modul.

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

    Sub ErsetzeTeilDerFormel()
        Dim Zelle As Range
        For Each Zelle In ActiveSheet.Range("A15:H25")
            If InStr(Zelle.Formula, "'02'") > 0 Then
                Zelle.Formula = Replace(Zelle.Formula, "'02'", "'03'")
            End If
        Next Zelle
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle ErsetzeTeilDerFormel und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Der gesamte Bereich wird ersetzt, nicht nur die gewünschten Zellen.

    • Lösung: Stelle sicher, dass du eine Schleife verwendest, um gezielt die Formeln in den Zellen zu prüfen und nur dann zu ersetzen, wenn die Bedingung erfüllt ist (s. Schritt-für-Schritt-Anleitung).
  • Fehler: Der VBA-Code funktioniert nicht in einer bestimmten Excel-Version.

    • Lösung: Überprüfe die Kompatibilität deines Codes mit deiner Excel-Version. Der obige Code sollte in Excel 2010 und späteren Versionen funktionieren.

Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch die Funktion „Suchen und Ersetzen“ nutzen:

  1. Markiere den Bereich A15 bis H25.
  2. Drücke STRG + H, um das Dialogfeld „Suchen und Ersetzen“ zu öffnen.
  3. Gib in das Feld „Suchen nach“ '02' und in das Feld „Ersetzen durch“ '03' ein.
  4. Klicke auf „Ersetzen“ oder „Alle ersetzen“, aber sei vorsichtig, da dies auch Zellen außerhalb des gewünschten Bereichs beeinflussen kann.

Praktische Beispiele

Angenommen, du hast in den Zellen A15 bis H25 die folgende Formel:

=ZÄHLENWENN('02'!$D$2:$D$3000;A117)

Nach Ausführung des VBA-Codes sollte die Formel in den Zellen wie folgt aussehen:

=ZÄHLENWENN('03'!$D$2:$D$3000;A117)

Hierbei wurde nur der Teil '02' durch '03' ersetzt, während die restliche Struktur der Formel intakt bleibt.


Tipps für Profis

  • Nutze die InStr-Funktion, um spezifische Teile der Formel zu erkennen, bevor du den Replace-Befehl anwendest. Dies erhöht die Flexibilität deines Codes.
  • Teste deinen Code immer an einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehrere Teile einer Formel zu ersetzen?
Du kannst mehrere Replace-Befehle in der Schleife hinzufügen oder eine Array-Schleife verwenden, um mehrere Ersetzungen in einem Durchgang durchzuführen.

2. Funktioniert dieser Code auch in Excel Online?
Leider funktioniert VBA nur in der Desktop-Version von Excel. In Excel Online sind Makros und VBA nicht verfügbar.

3. Kann ich den Code für andere Bereiche anpassen?
Ja, ändere einfach die Bereichsangabe in ActiveSheet.Range("A15:H25") auf den gewünschten Bereich.

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