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

Forumthread: Excel Makro: Wenn Wert vorhanden, dann...

Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 15:32:35
Weiland
Guten Tag,
ich kenne mich mit VBA leider gar nicht aus. Für ein Projekt habe ich mehrer große Tabellen mit verschieden Werten darin. Nun muss ich einen Wert in eine Zelle eintragen, vorausgesetzt ein anderer von mir bestimmter Wert in einer anderen Zelle kommt darin vor. Eigentlich ziemlich simpel.
Das würde dann folgendermaßen aussehen:
In Spalte G und H befinden sich Werte (z.B. G3="2" / H3="3" ; ... ; G20="50" / H20="6"; ... und so weiter).
Wenn jetzt der Wert "2" in der Spalte G oder H vorkommt, dann möchte ich, dass in die gleichen Zeile in der Spalte I der Wert "3" eingetragen wird.
Ich habe es ansatzweise probiert, komme aber nicht weiter. Einfacher halber nur mal mit einer Spalte als Suchkriterium.
Hier den Code den ich verwendet habe:
If Intersect(Range("G"), Target) Is Nothing Then Exit Sub
If Target = "8320000" Then
Range("I" & Target.Row) = "3"
Else
Range("I" & Target.Row) = ""
End If
End Sub
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 15:54:46
Werner
Hallo,
wie/wann soll das Makro starten? Automatisch, sobald ein Wert in Spalte G oder H eingegeben wird? Falls ja, wie kommen die Werte in die Zellen? Werden sie manuell eingegeben oder sind sie das Ergebnis einer Formelberechnung?
Oder soll das Makro per klick auf eine Schaltfläche gestartet werden?
Was ist, wenn sowohl in Spalte G als auch in Spalte H der entsprechende Wert vorhanden ist?
Gruß Werner
Anzeige
AW: Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 16:07:10
Weiland
Hallo,
danke für die schnelle Rückmeldung. Das Makro soll per Tastenkombination gestartet werden. Die Werte sind fix manuell (ohne Formel) eingetragen. Und der Wert kommt nur jeweils in G oder H vor.
Das ein Wert in beiden Zeilen vorhanden ist, ist nicht der Fall. Es kann sein das z.B. der Wert "2" in G3 und dann später nochmal in H500 vorkommt, aber niemals in der gleichen Zeile. Sprich es soll bei I3 und I500 den Wert "3" einsetzen.
Ich weiß nicht ob es nicht einfacher wäre 2 Makros zu erstellen. Einmal die Abfrage für die Spalte G und dann die Abfrage für Spalte H?
Anzeige
AW: Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 16:51:38
Werner
Hallo,
so?
Public Sub Test()
Dim loLetzte As Long, raZelle As Range
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Range("G:H").SpecialCells(xlLastCell).Row
For Each raZelle In .Range("G1:H" & loLetzte)
If raZelle.Value = 2 Then
If raZelle.Column = 7 Then
raZelle.Offset(, 2) = 3
ElseIf raZelle.Column = 8 Then
raZelle.Offset(, 1) = 3
End If
End If
Next raZelle
End With
End Sub
Gruß Werner
Anzeige
AW: Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 17:11:29
Weiland
Hallo,
funktioniert perfekt.
Vielen lieben dank für die Mühe und die schnelle Rückmeldung :).
Gerne u. Danke für die Rückmeldung. o.w.T.
15.05.2018 19:19:25
Werner
AW: Excel Makro: Wenn Wert vorhanden, dann...
15.05.2018 20:53:17
Barbaraa
Mit Formeln hast Du sofort das Ergebnis, und nicht erst nach Starten des Makros.
Obwohl es auch mit einem Makros ginge, das bei Bedarf anspringt.
Die Formel in I3 sieht so aus:
I3: =WENN((G3=3)+(H3=3)>0;2;"")

oder
I3: =WENN(ODER((G3=3);(H3=3));2;"")

Ist aber die 2 in I nur dann gewünscht, wenn entweder nur in G oder nur in H eine 3 steht, dann empfehle ich
diese Formel:
I3: =WENN((G3=3)+(H3=3)=1;2;"")
LGB
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel Makro: Wenn Wert vorhanden, dann


Schritt-für-Schritt-Anleitung

Um ein Excel Makro zu erstellen, das einen bestimmten Wert in einer Zelle überprüft und basierend darauf in einer anderen Zelle einen Wert einträgt, folge diesen Schritten:

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

  2. Einfügen eines neuen Moduls:

    • Klicke auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Public Sub Test()
       Dim loLetzte As Long, raZelle As Range
       With Worksheets("Tabelle1") ' Blattname anpassen
           loLetzte = .Range("G:H").SpecialCells(xlLastCell).Row
           For Each raZelle In .Range("G1:H" & loLetzte)
               If raZelle.Value = 2 Then
                   If raZelle.Column = 7 Then
                       raZelle.Offset(, 2) = 3
                   ElseIf raZelle.Column = 8 Then
                       raZelle.Offset(, 1) = 3
                   End If
               End If
           Next raZelle
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Starte das Makro über Entwicklertools > Makros und wähle Test aus.

Dieses Makro sucht in den Spalten G und H nach dem Wert "2". Wenn es gefunden wird, trägt es in die entsprechende Zeile in Spalte I den Wert "3" ein.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass du das Makro korrekt gestartet hast und dass die Blattnamen im Code stimmen.
  • Fehler: Werte werden nicht korrekt eingetragen.

    • Lösung: Überprüfe, ob die Werte in den Spalten G und H wirklich "2" sind und dass das Makro auf die richtige Tabelle zugreift.

Alternative Methoden

Wenn du lieber mit Excel-Formeln arbeiten möchtest, kannst du folgende Formeln verwenden, um ähnliche Ergebnisse zu erzielen:

  1. Formel in Zelle I3:

    =WENN(ODER(G3=2; H3=2); 3; "")
  2. Wenn du nur eintragen möchtest, wenn der Wert in einer Spalte vorhanden ist:

    =WENN((G3=2)+(H3=2)=1; 3; "")

Diese Formeln tragen den Wert "3" in die Zelle ein, wenn der Wert "2" in den Zellen G3 oder H3 vorhanden ist.


Praktische Beispiele

Angenommen, deine Tabelle sieht wie folgt aus:

G H I
2 3
5 2
4 1

Wenn du das Makro ausführst, wird die Tabelle so aussehen:

G H I
2 3 3
5 2 3
4 1

Tipps für Profis

  • Makro optimieren: Du kannst das Makro anpassen, um mehrere Werte gleichzeitig zu prüfen oder um eine Rückmeldung zu erhalten, wenn das Makro ausgeführt wird.
  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um unerwartete Fehler während der Ausführung des Makros zu vermeiden.
  • Makros automatisieren: Du kannst das Makro so einstellen, dass es bei jeder Änderung in den Zellen G oder H automatisch ausgeführt wird.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für andere Werte anpassen?
Ändere einfach die Werte in den If-Bedingungen im VBA-Code.

2. Kann ich das Makro auch für mehrere Tabellen verwenden?
Ja, du musst nur den Blattnamen in dem Code anpassen.

3. Was mache ich, wenn der Wert nicht vorhanden ist?
Du kannst die Else-Bedingung im VBA-Code verwenden, um einen alternativen Wert oder eine Nachricht anzuzeigen.

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