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

Zelleninhalt mit VBA ersetzen

Forumthread: Zelleninhalt mit VBA ersetzen

Zelleninhalt mit VBA ersetzen
04.10.2012 13:14:20
Bon
Hallo,
ich habe in B15:F26 Zahlen, die zufällig mit einem Makro erzeugt werden.
Ich habe eine Schleife entwickelt und möchte, dass am Ende dieser Schleife die Inhalte in B15:F26 durch B187:F198 ersetzt werden.
Mit welcher Formel kann ich die Inhalte in B15:F26 ersetzen?
Ich hab mich bereits an dieser Formel versucht (um zumindest die erste Zeile zu ersetzen), aber das hat nicht funktioniert.
Private Sub CommandButton7_Click()
Range("B15", "F15") = Range("B187", "F187")
End Sub
Liebe Grüße, Bon

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt mit VBA ersetzen
04.10.2012 13:32:08
Rolf
Hallo Bon,
Sub Ersetzen()
Range("B15:F15").Value = Range("B187:F187").Value
End Sub
Gruß, Rolf

AW: Zelleninhalt mit VBA ersetzen
04.10.2012 14:31:15
Bon
Hallo,
vielen Dank für die Antwort.
Leider funktioniert das bei mir nicht.
Gibt es eine Möglichkeit, dass B187:F198 stehen bleiben und nur die Zelleninhalte nach B15:F26 kopiert werden(ohne, dass Zellen nach unten verschoben werden)
Lg

Anzeige
AW: Zelleninhalt mit VBA ersetzen
04.10.2012 15:32:09
Rolf
Sorry Bon,
in meinem Lösungsvorschlag war ein Flüchtigkeitsfehler. Anbei Beispieldatei mit 2 Alternativen:
a) Werte B15:F26 durch Werte B187:F198 ersetzen
b) Werte von B187:F198 nach B15:F26 kopieren
https://www.herber.de/bbs/user/81988.xlsm
in beiden Fällen bleiben die Werte in B187:F198 erhalten. Das war allerdings vorher auch schon so.
Gruß Rolf
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt mit VBA ersetzen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Neues Modul einfügen: Klicke mit der rechten Maustaste auf VBAProject (deineDatei.xlsm) und wähle Einfügen > Modul.
  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Ersetzen()
       Range("B15:F26").Value = Range("B187:F198").Value
    End Sub
  4. Code ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Ersetzen und klicke auf Ausführen.

Damit werden die Inhalte in den Zellen B15:F26 durch die Inhalte in B187:F198 ersetzt.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen."

    • Lösung: Überprüfe, ob die angegebenen Zellbereiche existieren und richtig geschrieben sind.
  • Fehler: Inhalte werden nicht ersetzt.

    • Lösung: Stelle sicher, dass der Code im richtigen Modul eingefügt wurde und dass du das Makro korrekt ausführst.

Alternative Methoden

  1. Inhalte kopieren ohne Verschieben: Wenn du die Werte von B187:F198 nach B15:F26 kopieren möchtest, ohne die Zelleninhalte in B187:F198 zu verändern, kannst du den folgenden Code verwenden:

    Sub Kopieren()
       Range("B15:F26").Value = Range("B187:F198").Value
    End Sub
  2. Direktes Tauschen der Inhalte: Verwende diesen Code, um die Inhalte von zwei Bereichen direkt zu tauschen:

    Sub Tauschen()
       Dim temp As Variant
       temp = Range("B15:F26").Value
       Range("B15:F26").Value = Range("B187:F198").Value
       Range("B187:F198").Value = temp
    End Sub

Praktische Beispiele

Um die Anwendung des Codes besser zu verdeutlichen, hier ein Beispiel:

  • Angenommen, in den Zellen B15:F26 stehen die Werte 1 bis 12, und in B187:F198 stehen die Werte A bis L. Mit dem obigen VBA-Code tauscht du diese Inhalte, sodass B15:F26 die Buchstaben und B187:F198 die Zahlen erhält.

Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Um die Ausführungsgeschwindigkeit zu erhöhen, kannst du deinen Code um diese Zeile erweitern, um die Bildschirmaktualisierung während der Ausführung zu deaktivieren:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Fehlerbehandlung: Füge eine Fehlerbehandlung hinzu, um dein Makro robuster zu machen:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Daten in B187:F198 erhalten bleiben? Die oben genannten Codes ersetzen nur die Inhalte in B15:F26, während die Daten in B187:F198 unverändert bleiben.

2. Funktioniert das auch in Excel 365? Ja, die beschriebenen VBA-Methoden funktionieren in Excel 365 und früheren Versionen, die die VBA-Programmierung unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige