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

VBA autom. Text in Zellen füllen

Forumthread: VBA autom. Text in Zellen füllen

VBA autom. Text in Zellen füllen
24.02.2020 13:40:45
Stefan
Hallo zusammen,
kann mir jemand helfen folgendes Problem in VBA zu lösen:
Ich möchte beginnend in Zelle B2/C3/D4 das Wort „offen“ schreiben lassen.
Also immer beginnend in B2 eine Zeile nach unten und eine Spalte nach rechts.
Überschriften: A1:Datum, B1:Berlin, C1:Hamburg, D1:Hannover
Das Ganze beginnt immer in B2 und soll bis zum (variablen) letzten Eintrag gehen und dann aufhören.
In meinem Beispiel also von B2 bis D4. Pro Zeile steht dann jeweils nur einmal das Wort „offen“.
Die anderen Zellen bleiben leer.
Also sieht das Ergebnis so aus:
A1 bis D1:
Datum Berlin Hamburg Hannover
B2 offen
C3 offen
D4 offen
Deshalb soll das Ende variabel sein, weil es ohne weiteres mal mehr Spalten geben kann.
Bei Bedarf bastele ich gerne eine Excel Tabelle.
Vielen Dank vorab!
Viele Grüße
Stefan
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA autom. Text in Zellen füllen
24.02.2020 14:04:06
Joachim
Hallo
in der Prozedur schreibst Du:

n=4 'n ist Deine Variable
for i = 2 to n
cells(i,i).value="offen"
next i

AW: VBA autom. Text in Zellen füllen
24.02.2020 14:27:57
Stefan
Danke. Das versetzte Schreiben funktioniert.
Allerdings ist hier n fixiert bis Zeile 4. Das soll ja variabel gehalten werden, weil es ab Spalte D möglich ist, viel mehr Einträge zu erhalten. Da soll dann auch das Wort drin stehen.
Die Ermittlung von n sollte dann so etwas sein wie "SpecialCells(xlLastCell)".
Ich bekomme dies variable aber nicht umgesetzt.
Anzeige
AW: VBA autom. Text in Zellen füllen
25.02.2020 08:50:58
hary
Moin
So wird nur in Zeile1 die letzte Spalte(variabel) gesucht.
Dim i As Long
For i = 2 To Cells(1, Columns.Count).End(xlToLeft).Column'

gruss hary
AW: VBA autom. Text in Zellen füllen
25.02.2020 09:38:51
Stefan
Vielen Dank hary,
das funktioniert.
In der "echten" Tabelle soll es aber in Zelle E2 losgehen, also nicht in B2.
Ich habe dazu mit der Schleife herumgespielt aber nicht hinbekommen.
Auch dazu eine Idee?
Gruß Stefan
Anzeige
AW: VBA autom. Text in Zellen füllen
25.02.2020 09:50:11
hary
Moin Stefan
Dim i As Long
For i = 5 To Cells(1, Columns.Count).End(xlToLeft).Column '

gruss hary
AW: VBA autom. Text in Zellen füllen
25.02.2020 11:08:38
Stefan
Hallo hary,
passt bestens. Ich kannte das "-3" nicht. Wieder etwas als Newby dazugelernt.
Danke Dir!
Grüße
Stefan
AW: VBA autom. Text in Zellen füllen
25.02.2020 12:01:40
hary
Moin Stefan
"Ich kannte das "-3" nicht"
Ist doch nur eine einfache Rechnung.
Bsp.:
Beim ersten Wert der Schleife: For i = 5 To
ist i = 5
also
Cells(5, 5).Value = "offen"
ich moechte aber nicht die 5. Zeile sondern die 2.
also ziehe ich 3 ab
Cells(5 - 3, 5).Value = "offen"
ergibt
Cells(2, 5).Value = "offen"
gruss hary
Anzeige
AW: VBA autom. Text in Zellen füllen
27.02.2020 10:53:33
Stefan
alles klar, danke!
Gruß Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Füllen von Text in Excel-Zellen mit VBA


Schritt-für-Schritt-Anleitung

Um das Wort "offen" automatisiert in spezifische Zellen einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code startet in Zelle B2 (oder einer anderen definierten Zelle) und füllt die Zellen diagonal:

Sub FillText()
    Dim i As Long
    Dim lastCol As Long

    ' Finde die letzte verwendete Spalte in der ersten Zeile
    lastCol = Cells(1, Columns.Count).End(xlToLeft).Column

    ' Beginne ab der gewünschten Zeile und Spalte (hier E2)
    For i = 5 To lastCol
        Cells(i - 3, i).Value = "offen"
    Next i
End Sub

In diesem Beispiel wird die Schleife ab der 5. Spalte gestartet, was bedeutet, dass das Wort "offen" in der zweiten Zeile (B2, C3, D4 usw.) platziert wird. Du kannst die Startzeile und -spalte anpassen, indem du die Werte in der Schleife änderst.


Häufige Fehler und Lösungen

  • Problem: Das Wort wird nicht korrekt in die Zellen eingefügt.

    • Lösung: Stelle sicher, dass du die richtigen Zeilen- und Spaltenindizes verwendest. Überprüfe auch, dass die Zellen, in die du schreibst, nicht gesperrt oder geschützt sind.
  • Problem: Der VBA-Code funktioniert nicht in deiner Excel-Version.

    • Lösung: Stelle sicher, dass du eine unterstützte Excel-Version verwendest, die VBA unterstützt (z.B. Excel 2010 oder neuer).

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Excel-Funktion „Bedingte Formatierung“ nutzen, um Zellen mit bestimmten Bedingungen zu füllen. Dies ist jedoch nicht so flexibel wie der VBA-Ansatz.

Eine andere Möglichkeit ist die Verwendung von Excel-Formeln in Kombination mit der „WENN“-Funktion, um Text basierend auf Bedingungen automatisch zu füllen.


Praktische Beispiele

Hier sind einige praktische Anwendungen des oben genannten Codes:

  1. Erweiterung des Codes: Du kannst den Code anpassen, um verschiedene Texte in verschiedenen Zellen zu füllen, indem du eine zusätzliche Bedingung einfügst.

  2. Dynamische Anpassung: Der Code kann so erweitert werden, dass er nicht nur "offen" einfügt, sondern auch andere Texte basierend auf bestimmten Kriterien.

If SomeCondition Then
    Cells(i - 3, i).Value = "ein anderer Text"
Else
    Cells(i - 3, i).Value = "offen"
End If

Tipps für Profis

  • Debugging: Verwende die Debugging-Tools in der VBA-Entwicklungsumgebung, um Probleme im Code schnell zu erkennen.
  • Kommentare: Kommentiere deinen Code, um die Lesbarkeit zu verbessern und anderen (oder dir selbst in der Zukunft) zu helfen, den Code besser zu verstehen.
  • Benutzerdefinierte Funktionen: Überlege, benutzerdefinierte Funktionen zu erstellen, wenn du häufig ähnliche Aufgaben durchführst, um deinen Code effizienter zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code in Excel einfügen?
Gehe zu Entwicklertools > Visual Basic, erstelle ein neues Modul und füge den Code dort ein.

2. Kann ich den Code für andere Texte anpassen?
Ja, du kannst den Text in der Cells(i - 3, i).Value-Zeile einfach ändern, um jeden gewünschten Text einzufügen.

3. Funktioniert dieser Code in jeder Excel-Version?
Der Code sollte in allen Excel-Versionen funktionieren, die VBA unterstützen, insbesondere ab Excel 2010. Achte darauf, dass die Makros aktiviert sind.

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