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

Forumthread: VBA - Formel für jede zweite Spalte anwenden

VBA - Formel für jede zweite Spalte anwenden
20.09.2018 14:04:20
Maria
Hallo zusammen :)
könnt ihr mir bei folgendem Problem weiterhelfen?
Ich würde gerne (siehe Bild anbei - Userbild
) die gelben Felder befüllen. In der Zelle B23 und B24 habe ich die =MITTELWERT(A23:A24) Formel angewandt. Diese Formel würde ich jetzt für alle weiteren gelben Zellen anwenden. Also die Zellen D23 und D24 würde ich mit der Formel =MITTELWERT(C23:C24) befüllen.
Die Exceldatei hat SEHR viele Spalten dh ich würde sehr lange brauchen, wenn ich die Formel händisch in jede betroffene (gelbe) Zelle eingebe.
Gibt es hier einen VBA Code mit dem man das lösen kann?
Ich würde mich sehr freuen :)
Vielen lieben Dank und liebe Grüße
Maria
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Formel für jede zweite Spalte anwenden
20.09.2018 16:30:33
ChrisL
Hi Maria
Sub t()
Dim intSpalte As Integer
With ActiveSheet
For intSpalte = 1 To .Cells(23, Columns.Count).End(xlToLeft).Column Step 2
.Cells(23, intSpalte).Offset(0, 1).Resize(2).FormulaR1C1 = "=AVERAGE(R23C[-1]:R24C[-1])"
Next intSpalte
End With
End Sub
cu
Chris
Anzeige
AW: VBA - Formel für jede zweite Spalte anwenden
20.09.2018 18:17:01
Maria
Hallo Chris,
vielen vielen Dank! Hat perfekt funktioniert :)
Liebe Grüßle
Maria
Anzeige
Anzeige

Infobox / Tutorial

VBA für die Anwendung einer Formel auf jede zweite Spalte


Schritt-für-Schritt-Anleitung

Um eine Excel-Formel auf jede zweite Spalte anzuwenden, kannst Du einen VBA-Makro verwenden. Hier sind die Schritte, um dies zu erreichen:

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

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub t()
       Dim intSpalte As Integer
       With ActiveSheet
           For intSpalte = 1 To .Cells(23, Columns.Count).End(xlToLeft).Column Step 2
               .Cells(23, intSpalte).Offset(0, 1).Resize(2).FormulaR1C1 = "=AVERAGE(R23C[-1]:R24C[-1])"
           Next intSpalte
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Deiner Excel-Datei zurück.

  5. Drücke ALT + F8, wähle das Makro t aus und klicke auf Ausführen.

Dieser Code wird die Excel-Formel =MITTELWERT(A23:A24) auf jede zweite Spalte anwenden, beginnend ab der Zelle B23.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Stelle sicher, dass Du die richtige Arbeitsmappe aktiv hast und dass die Zellen B23 und B24 tatsächlich vorhanden sind.
  • Fehler: Formel wird nicht korrekt angewendet

    • Lösung: Überprüfe, ob die Zellen in den entsprechenden Spalten leer sind, bevor Du das Makro ausführst. Der Code kann nur auf leere Zellen zugreifen, um die Formel anzuwenden.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du die Excel-Formel auch manuell für jede zweite Spalte anwenden:

  1. Trage die Formel in die erste gelbe Zelle ein (z.B. B23).
  2. Verwende die Autoausfüllfunktion, indem Du die Ecke der Zelle anklickst und nach rechts ziehst. Halte die Strg-Taste gedrückt, um die Formel nur auf jede zweite Zelle anzuwenden.

Diese Methode ist jedoch weniger effizient, wenn Du viele Spalten hast.


Praktische Beispiele

Angenommen, Du hast die folgenden Spalten in Excel:

  • A23: 5
  • A24: 10
  • B23: (leer)
  • B24: (leer)

Nach dem Ausführen des VBA-Codes wird B23 und B24 das Ergebnis der Formel =MITTELWERT(A23:A24) erhalten, was 7.5 ergibt. Der Code wird dann auch auf D23 und D24 angewendet, basierend auf den Werten in C23 und C24.


Tipps für Profis

  • Du kannst den VBA-Code anpassen, um andere Formeln zu verwenden, indem Du die Zeile mit .FormulaR1C1 änderst.
  • Es ist hilfreich, den Code zu kommentieren, damit Du später leichter nachvollziehen kannst, was er macht.
  • Speichere Deine Excel-Datei als Makro-fähige Datei (.xlsm), um den VBA-Code zu behalten.

FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um eine andere Formel zu verwenden?
Du kannst die Zeile mit .FormulaR1C1 ändern. Zum Beispiel für die Summe:

.FormulaR1C1 = "=SUM(R23C[-1]:R24C[-1])"

2. Funktioniert dieser Code auch in älteren Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen ab 2007 funktionieren. Achte darauf, dass VBA in Deiner Excel-Installation aktiviert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige