Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1528to1532
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 als Wert einfügen

Formel als Wert einfügen
16.12.2016 09:24:42
cH_rI_sI
Guten Morgen liebe Forumsgemeinde,
wie kann ich u.a. Coding als Wert ausgeben (fortlaufende Nummer soll weiterhin funktionieren):
WS2.Cells(tempZeile, 1).Formula = "=""" & WS3.Range("F6").Value & "-""&ROW()-8"
Besten Dank im Voraus für Eure Unterstützung!
Lg,
Chrisi

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

Betreff
Datum
Anwender
Anzeige
AW: Formel als Wert einfügen
16.12.2016 11:05:32
Werner
Hallo Chris,
einfach nach deiner codezeile noch die
WS2.Cells(tempZeile, 1).Value = WS2.Cells(tempZeile, 1).value
Gruß Werner
AW: Formel als Wert einfügen
16.12.2016 11:37:38
cH_rI_sI
Danke für die rasche Rückmeldung!
Leider habe ich nun das Problem, dass die fortlaufende Nummerierung nun absteigend anstatt aufsteigend dargestellt wird (aufgrund FOR-Anweisung?).
Lösung?
AW: Formel als Wert einfügen
16.12.2016 11:48:15
cH_rI_sI
Anbei noch den ganzen Code:

Sub Plan()
Dim WS1 As Worksheet, WS2 As Worksheet, WS3 As Worksheet
Dim iZeile As Long, tempZeile As Long, iZähler As Long
Dim strMark As String
Set WS1 = Worksheets("Questions (SH4)")
Set WS2 = Worksheets("Sample- Corr.-Action-Plan (SH7)")
Set WS3 = Worksheets("Cover Sheet (SH1)")
Application.ScreenUpdating = False
For iZeile = WS1.Cells(WS1.Rows.Count, 9).End(xlUp).Row To 9 Step -1
If IsNumeric(WS1.Cells(iZeile, 9)) And WS1.Cells(iZeile, 9)  "" And _
WorksheetFunction.CountIf(WS2.Columns(5), WS1.Cells(iZeile, 1)) = 0 And _
Left(WS1.Cells(iZeile, 1), 4)  "Poin" And _
Left(WS1.Cells(iZeile, 1), 4)  "Degr" And _
Left(WS1.Cells(iZeile, 1), 4)  "Conv" And _
WS1.Cells(iZeile, 1)  1 And _
WS1.Cells(iZeile, 9)  10 Then
iZähler = iZähler + 1
tempZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(tempZeile, 5) = WS1.Cells(iZeile, 1)
WS2.Cells(tempZeile, 6) = WS1.Cells(iZeile, 11)
Select Case WS1.Cells(iZeile, 9)
Case 8: strMark = "V"
Case 6: strMark = "F"
Case 4: strMark = "A"
Case 0: strMark = "A"
End Select
WS2.Cells(tempZeile, 7) = strMark
WS2.Cells(tempZeile, 2) = WS3.Range("F7").Value
WS2.Cells(tempZeile, 3) = WS3.Range("F12").Value
WS2.Cells(tempZeile, 8) = WS3.Range("F11").Value
WS2.Cells(tempZeile, 1).Formula = "=""" & WS3.Range("F6").Value & "-""&ROW()-8"
WS2.Cells(tempZeile, 1).Value = WS2.Cells(tempZeile, 1).Value
WS2.Cells(tempZeile, 4) = "S"
End If
Next iZeile
tempZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row
If WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row > 8 Then
With WS2.Range(WS2.Cells(9, 1), WS2.Cells(tempZeile, 11))
.Interior.Pattern = xlNone
.Font.Bold = False
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.WrapText = True
.Rows.EntireRow.AutoFit
End With
ActiveWorkbook.Worksheets("Sample- Corr.-Action-Plan (SH7)").Sort.SortFields.Add _
Key:=Range("E9:E509"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:= _
"1.1,1.2,1.3,1.4,1.5,2.1,2.2,2.3,2.4,2.5,3.1,3.2,3.3,3.4,3.5,3.6,4.1,4.2,4.3,4.4,4.5,5. _
1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,5.10,5.11,6.1,6.2,6.3,6.4,6.5,6.6,7.1,7.2,7.3,7.4,7.5,7.6,7.7,8.1,8.2,8.3,9.1,9.2,10.1,10.2,10.3,11.1,11.2" _
, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Sample- Corr.-Action-Plan (SH7)").Sort
.SetRange Range("A8:K509")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
If Val(Application.Version) >= 12 Then
' ab Excel 2007: Sortierung loeschen um Fehlermeldung zu vermeiden!
Worksheets(ActiveSheet.Name).Sort.SortFields.Clear
End If
End If
End Sub

Anzeige
AW: Formel als Wert einfügen
18.12.2016 18:42:15
Werner
Hallo Chris,
dass das am Umwandeln der Formeln in fixe Werte liegt darf ich aber mal anzweifeln. Es wird nur das als Festwert in die Zelle geschrieben, was deine Formel als Ergebnis auswirft. Dann ist schon dein Formelergebnis falsch.
hier
tempZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row + 1

ermittelst du die erste freie Zeile in Spalte A und übergibst die Zeilennummer der Variablen tempZeile
hier
WS2.Cells(tempZeile, 1).Formula = "=""" & WS3.Range("F6").Value & "-""&ROW()-8"

schreibst du die Formel zur Nummerierung in die zuvor ermittelte Zeilennummer des Spalte A
In der Formel nimmst du Bezug auf die Zeilennummer &ROW() der Zeile, in welcher die Formel steht. Von dieser Zeilennummer ziehst du dann 8 ab, das ist dann der Start deiner Nummerierung.
Schreibst du diese Formel per VBA in eine Zeile kleiner 9 so bekommst du zunächsrt absteigende Werte und ab Zeile 9 dann aufsteigende Werte.
Gruß Werner
Anzeige
AW: Formel als Wert einfügen
18.12.2016 18:58:53
Werner
Hallo,
ich nochmal. Lass die beiden Codes mal laufen, dann siehst du was ich meine. Ich habe jetzt mal alles für Tabelle1 geschrieben. Schreibe mal irgendeinen Wert im Blatt1 in Zelle F6 (was du da in deiner Arbeitsdatei im Blatt 2 in F6 für einen Wert hast weiß ich ja nicht, ist aber auch egal) und lass die Makros dann laufen.
Public Sub aufsteigend()
Dim tempZeile As Long
Sheets("Tabelle1").Columns(1).ClearContents
For tempZeile = 9 To 40
Sheets("Tabelle1").Cells(tempZeile, 1).Formula = "=""" & Sheets("Tabelle1").Range("F6").Value &  _
"-""&ROW()-8"
Sheets("Tabelle1").Cells(tempZeile, 1).Value = Sheets("Tabelle1").Cells(tempZeile, 1).Value
Next tempZeile
End Sub
Public Sub absteigend()
Dim tempZeile As Long
Sheets("Tabelle1").Columns(1).ClearContents
For tempZeile = 1 To 40
Sheets("Tabelle1").Cells(tempZeile, 1).Formula = "=""" & Sheets("Tabelle1").Range("F6").Value &  _
"-""&ROW()-8"
Sheets("Tabelle1").Cells(tempZeile, 1).Value = Sheets("Tabelle1").Cells(tempZeile, 1).Value
Next tempZeile
End Sub
Gruß Werner
Anzeige
AW: Formel als Wert einfügen
19.12.2016 08:24:00
cH_rI_sI
Guten Morgen Werner,
besten Dank für deine Unterstützung - ich habe das Problem nun wie folgt gelöst (fett markierte Zeile ist neu):
   ActiveWorkbook.Worksheets("Sample- Corr.-Action-Plan (SH7)").Sort.SortFields.Add _
Key:=Range("E9:E509"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:= _
"1.1,1.2,1.3,1.4,1.5,2.1,2.2,2.3,2.4,2.5,3.1,3.2,3.3,3.4,3.5,3.6,4.1,4.2,4.3,4.4,4.5,5. _
1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,5.10,5.11,6.1,6.2,6.3,6.4,6.5,6.6,7.1,7.2,7.3,7.4,7.5,7.6,7.7,8.1,8.2,8.3,9.1,9.2,10.1,10.2,10.3,11.1,11.2" _
, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Sample- Corr.-Action-Plan (SH7)").Sort
.SetRange Range("A8:K509")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
WS2.Range(WS2.Cells(9, 1), WS2.Cells(tempZeile, 1)).Value = WS2.Range(WS2.Cells(9, 1), WS2. _
Cells(tempZeile, 11)).Value
If Val(Application.Version) >= 12 Then
' ab Excel 2007: Sortierung loeschen um Fehlermeldung zu vermeiden!
Worksheets(ActiveSheet.Name).Sort.SortFields.Clear
End If
End If
End Sub

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige