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

Forumthread: mit VBA bestimmte Zellen suchen und ändern

mit VBA bestimmte Zellen suchen und ändern
16.07.2014 10:37:46
Kempel
Hallo zusammen, ich hab folgendes Problem:
Ich möchte mit hilfe VBA-Schleife alle Zellen die "abc" enthalten raussuchen und den Inhalt der 2 benachbarten rechten Zellen ändern.
z.B. wenn A1= "abc", dann A2= "cba" und A3="bca"
wenn B1= "abc", dann B2= "cba" und B3="bca"
wenn C1= "abc", dann C2= "cba" und C3="bca"
usw.
Hoffe auf eure Hilfe.
Grüße Andre

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit VBA bestimmte Zellen suchen und ändern
16.07.2014 11:27:39
Christian
Hallo Andre,
benachbarte rechte Zellen sind aber nicht A2 und A3, sonder die sind ja untereinander.
Ein Ansatz, wobei im Archiv unzählige Bsp. zu finden sind!
Sub abc()
Dim a As Long, b As Long
b = Cells(1, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
For a = 1 To b
If Cells(1, a) = "abc" Then
Cells(2, a) = "cba"
Cells(3, a) = "bca"
End If
Next a
Application.ScreenUpdating = True
End Sub
MfG Christian

Anzeige
AW: mit VBA bestimmte Zellen suchen und ändern
16.07.2014 12:50:01
Kempel
Hallo Christian, danke für deine Antwort.
Es tut mir leid,- ich habe ein falsches Beispiel gemacht.
Es soll so aussehen:
wenn A1= "abc", dann B1= "cba" und C1="bca"
wenn A2= "abc", dann B2= "cba" und B3="bca"
wenn A3= "abc", dann B3= "cba" und C3="bca"
usw.
Vielen Dank im Voraus!
Andre

Anzeige
AW: mit VBA bestimmte Zellen suchen und ändern
16.07.2014 13:00:17
Christian
Hallo Andre,
dann einfach die zeilen mit den Spalten tauschen:
Sub abc()
Dim a As Long, b As Long
b = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For a = 1 To b
If Cells(a, 1) = "abc" Then
Cells(a, 2) = "cba"
Cells(a, 3) = "bca"
End If
Next a
Application.ScreenUpdating = True
End Sub
MfG Christian

Anzeige
AW: mit VBA bestimmte Zellen suchen und ändern
17.07.2014 11:47:50
Kempel
Hallo Christian, vielen Dank! funktioniert hervorragend!!!
mal andere Fragen:
-wie kann mann prüfen, ob die zelle bestimten Inhalt hat?
z.B. A1=" hallo world ". ich möchte aber wissen, ob A1 das wort "hallo" beinhaltet? und dann die andere Zelle ändern:
wenn A1 beinhaltet "hallo", dann B1="cba".
-und wie kann mann mit MINUS-Zeichen die Zahl in Spalte ergänzen:
z.B. A1="hallo world", I1=235,00
wenn A1 = "hallo world", dann I1="-235,00".
ich habe dafür folgende Code eingegeben, ich glaube aber, dass eine "elegante Lösung" dafür gibt's
If Cells(a, 1) = "hallo world" Then
Cells(a, 10) = -Cells(a, 9)
End If
Vilen Dank im Voraus!
Andre

Anzeige
AW: mit VBA bestimmte Zellen suchen und ändern
17.07.2014 12:31:42
Christian
Hallo Andre,
mit
 If Cells(a, 1) Like "*hallo*" Then
kannst Du auf hallo prüfen.
Zu Deiner anderen Frage wäre noch zu berücksichtigen, ob summiert oder nur ersetzt werden soll.
MfG Christian

AW: mit VBA bestimmte Zellen suchen und ändern
18.07.2014 11:52:32
Kempel
Hallo Christian, vielen Dank! mit Like funktioniert super!
zu anderer Frage: es soll einfach ersetzt werden, nicht summiert.
Vorgabe:
A1="hallo world", I1=235,00
Lösung:
wenn A1 = "hallo world", dann I1="-235,00".
Vielen Dank im Voraus und schönes Wochenende!
Andre
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zellen in Excel mit VBA suchen und ändern


Schritt-für-Schritt-Anleitung

Um in Excel alle Zellen mit einem bestimmten Inhalt zu suchen und deren benachbarte Zellen zu ändern, kannst Du das folgende VBA-Skript verwenden. Dieses Skript sucht nach dem Inhalt "abc" in der ersten Spalte und ändert die benachbarten Zellen in der zweiten und dritten Spalte.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub abc()
    Dim a As Long, b As Long
    b = Cells(Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
    For a = 1 To b
        If Cells(a, 1) = "abc" Then
            Cells(a, 2) = "cba"
            Cells(a, 3) = "bca"
        End If
    Next a
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle das Makro abc und klicke auf Ausführen.

Dieses Skript wird alle Zellen in der ersten Spalte durchsuchen und die benachbarten Zellen in der zweiten und dritten Spalte entsprechend ändern.


Häufige Fehler und Lösungen

Fehler: Das Skript verändert nicht die richtigen Zellen.
Lösung: Stelle sicher, dass Du die korrekten Spaltenindizes verwendest. In diesem Beispiel sucht das Skript in Spalte A und ändert die Zellen in Spalte B und C.

Fehler: Das Makro wird nicht ausgeführt.
Lösung: Überprüfe, ob Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die entsprechenden Optionen.


Alternative Methoden

Anstatt VBA zu verwenden, kannst Du auch die Suchen und Ersetzen-Funktion in Excel nutzen, um Zellen mit einem bestimmten Inhalt zu finden, und anschließend manuell die benachbarten Zellen ändern. Diese Methode ist jedoch weniger effizient, wenn Du viele Zellen gleichzeitig bearbeiten musst.


Praktische Beispiele

  1. Inhalt prüfen und Zellen ändern: Wenn Du überprüfen möchtest, ob eine Zelle den Inhalt "hallo" enthält, kannst Du den folgenden Code verwenden:
If Cells(a, 1) Like "*hallo*" Then
    Cells(a, 2) = "cba"
End If
  1. Zahlen mit Minuszeichen ändern: Um eine Zahl in einer benachbarten Zelle zu ändern, verwende diesen Code:
If Cells(a, 1) = "hallo world" Then
    Cells(a, 9) = -Cells(a, 9)
End If

Diese Beispiele zeigen, wie Du mit VBA alle Zellen mit einem bestimmten Inhalt ausgeben und die benachbarten Zellen entsprechend ändern kannst.


Tipps für Profis

  • Arbeite mit Application.ScreenUpdating = False, um die Leistung zu verbessern, wenn Du viele Zellen bearbeitest.
  • Nutze Debug.Print, um den Status Deines Skripts zu verfolgen, falls Du Probleme mit dem Code hast.
  • Teste alle Skripte in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich alle Zellen mit einem bestimmten Inhalt in Excel finden?
Du kannst das VBA-Skript verwenden, um gezielt nach Zellen zu suchen, die einen bestimmten Inhalt haben.

2. Wie kann ich mit VBA mehrere Bedingungen prüfen?
Du kannst mehrere If-Bedingungen kombinieren oder eine Select Case-Anweisung verwenden, um verschiedene Bedingungen zu prüfen.

3. Wie ändere ich den Code, um nach einem anderen Inhalt zu suchen?
Ändere einfach den Text in der If-Bedingung, z.B. If Cells(a, 1) = "dein_inhalt" Then.

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