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

Forumthread: Zellen ausfüllen wenn Bedingung erfüllt (per VBA)

Zellen ausfüllen wenn Bedingung erfüllt (per VBA)
Jessi
Hallo zusammen,
ich habe mal wieder eine Frage bzw. ein Problem, dass ich nicht selbst lösen kann.
Ich lasse per Userform in die Spalte B einen "String" schreiben, das funktioniert auch schon (nicht in Beispielmappe integriert)
Beispielmappe:
https://www.herber.de/bbs/user/69282.xls
Sobald die Bedingung in Spalte B erfüllt ist, z.B. String "Prozess 001" in Spalte B der Tabelle steht, soll in die dahinterfolgenden Spalten (gleiche Zeile wie String) in
Spalte BF bis einschl. BM und
Spalte CE bis einschl. CZ und
Spalte DJ bis einschl. DU
jeweils ein "XXX" eingetragen werden, so dass der User erkennt, dass hier nichts mehr zu erfassen ist.
Wie mache ich das am Besten?
Eine Tabelle mit String Beispiel (Spalte B) und "XXX"-Markierungen habe ich zum Download beigefügt.
Vielen lieben Dank vorab!
Jessi
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Zellen ausfüllen wenn Bedingung erfüllt (per VBA)
28.04.2010 19:30:32
Ramses
Hallo
"... jeweils ein "XXX" eingetragen werden, so dass der User erkennt, dass hier nichts mehr zu erfassen ist.
Wie mache ich das am Besten? ..."
Und wo ist nun das Problem ?
Nachdem du den String in die Zeile/Zelle geschrieben hast, einfach weitermachen
Range("BF"& DeineZeilenvariable & ":BM"&DeineZeilenvariable) = "XXX"
usw.
Gruss Rainer
Anzeige
AW: Zellen ausfüllen wenn Bedingung erfüllt (per VBA)
29.04.2010 10:16:21
Jessi
Hallo Uwe,
super, stimmt natürlich, dass ich dass direkt mit integrieren kann...
hier ist der Quellcode für das schreiben in Spalte 2, der cboProzess.value ist ja immer unterschiedlich, wie kann ich das da integrieren? Ich bin leider nicht fit in VBA, dass ich selbst auf den Code kommen könnte, selbst abändern kann ich so was in der Regel :-) Über Hilfe wäre ich sehr dankbar.
LG
Jessi
Private Sub cmdDatenschreiben_Click()
Dim lngNeueReihe As Long
If cboAutor.Value = "" _
Or cboProzess.Value = "" _
Then
MsgBox "Leider können Sie keinen neuen Plan erfassen." _
& vbLf & "Sie müssen sich autorisieren und zudem ein Planlaufprozess festlegen!" _
_
& vbLf & "Das Erfassungsdatum wird automatisch hinterlegt", _
vbInformation, "Hinweis für: " & Application.UserName
Else
'Neue Reihe berechnen
lngNeueReihe = Application.Max(Range("A65536").End(xlUp).Row + 1, 6)
'Werte eintragen
With ActiveSheet
.Cells(lngNeueReihe, 2).Value = Me.cboProzess.Value 'Planlauf-Prozess
.Cells(lngNeueReihe, 19).Value = Me.cboAutor.Value
.Cells(lngNeueReihe, 20).Value = Now
End With
End If
Anzeige
habe es hinbekommen :-) o.T.
29.04.2010 14:51:45
Jessi
xxx
;

Forumthreads zu verwandten Themen

Anzeige
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

Zellen automatisch ausfüllen bei erfüllter Bedingung in Excel


Schritt-für-Schritt-Anleitung

Um in Excel Zellen automatisch auszufüllen, wenn eine bestimmte Bedingung erfüllt ist, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xls) und wähle Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Private Sub cmdDatenschreiben_Click()
       Dim lngNeueReihe As Long
       If cboAutor.Value = "" Or cboProzess.Value = "" Then
           MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbInformation
       Else
           ' Neue Reihe berechnen
           lngNeueReihe = Application.Max(Range("A65536").End(xlUp).Row + 1, 6)
           ' Werte eintragen
           With ActiveSheet
               .Cells(lngNeueReihe, 2).Value = Me.cboProzess.Value ' Spalte B
               ' Zellen automatisch ausfüllen, wenn Bedingung erfüllt
               If .Cells(lngNeueReihe, 2).Value = "Prozess 001" Then
                   .Range("BF" & lngNeueReihe & ":BM" & lngNeueReihe).Value = "XXX"
                   .Range("CE" & lngNeueReihe & ":CZ" & lngNeueReihe).Value = "XXX"
                   .Range("DJ" & lngNeueReihe & ":DU" & lngNeueReihe).Value = "XXX"
               End If
           End With
       End If
    End Sub
  4. Schließe den VBA-Editor und teste das Makro in deiner Excel-Anwendung.


Häufige Fehler und Lösungen

  • Fehler: "Objekt erforderlich": Stelle sicher, dass die cboAutor und cboProzess korrekt benannt sind und in deiner Userform existieren.
  • Fehler: Zellen werden nicht ausgefüllt: Überprüfe, ob die Bedingung ("Prozess 001") tatsächlich erfüllt ist und ob die Zeilenvariable korrekt ermittelt wird.
  • Fehler: Werte werden nicht übernommen: Achte darauf, dass die Excel-Datei gespeichert ist und keine Schutzmechanismen aktiviert sind.

Alternative Methoden

Falls Du keine VBA verwenden möchtest, kannst Du auch die bedingte Formatierung in Excel nutzen, um Zellen visuell hervorzuheben, wenn eine Bedingung erfüllt ist. Um Zellen zu füllen, benötigst Du allerdings eine Formel oder ein Makro.


Praktische Beispiele

Ein praktisches Beispiel für das Ausfüllen von Zellen bei erfüllten Bedingungen könnte so aussehen:

  • In Spalte B wird der Wert "Prozess 001" eingegeben.
  • Die Zellen in den Spalten BF bis BM, CE bis CZ und DJ bis DU der gleichen Zeile werden automatisch mit "XXX" gefüllt.

Verwende den oben gezeigten VBA-Code in Deiner Excel-Anwendung, um diese Funktionalität zu implementieren.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False: Dies kann die Ausführungsgeschwindigkeit Deines Makros erhöhen, indem es das Bildschirm-Rendering während der Ausführung deaktiviert.
  • Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung im VBA-Code, um unerwartete Probleme zu vermeiden.
  • Dokumentation: Kommentiere Deinen Code, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen in meinem VBA-Code einfügen?
Du kannst If...ElseIf...Else-Anweisungen verwenden, um verschiedene Bedingungen zu überprüfen und entsprechend unterschiedliche Aktionen auszuführen.

2. Kann ich den VBA-Code anpassen, um andere Texte als "XXX" einzufügen?
Ja, ändere einfach den Text in der Zeile .Value = "XXX" auf den gewünschten Text.

3. Funktioniert dieser Code in allen Excel-Versionen?
Der bereitgestellte Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren.

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