Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
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
Formel in Zelle anpassen (Tricky)
09.02.2021 17:50:26
Manuel
Hallo Forum,
habe folgende Aufgabenstellung und komme nicht weiter:
Per VBA Button wird ein Tabellenblatt kopiert und dessen Namen geändert:
z.B. aus Tabelle1 entsteht Tabelle2, aus Tabelle 2 entsteht Tabelle3 usw.
Nun befindet sich in einer Zelle A10 auf Tabelle1 ein Betrag(1000€), auf Tabelle2 soll in A7 soll der Wert aus Tabelle1 als Übertrag stehen also:
Zelle A7=Tabelle1!A10
Ab Tabelle3 sollen in A7 die Werte von Tabelle2!A10 und Tabelle2!A7 zusammengerechnet werden also:
Zelle A7=Tabelle2!A10+Tabelle2!A7
In Tabelle4 dann in A7 die Werte von Tabelle3!A10 und Tabelle3!A7 zusammengerechnet werden also:
Zelle A7=Tabelle3!A10+Tabelle3!A7
in Tabelle5 dann in A7 die Werte von Tabelle4!A10 und Tabelle4!A7 zusammengerechnet werden also:
Zelle A7=Tabelle4!A10+Tabelle4!A7
usw.
Den Zahlenteil des Namens jeder Tabelle steht auf der Tabelle z.b. in A1 (Wenn es was hilft)
Hänge mal ein Beispiel ohne die Kopierfunktion bei.
https://www.herber.de/bbs/user/143768.xlsx
Vielen Dank fürs Kopf zerbrechen.
Gruß Manuel

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

Betreff
Datum
Anwender
Anzeige
AW: Formel in Zelle anpassen (Tricky)
09.02.2021 19:02:27
Tobias
Hallo Manuel,
Sub Kopieren()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Worksheets(wb.Worksheets.Count).Copy After:=wb.Worksheets(wb.Worksheets.Count)
wb.Worksheets(wb.Worksheets.Count).Name = "Tabelle" & wb.Worksheets.Count
If wb.Worksheets(wb.Worksheets.Count).Range("A7") = "" Then
wb.Worksheets(wb.Worksheets.Count).Range("A7") = "=Tabelle" & wb.Worksheets.Count - 1 &  _
"!A10"
Debug.Print "if"
Else
Debug.Print "else"
wb.Worksheets(wb.Worksheets.Count).Range("A7").Formula = wb.Worksheets(wb.Worksheets. _
Count).Range("A7").Formula & "+Tabelle" & (wb.Worksheets.Count - 1) & "!A10"
End If
Set wb = Nothing
End Sub
Bitte Schön, hoffe das hilft!
Schöne Grüße
Tobias
Anzeige
AW: Formel in Zelle anpassen (Tricky)
10.02.2021 16:27:58
Manuel
Hallo Tobias,
sorry jetzt nochmal konkret. Habe das was ich schon erarbeitet habe als Anhang dabei.
https://www.herber.de/bbs/user/143801.xlsm
Drückt man auf den Button auf Tabelle AR.1 wird eine Kopie erstellt und AR.2 angelegt.
Nun soll in AR.2 der Inhalt Zelle F43=AR.1!F53 sein, bei einer weiteren Kopie AR.3 allerdings dann
F43=AR.2!F43+AR.2F53, bei AR.4 dann F43=AR.3!F43+AR.3F53 usw.
Dazu kommt noch ab AR.2 ZelleF40=AR.1!F40+AR.2!F43, in AR.3 ZelleF40=AR.2!F40+AR.3!F43, in AR.4 ZelleF40=AR.3!F40+AR.4!F43 usw.
Vielleicht hilft es zusammen mit meinem Beispiel.
Vielen Dank
Anzeige
AW: Formel in Zelle anpassen (Tricky)
10.02.2021 21:18:05
Tobias
Hallo Manuel,
ich kann dein Beispiel leider nicht angucken, aber würde mal meinem Code so anpassen:
Private Sub CommandButton1_Click()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Worksheets("AR.1").Copy After:=wb.Worksheets(wb.Worksheets.Count)
wb.Worksheets(wb.Worksheets.Count).Name = "AR." & (wb.Worksheets.Count - 2)
If wb.Worksheets.Count = 4 Then
wb.Worksheets(wb.Worksheets.Count).Range("F43").Formula = "=AR." & wb.Worksheets.Count - _
3 & _
"!F53"
Debug.Print "if"
Else
wb.Worksheets(wb.Worksheets.Count).Range("F43").Formula = "=AR." & wb.Worksheets.Count - _
3 & "!F43+" & _
"AR." & wb.Worksheets.Count - 3 & "!F53"
Debug.Print "else"
End If
wb.Worksheets(wb.Worksheets.Count).Range("F40").Formula = "=AR." & wb.Worksheets.Count - 3 & _
"!F40+" & _
"AR." & wb.Worksheets.Count - 2 & "!F43"
Set wb = Nothing
End Sub
irgendwie chaotisch geworden aber funktioniert denke ich
Schöne Grüße
Tobias
Anzeige
AW: Formel in Zelle anpassen (Tricky)
12.02.2021 11:24:20
Manuel
Hallo Tobias,
vielen Dank. Musste noch eine kleine Anpassung machen.

Sub Blatt_kopieren_und_ans_Ende_stellen()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Worksheets("AR.1").Copy After:=wb.Worksheets(wb.Worksheets.Count)
wb.Worksheets(wb.Worksheets.Count).Name = "AR." & (wb.Worksheets.Count - 3)
If wb.Worksheets.Count = 5 Then
wb.Worksheets(wb.Worksheets.Count).Range("F43").Formula = "=AR." & wb.Worksheets.Count - _
_
4 & _
"!F53"
Debug.Print "if"
Else
wb.Worksheets(wb.Worksheets.Count).Range("F43").Formula = "=AR." & wb.Worksheets.Count - _
_
5 & "!F53+" & _
"AR." & wb.Worksheets.Count - 4 & "!F53"
Debug.Print "else"
End If
wb.Worksheets(wb.Worksheets.Count).Range("F40").Formula = "=AR." & wb.Worksheets.Count - 4 & _
_
"!F40+" & _
"AR." & wb.Worksheets.Count - 3 & "!F39"
Set wb = Nothing
'Werte aus der vorangegangenen Tabelle entfernen
Range("F27").Value = 0
Range("F29").Value = 0
Range("F31").Value = 0
Range("F47").Value = 0
'Werte anpassen für Überträge und geleistete Zahlungen
Range("A20").Value = Range("A20").Value + 1
Range("A43").Value = "13."
Range("B43").Value = "bisher geleistete Zahlungen"
Range("F43").NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Range("A47").Value = "14."
'Farben der Tabellenblätter anpassen
If Range("F53").Value = "0" Then
ActiveSheet.Tab.ColorIndex = 3 'rot
Else
ActiveSheet.Tab.ColorIndex = 43 'grün
End If
Sheets(ActiveSheet.Index - 1).Select
If Range("H27").Value = "ÜBERZAHLT" Then
ActiveSheet.Tab.ColorIndex = 3 'rot
Else
ActiveSheet.Tab.ColorIndex = 43 'grün
End If
Sheets(ActiveSheet.Index + 1).Select
End Sub 
Ich hatte eine Funktion eingebaut die den Zellwert von A20 bei jeder Kopie um 1 erhöht.
Allerdings funktioniert "Range("A20").Value = Range("A20").Value + 1" nur noch bis zur 1. Kopie von AR.1 (also AR.2), danach bleibt der Wert der Zelle A20 immer 2 statt sich automatisch um 1 zu erhöhen.
Das hat mit einer anderen Kopiermethode immer funktioniert.
Im Endeffekt müsste in A20 immer der Zahlwert des Tabellennamens stehen. Vielleicht gibts ja da noch ne andere Lösung.
Kannst du da nochmal nachschauen?
Vielen Dank
Anzeige
AW: Formel in Zelle anpassen (Tricky)
12.02.2021 12:41:49
Tobias
Hallo Manuel,
versuch es doch mit Worksheets.Count, darüber kannst du ja den passenden Wert zuverlässig berechnen.
Schöne Grüße
Tobias
AW: Formel in Zelle anpassen (Tricky)
10.02.2021 14:13:32
Manuel
Hallo Daniel,
danke für Deine Hilfe. Aber dein Vorschlag die Tabellen zu kopieren, macht folgendes_
In meiner Arbeitsmappe gibt es bereits Tabellen an Stelle 1 und 2 die z.B. Info und Basis heißen, an Stelle 3 kommt nun die eigentliche Vorlage namens AR.1, daraus sollen dann AR.2, AR.3 usw. kopiert werden.
Existieren also bereits 3 Tabellen (Info,Basis, AR.1) macht dein Script eine Neue mit dem Namen AR.4 obwohl eigentlich AR.2 entstehen müsste. Dann stimmt auch die Formel nicht weil diese dann mit den falschen Tabellennamen arbeitet.
Vielleicht hätte ich das Beispiel doch konkreter ausführen sollen. Sorry dafür!
Wenn Du vielleicht nochmal helfen könntest?
Lieber Gruß Manuel
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige