Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro optimieren und einzukürzen!

VBA Makro optimieren und einzukürzen!
23.02.2024 16:00:25
Eberhard
VBA Makro optimieren und einzukürzen!

Hallo, ich bitte um eure Hilfe,
gibt es eine Möglichkeit das VBA Makro zu optimieren und einzukürzen.

Es sollen immer zwei Werte in einer Tabelle (Ta_2023) addiert werden, dann das Ergebnis in eine andere Tabelle (Ta_2024) übertragen werden. Das funktioniert soweit auch gut.
ThisWorkbook.Sheets("Ta_2024").Range("e6").Value = WorksheetFunction.Sum(Sheets("Ta_2023").Range("A6:B7"))

Nur musste dann diese Formel etwa einhundertmal im Makro geschrieben werden.
Geht das auch einfacher?

Ich hoffe ihr könnt mir helfen.

Mit freundlichen Grüßen
Eberhard
https://www.herber.de/bbs/user/167276.xlsm Ta_2024
https://www.herber.de/bbs/user/167277.xlsm Ta_2023

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 16:58:50
onur
Erstens: Warum 100 mal die Formel?
Zweitens: Warum postest du zwei Dateien? In der Formel ist die Rede von 2 BLÄTTERN.
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 18:18:49
Eberhard
Hallo onur,
Danke für das anschauen und antworten auf mein Beitrag.
Ich beantworte mal die Fragen der Reihe nach.
1. Weil ich in meiner Tabelle ca. 50 Zeilen mit Daten habe, jeweils 50 Wasser und Strom
2. Zwei Dateien eine für 2023 eine 2024 und ich keine Ahnung habe! Habe die Formel gefunden und auf meine Berechnung angepasst.
3. „Range("A6:B7") enthält 4 Werte“ Du hast Recht, hier habe ich nicht aufgepasst. Soll so nicht sein.
4. „Warum unbedingt VBA?“ das ist ein längeres Makro mit dem verschiedene Arbeiten erledigt werden. Möchte den kopier-Vorgang hier mit einfügen so das alles in ein rutsch erledigt wird.

Mit freundlichen Grüßen

Eberhard
Anzeige
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 18:24:17
onur
Aber du musst das Kopieren der Vorjahreswerte doch nur 1x pro Jahr machen. Mit Makro ist Quatsch.
Mach mal EINE Datei mit 2 Blättern und trage mal einige Pseudodaten ein, damit ich sehen kann, wo was hinkopiert werden soll und poste sie.
Ich muss auch noch wissen, ob du die Vorjahreswerte wirklich immer als Summe der beiden Wasser- bzw Stromverbräuche brauchst.
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 18:35:22
Firmus
Hi Eberhard,

dein letzter Eintrag ist kurz nach deinem letzten Beitrag im Archiv verschwunden.
Shit happens.
Hier der Link in das Archiv: https://www.herber.de/forum/archiv/1964to1968/1964703_Summe_bilden_in_andere_Tabelle_einfuegen.html
Ich hatte dort noch ein Makro hochgeladen: https://www.herber.de/bbs/user/167115.xlsm


Dein aktueller Eintrag ist nicht gut nachvollziehbar.

"Es sollen immer zwei Werte in einer Tabelle (Ta_2023) addiert werden, dann das Ergebnis in eine andere Tabelle (Ta_2024) übertragen werden."

TA_2023 enthält:
Wasseruhr 1 Wasseruhr 2 Elektro-Zähler 1 Elektro-Zähler 2 xxxxxx

1. Welche zwei dieser Werte (Zellen) sollen addiert werden?
2. Sollen jeweils immer Werte aus der gleichen Zeile addiert werden?
3. Stehen weiter arithmetische Aktionen an, z. B. Abgleich mit Vorjahren?
TA_2024 enthält:
Elektro-Zähler 1 Elektro-Zähler 2 Vorjahresverbrauch Vorjahresverbrauch

3. In welche Zelle in Ta_2023 soll das Ergebnis der Addition von den zwei Werten aus Ta_2024 geschrieben werden?

Die generelle Fragen

4. Warum arbeitest du mit zwei WORKBOOKs, bist aber auf zwei WORKSHEETS fokusiert?
Die beiden Worksheets waren doch bisher in einem Workbook.

5. warum müßte diese Zeile im Makro 100 mal geschrieben werden?
ThisWorkbook.Sheets("Ta_2024").Range("e6").Value = WorksheetFunction.Sum(Sheets("Ta_2023").Range("A6:B7"))


6. Zeige bitte 4-5 Zeilen auf, die dann im Makro stehen würden.
Davon läßt sich vermutlich ableiten wie eine Schleife aussehen sollte.

Hier der Ausschnitt aus dem bisher gelieferten Makro (jetzt im Archiv).



'-----------------------------------------------------------------
' Variante -3
' Diese Variante
' a) prüft die Zellen auf numerische Werte und
' b) addiert zeilenweise die beiden Werte aus Ta_2023 in Ta_2024.
'-----------------------------------------------------------------
MsgBox "Variante drei!"
wbkInUse.Activate
'==========================================================================
' Werte in Spalte "A" und Spalte "B" auf numerisch prüfen.
'==========================================================================
For i = 1 To 10
If wbkInUse.Sheets(wshIN).Cells(i, "B").Value > "" Then
tmpC1 = wbkInUse.Sheets(wshIN).Cells(i, "A").Value
tmpC2 = wbkInUse.Sheets(wshIN).Cells(i, "B").Value
If Not IsNumeric(tmpC1) Or Not IsNumeric(tmpC2) Then
MsgBox "Die Daten in Spalte 'A' und/oder 'B', Zeile " & i & " sind nicht alle numerisch" & Chr(13) & Chr(10) & " - Exit Sub."
Exit Sub
End If
End If
Next i
For i = 1 To 10
If wbkInUse.Sheets(wshIN).Cells(i, "B").Value > "" Then 'geprüfte Zellen jetzt addieren
tmpN1 = wbkInUse.Sheets(wshIN).Cells(i, "A").Value
tmpN1 = wbkInUse.Sheets(wshIN).Cells(i, "B").Value + tmpN1
wbkInUse.Sheets(wshOUT).Cells(i, "D").Value = tmpN1
End If
Next i


Gruß
Firmus
Anzeige
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 17:06:10
onur
Ausserdem werden nicht zwei Werte addiert, sondern 4:
Range("A6:B7") enthält 4 Werte.
AW: VBA Makro optimieren und einzukürzen!
23.02.2024 17:07:55
onur
Ausserdem: Warum unbedingt VBA? Das geht doch einfach mit einer Formel.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige