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

Wenn VBA und bis letzte gefüllte zelle ausführen

Forumthread: Wenn VBA und bis letzte gefüllte zelle ausführen

Wenn VBA und bis letzte gefüllte zelle ausführen
18.05.2009 12:25:57
Carmen
Hallo zusammen,
leider muß ich immer wieder feststellen, dass ich eine absolute gurke bin was vba angeht.
Nun ich brauch mal wieder Hilfe.
und zwar möchte das folgende formel in spalte T ausgeführt wird bis einschließlich der letzten gefüllten zeile. es sind aber nicht alle zellem der zeilen zwangsläufig gefüllt sicher ist aber spalte A gefüllt.

Sub wenn()
' wenn Makro
Range("T3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=RC[-3],""neu"",""Erhöhng"")"
End Sub


Das es vermutlich eine schleife sein muss und sicher auch eine ganz einfache, aber welche und wie bekomme ich formel da rein.
Ganz lieben Dank für die Hilfe
Grüße Carmen

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Herber an Gurke ;-)
18.05.2009 12:42:34
NoNet
Hallo Carmen,
es ist noch keine "Gurke" vom Himmel gefallen - fragen hilft oftmals ;-)
VBA-Code:
Sub WennVBAGurkeDannFrageBeiHerber()
    'Lösungsvorschlag von NoNet
    Range("T3").Resize(Cells(Rows.Count, 1).End(xlUp).Row - 2).FormulaR1C1 = _
        "=IF(RC[-1]=RC[-3],""neu"",""Erhöhng"")"
End Sub
Gruß, NoNet
AW: Wenn VBA und bis letzte gefüllte zelle ausführen
Hajo_zi

Hallo Carmen,
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden sollte.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: Das mache ich später ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: mit und ohne select Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.

Option Explicit
Sub wenn()
' wenn Makro
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Range("T3:T" & LoLetzte).FormulaR1C1 = "=IF(RC[-1]=RC[-3],""neu"",""Erhöhng"")"
End Sub



Vielen Dank!
Carmen

Vielen Dank für die Hilfe!!!
werd mir Deinen Rat Hajo zu herzen nehmen.
und arbeite daran das die gurke etwas fliegen lernt!
Grüße Carmen
Anzeige
AW: Wenn VBA und bis letzte gefüllte zelle ausführen
18.05.2009 12:43:00
Hajo_zi
Hallo Carmen,
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden sollte.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: Das mache ich später ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: mit und ohne select Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.

Option Explicit
Sub wenn()
' wenn Makro
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Range("T3:T" & LoLetzte).FormulaR1C1 = "=IF(RC[-1]=RC[-3],""neu"",""Erhöhng"")"
End Sub



Anzeige
Vielen Dank!
18.05.2009 12:56:24
Carmen
Vielen Dank für die Hilfe!!!
werd mir Deinen Rat Hajo zu herzen nehmen.
und arbeite daran das die gurke etwas fliegen lernt!
Grüße Carmen
;

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

Infobox / Tutorial

VBA: Automatische Formel bis zur letzten gefüllten Zelle einfügen


Schritt-für-Schritt-Anleitung

Um eine Formel in Excel bis zur letzten gefüllten Zelle in einer bestimmten Spalte einzufügen, kannst Du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass Spalte A immer gefüllt ist und die Formel in Spalte T eingefügt werden soll.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Option Explicit
Sub FormelBisLetzteZelle()
    Dim LoLetzte As Long
    LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
    Range("T3:T" & LoLetzte).FormulaR1C1 = "=IF(RC[-1]=RC[-3],""neu"",""Erhöhng"")"
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle FormelBisLetzteZelle aus und klicke auf Ausführen.

Die Formel wird nun von Zelle T3 bis zur letzten gefüllten Zelle in Spalte A eingefügt.


Häufige Fehler und Lösungen

  • Error 1004: Anwendung oder Objekt definierte Fehler

    • Lösung: Überprüfe, ob in Spalte A tatsächlich Werte vorhanden sind. Der Code erwartet, dass sich dort mindestens eine gefüllte Zelle befindet.
  • Die Formel wird nicht eingefügt

    • Lösung: Stelle sicher, dass Du die richtige Zeile (T3) als Startpunkt für das Einfügen der Formel gewählt hast.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch die Funktion BEREICH.VERSCHIEBEN in Kombination mit WENN verwenden:

  1. In Zelle T3 verwendest Du die Formel:
    =WENN(A3=A3,"neu","Erhöhng")
  2. Ziehe die Formel nach unten, bis Du die letzte Zeile erreicht hast. Diese Methode ist jedoch weniger automatisiert als die VBA-Lösung.

Praktische Beispiele

  1. Einfache Anwendung:

    • Angenommen, Du hast Daten in Spalte A und möchtest in Spalte T eine Statusmeldung basierend auf bestimmten Bedingungen.
    • Verwende den oben genannten VBA-Code, um die Formel einzufügen.
  2. Komplexe Bedingungen:

    • Wenn Du mehrere Bedingungen überprüfen möchtest, kannst Du die Formel entsprechend anpassen:
      Range("T3:T" & LoLetzte).FormulaR1C1 = "=IF(AND(RC[-1]=""Bedingung1"", RC[-3]=""Bedingung2""), ""neu"", ""Erhöhng"")"

Tipps für Profis

  • Vermeide Select und Activate: Wie Hajo_zi erwähnt hat, solltest Du die Befehle Select und Activate vermeiden, um die Geschwindigkeit und Effizienz des VBA-Codes zu erhöhen.

  • Option Explicit: Verwende immer Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler im Code zu vermeiden.

  • Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung, um unerwartete Probleme im Code zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich den Bereich anpassen, in dem die Formel eingefügt wird? Du kannst den Bereich in der Zeile Range("T3:T" & LoLetzte) anpassen, indem Du die Anfangs- und Endzellen änderst.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die Makros unterstützen, einschließlich Excel 2010 und neuer.

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