Anzeige
Archiv - Navigation
1920to1924
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

Formel in jede zweite Spalte

Formel in jede zweite Spalte
17.02.2023 11:28:10
GGG2019
Hallo,
ich habe zwei Probleme und hoffe, mir kann jemand helfen.
Problem I:
Kann mir jemand sagen, warum dieser String nicht funktioniert? Es wird die korrekte Zelle gefunden und sie wird formatiert. Jedoch will das Programm partout nichts in diese Zelle eintragen. Weder die Formel wie unten angegeben, noch einen Wert, z.B. über Selection.Value = "X". Bei Befehl Selection.FormulaLocal = "=(Z(-4)S/1,047)" bricht das Programm ab, ich weiß aber nicht warum.
x = ActiveSheet.UsedRange.Rows.Count
For i66 = 1 To x
If Cells(i66, 2).Value = "Deckungsbeitrag II" Then
Cells(i66 + 6, 7).Select
Selection.NumberFormat = ("0.00")
Selection.FormulaLocal = "=(Z(-4)S/1,047)"
End If
Next

Das zweite Problem: Ich habe eine Tabelle mit 48 Spalten. Ab Spalte 7 bis Spalte 45 soll in jede zweite Spalte die untenstehende Formel eingefügt werden. Allerdings muss dann natürlich der S-Verweis jeweils auch angepasst werden auf den ensprechend korrekten Spaltenindex, der sich ja ebenfalls jeweils um 2 erhöht. Ich habe in jeder Spalte mehrere Formeln untereinander einzutragen. Bisher mache ich es so, dass ich diesen String 20 Mal kopiere und dann immer die Zahlen händisch ändere. Das bei 12 Formeln je Spalte gibt jedoch ein endloses Programm. Geht das einfacher?
x = ActiveSheet.UsedRange.Rows.Count
For i67 = 1 To x
If Cells(i67, 2).Value = "Summe Wareneinsatz" Then
Cells(i67, 7).Select
Selection.FormulaLocal = "=SVERWEIS(""Materialeinzelkosten"";B:AW;6;FALSCH)+SVERWEIS(""MGK: 4,7 % auf Materialeinzelkosten"";B:AW;6;FALSCH)"
End If
Next
Vorab vielen Dank für Eure Hilfe und schöne Grüße.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Alles, was nicht zusammenhängt, ist "bad Design"
17.02.2023 11:31:09
lupo1
... das gilt nicht nur für Daten, sondern auch für Formeln. Ausnahmen bestätigen die Regel.
Wenn Du mehrere Spalten mit Lookups erstellen willst: Warum?
AW: Alles, was nicht zusammenhängt, ist "bad Design"
17.02.2023 11:38:42
GGG2019
Tut mir leid, ich verstehe nicht, was Du mir damit sagen möchtest. Kannst Du mir das bitte erläutern?
Ich habe ZUERST eine Frage gestellt
17.02.2023 11:43:27
lupo1
AW: Ich habe ZUERST eine Frage gestellt
17.02.2023 11:48:15
GGG2019
Und ich habe Deine Frage nicht verstanden. Was sind Lookups? Ich muss einfach in jede zweite Spalte eine Fomel eintragen bei 40 Spalten. Es handelt sich um 12 Zeilen und jeder Zeile steht eine andere Formel, jeweils mit S-Verweis, um die korrekte Zelle zu finden, da die Tabelle dynamisch ist.
AW: Ich habe ZUERST eine Frage gestellt
17.02.2023 11:51:24
GGG2019
... die Tabellenlänge ist dynamisch, die Spalten sind fix.
Anzeige
AW: Ich habe ZUERST eine Frage gestellt
17.02.2023 12:20:10
GGG2019
Ich habe das gleich Problem übrigens auch für Formeln ohne S-Verweis, da würde in der Formel dann z.B. "=Z(-2)S+Z(-1)S" stehen.
Geht es damit besser, diese automatisch in jede zweite Spalte einzufügen?
Meine 20 mal kopierter String würde dann so aussehen:
x = ActiveSheet.UsedRange.Rows.Count
For i66 = 1 To x
If Cells(i66, 2).Value = "Deckungsbeitrag II" Then
Cells(i66 , 7).Select
Selection.FormulaLocal = "=Z(-2)S+Z(-1)S"
End If
Next

AW: Ich habe ZUERST eine Frage gestellt
18.02.2023 09:52:37
Luschi
HalloGGG2019,
Geht es damit besser, diese automatisch in jede zweite Spalte einzufügen?
die gezeigte For-Schleife läuft durch Zeilen und nicht durch Spalten: Cells(i66, 2) - da steht i66 auf der Position vom Zeilenindex. Ein Blick in die Vba-Hilfe zur For-Schleife zeigt, das es auch einen Schrittoperator gibt;
For i66 = 1 To x Step 2
    'Dein Code
Next i66
i66 nimmt dann die Werte 66, 68, 70, usw. an.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ich habe ZUERST eine Frage gestellt
18.02.2023 11:52:49
GGG2019
Hallo Luschi,
klar sucht I66 in Zeilen. I66 soll in einer in den Zeilen dynamischen Tabelle erst mal die Zeile finden, in der Deckungsbeitrag I in Spalte B steht. Dann soll er in Spalte 7 gehen und eine Formel eintragen. Soweit mein Code. Diese Formel soll nun nach rechts in jede zweite Spalte kopiert werden bis Spalte 45. Und genau das ist mein Problem, für das ich keine Lösung finde.
AW: Formel in jede zweite Spalte
18.02.2023 10:21:08
GerdL
Moin,
zeige bitte mal eine Mustertabelle. Individuelle oder Firmendaten kannst du dabei durch Dummydaten ersetzten.
Deine Suchbegriffe sollten aber enthalten sein.
Gruß Gerd
AW: Formel in jede zweite Spalte
18.02.2023 10:38:51
GGG2019
Guten Morgen,
die Tabelle ist in den Zeilen dynamisch, die Spalten stehen fest. Die Zeilen von der jetzigen Zeile 465 nach unten sind auch nicht dynamisch, so das man hier nicht mit S-Verweisen arbeiten muss. Alles, was momentan als Zahl aus dem ERP-System übernommen wurde soll durch eine Formel ersetzt werden, da die Materialkosten händisch geändert werden müssen. Dadurch ist es erforderlich, alle folgenden Werte als Formel einzutragen.
Gerade habe ich versucht, die Formel einfach nach rechts zu kopieren über folgenden String, aber das funktioniert so leider auch nicht. Ich bin ein absoluter VBA Laie.
'Formel HK II berechnen und nach rechts kopieren
x = ActiveSheet.UsedRange.Rows.Count
For I299 = 1 To x
If Cells(I299, 2).Value = "Herstellkosten II" Then
Cells(I299, 7).Select
Selection.FormulaLocal = "=Z(-4)S+Z(-2)S+Z(-1)S"
End If
Next
x = ActiveSheet.UsedRange.Rows.Count
For I300 = 1 To x
If Cells(I300, 2).Value = "Herstellkosten II" Then
Cells(I300, 7).Select
Selection.Copy
Range("ZS2,ZS4,ZS6,ZS8,ZS10,ZS12,ZS14,ZS16,ZS18,ZS20,ZS22,ZS24,ZS26,ZS28,ZS30,ZS32,ZS34,ZS36,ZS38,ZS40").Select
Range("ZS2").Activate
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next
https://www.herber.de/bbs/user/157900.xlsx
Anzeige
AW: Formel in jede zweite Spalte
18.02.2023 10:42:07
GGG2019
Die Formeln mit den S-Verweisen habe ich übrigens mittlerweile jeweils bereits 20 mal kopiert. Dafür benötige ich also keine Lösung mehr.
Es ginge noch um die Formeln, welche kopierbar sind und um diese Angelegenheit, dass er mir in Zelle G506 nichts reinschreiben will.
AW: 365 (bzw. schon ab 2021)
19.02.2023 10:10:43
GerdL
Er hat aber 2016 u. will VBA, Lupo.
Sub Unit()
    
    Dim lngZeile As Long
    Dim strSuch As String
    Dim strFormeltext As String
    
    strSuch = "Herstellkosten II"
    strFormeltext = "Z(-4)S+Z(-2)S+Z(-1)S"
    
    lngZeile = Application.Match(strSuch, Columns(2), 0)
    
    For Spalte = 7 To 45 Step 2
        Cells(lngZeile, Spalte).FormulaR1C1Local = "=" & strFormeltext
    Next
End Sub
Gruß Gerd
Anzeige
War nur ein Gedanke
19.02.2023 10:32:51
lupo1
... derart, dass man Datensätze nicht rechnerisch nebeneinander stellt, sondern höchstens per INDEX (für eine geforderte Optik).
Formel statt VBA ist bekanntlich egal, denn Formel ist eine Untermenge von VBA (jede Formel ist in VBA nutzbar, umgekehrt aber nicht).
"2016 kann das nicht" ist für die beiden oberen Formeln richtig, aber mein Link behandelt auch AntikExcel.
AW: 365 (bzw. schon ab 2021)
20.02.2023 09:57:44
GGG2019
Hallo Gerd, vielen Dank für Deine Hilfe. Das funktioniert einwandfrei! Toll!!!

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige