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

VBA Zelle füllen

Forumthread: VBA Zelle füllen

VBA Zelle füllen
21.11.2005 10:08:24
maennle
Hallo,
würde gerne via VBA eine bestimmte Zeile mit einem "-" füllen, bei einer Bedingung.
Hat jemend den Code?
Danke und grüße an alle
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle füllen
21.11.2005 10:36:45
Klaus
Hallo,
zum füllen der Zelle benutzt du range("A1")="-"
Eine Bedingung fragst du ab mit if TRUE then
Zum Beispiel könntest du schreiben
IF Range("A2")="hallo" THEN Range("A1")="-"
Gruß,
Klaus M.vdT
AW: VBA Zelle füllen
21.11.2005 11:56:42
maennle
Hallo Klaus,
das klappt schon, hätte da aber noch mal was:
ich würde gerne das Zeichen "-" bei bedingung in die letzte gefüllte Zelle des Blattes einfügen.
Geht das?
Anzeige
AW: VBA Zelle füllen
21.11.2005 12:10:17
Klaus
Hallo,


Sub letztefuellen()
Dim irow As Integer
irow = Cells(Rows.Count, 1).End(xlUp).Row
IF [BEDINGUNG] THEN Range("A" & irow) = "-"
End Sub


Wobei (Rows.Count, 1) die letzte gefüllte Zelle in Spalte A ermittelt, (Rows.Count, 2) die von Spalte B und so weiter.
Das Range("A" & irow) musst du natürlich auch an die gewünschte Spalte anpassen.
Achtung: so wie es jetzt ist, überschreibt es den Inhalt der letzten gefüllten Zelle! Deine Fragestellung impliziert, dass du genau das möchtest, aber wenn es doch lieber die erste freie Zelle nach der letzten gefüllten sein soll (da wird ja nicht ohne Grund was drinnen stehen), nimm einfach irow = 1 + Cells(Rows.Count, 1).End(xlUp).Row
.
Gruß,
Klaus M.vdT
Anzeige
AW: VBA Zelle füllen
21.11.2005 13:44:37
maennle
Hallo Klaus,
irgendwie klappt das bei mir nicht so recht.
ich möchte eigentlich diese beiden codes verbinden, sodas bei der Bedingung ein Textfeld ans Ende meiner Tabelle gestellt wird, sozusagen als Anhang/Erläuterung derjenigen. Das Zeichen deshalb, weil verschiedene Bedingungen eintreten können und ggf. mehrere Textfelder , sozusagen endlos und in verschiedener Zusammenstellung auftreten.
Mein Plan: Beding. 1 tritt ein, das Textfeld (welches immer 25 Zeilen lang ist) wird sichtbar am ende der Tabelle;gleichzeitig wird ein "-" gesetzt um das nächste Textfeld "positionieren zu können".
Hast Du verstanden, was mein vielleicht etwas umständlicher Plan sein soll?
Hier der Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim letzte As Range
Shapes("Textfeld 44").Visible = False
If [o301] > 0 Then
Set letzte = Range("c65536").End(xlUp)
With Shapes("Textfeld 44")
.Visible = True
.Top = letzte.Top
.Left = letzte.Left + letzte.Width
End With
End If
End Sub

Sub letztefuellen()
Dim irow As Integer
irow = 1 + Cells(Rows.Count, 3).End(xlUp).Row
If [0301] > 0 Then Range("c" & irow) = "-"
End Sub
Hab hald kaum Ahnung von VBA..............
Danke für Deine Mühen...
Tobi
Anzeige
AW: VBA Zelle füllen
23.11.2005 09:46:16
Klaus
Hi Tobi,
das [Bedingung] ist natürlich ein Platzhalter. Ich nehme mal an, deine Bedingung ist
o310 &gt 0
Dann muss es im Code heissen:
If Range("o301") &gt 0 Then ...
Gruß,
Klaus M.vdT.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Zelle füllen in Excel


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel mit einem Zeichen zu fü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, wie du das umsetzt:

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

  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

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

    Sub ZelleFuellen()
       If Range("A2") = "hallo" Then
           Range("A1") = "-"
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Um das Makro auszuführen, gehe zu Entwicklertools > Makros, wähle „ZelleFuellen“ aus und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Fehler: „Typenübereinstimmung“ beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass die Bedingung richtig definiert ist. Überprüfe, ob die Zelle A2 tatsächlich den erwarteten Wert enthält.
  • Fehler: Die Zelle wird nicht gefüllt.

    • Lösung: Prüfe, ob das Makro korrekt ausgeführt wird und ob die Bedingung (z.B. Range("A2") = "hallo") tatsächlich erfüllt ist.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion „WENN“ in Excel verwenden. Hier ist ein Beispiel:

  1. Gehe zu Zelle A1.
  2. Gib die folgende Formel ein:

    =WENN(A2="hallo"; "-"; "")

Diese Methode nutzt die Excel-Funktionalität, um die Zelle basierend auf der Bedingung zu füllen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die VBA-Funktionalität nutzen kannst, um Zellen zu füllen:

  1. Fülle die letzte gefüllte Zelle in der Spalte A:

    Sub letztefuellen()
       Dim irow As Integer
       irow = Cells(Rows.Count, 1).End(xlUp).Row
       If Range("O301") > 0 Then Range("A" & irow) = "-"
    End Sub
  2. Textfeld sichtbar machen und Zelle füllen:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim letzte As Range
       Shapes("Textfeld 44").Visible = False
       If Range("O301") > 0 Then
           Set letzte = Range("C65536").End(xlUp)
           With Shapes("Textfeld 44")
               .Visible = True
               .Top = letzte.Top
               .Left = letzte.Left + letzte.Width
           End With
           Range("C" & (1 + letzte.Row)) = "-"
       End If
    End Sub

Tipps für Profis

  • Optimierung: Vermeide redundante Berechnungen, indem du die Bedingungen so schreibst, dass sie effizienter sind.
  • Fehlerbehandlung: Nutze On Error Resume Next und On Error GoTo 0, um die Fehlerbehandlung in deinem Code zu verbessern.
  • Dokumentation: Kommentiere deinen Code, um später einfacher nachvollziehen zu können, was jede Zeile macht.

FAQ: Häufige Fragen

1. Wie kann ich das Zeichen, das ich in die Zelle schreibe, ändern?
Du kannst das Zeichen in deinem VBA-Code oder in der Excel-Formel verändern. Ändere einfach Range("A1") = "-" in das gewünschte Zeichen.

2. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten aktuellen Excel-Versionen verfügbar, einschließlich Excel 2016, 2019 und Microsoft 365. Achte darauf, dass die Entwicklertools aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige