Anzeige
Archiv - Navigation
1112to1116
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

Variabler Zeitschritt per Abfrage Werte erzeugen

Variabler Zeitschritt per Abfrage Werte erzeugen
Daniel
Hallo und Guten morgen,
kann mir jemand sagen was ich im folgenden Code ändern muss, das die Zeitschritte von 1 Minute auf einen variablen Wert, einen Parameter geändert wird, den der Benutzer eingeben kann?
Es geht darum das bei einem Klick auf ein CommandButton, das Makro gestartet wird und bis jetzt Von einer zahl die in einer bestimmten zelle steht in den darunterfolgenden Zellen in 1minuten schritten aufgezählt wird bis diese erreicht ist.
Bsp.:
U377 = 9 ==> diese zahl ist entscheidend
U378 = 1
U379 = 2... usw bis 9
Nun würde ich gerne per Abfrage bei klicken des Buttons einen wert eingeben zb. 0.5 welcher dann stattdessen benutzt wird, also 0.5; 1;0.5... usw.
Sub Diagramm_erzeugen_Te()
Dim I As Long
Const myRow = 377
Const myCol = 21
Const startWert = 0
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
With Range(Cells(myRow + 1, myCol), _
Cells(Application.Min(Rows.Count, myRow + _
Cells(myRow, myCol).Value), myCol))
Range(Cells(378, 21), Cells(Rows.Count, 21).End(xlUp)).ClearContents
.Formula = "=Row()-1-" & myRow & "+" & startWert
.Value = .Value
End With
End If
End If
End With
End Sub
mit freundlichen grüßen
Daniel
AW: Variabler Zeitschritt per Abfrage Werte erzeugen
02.11.2009 11:23:06
Daniel
Nun würde ich gerne per Abfrage bei klicken des Buttons einen wert eingeben zb. 0.5 welcher dann stattdessen benutzt wird, also 0.5; 1;1.5,2.0... usw.
So muss es heißen
AW: Variabler Zeitschritt per Abfrage Werte erzeugen
02.11.2009 12:25:38
fcs
Hallo Daniel,
die beiden folgenden Varianten erzeugen eine entsprechende Zahlenfolge, wobei ich die Variante mit der For-Next-Schleife vorziehe.
Gruß
Franz
Sub Diagramm_erzeugen_Te()
Dim I As Long, Differenz As Double
Const myRow = 377
Const myCol = 21
Const startWert = 0
Differenz = Application.InputBox(Prompt:="Bitte Zeitdifferenz in Minuten eingeben", _
Title:="Diagramm erzeugen", Default:=1#, Type:=1)
If Differenz = False Then Exit Sub
If Differenz > 0 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
Range(.Offset(1, 0), .Offset(1, 0).End(xlDown)).ClearContents
For I = 1 To CLng(.Value / Differenz)
.Offset(I, 0).Value = startWert + (I - 1) * Differenz
Next
End If
End If
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Else
MsgBox "Eingegebene Zahl muss > 0 sein"
End If
End Sub
Sub Diagramm_erzeugen_Te_var()
Dim I As Long, Differenz As Double
Const myRow = 377
Const myCol = 21
Const startWert = 0
Differenz = Application.InputBox(Prompt:="Bitte Zeitdifferenz in Minuten eingeben", _
Title:="Diagramm erzeugen", Default:=1#, Type:=1)
If Differenz = False Then Exit Sub
If Differenz > 0 Then
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
Range(.Offset(1, 0), .Offset(1, 0).End(xlDown)).ClearContents
With Range(.Offset(1, 0), .Offset(.Value / Differenz, 0))
.FormulaLocal = "=(Zeile()-1-" & myRow & ")*" & Differenz & "+" & startWert
.Value = .Value
End With
End If
End If
End With
Else
MsgBox "Eingegebene Zahl muss > 0 sein"
End If
End Sub

Anzeige
AW: Variabler Zeitschritt per Abfrage Werte erzeugen
02.11.2009 13:26:08
Daniel
Vielen Dank für die hilfe Franz :=)
Gruß & noch nen schönen Tag
Daniel
AW: Variabler Zeitschritt per Abfrage Werte erzeugen
02.11.2009 13:39:30
Daniel
Kannst du mir vielleicht noch sagen wie ich in der Messagebox einen Wert anzeigen lassen kann welcher in einer Zelle aus dem Sheet steht?
z.b T378 ? (dieser wird berechnet)
Gruß
AW: Variabler Zeitschritt per Abfrage Werte erzeugen
02.11.2009 16:29:00
fcs
Hallo Daniel,
  Application.Calculate
'wenn Wert aus aktiver Tabelle:
MsgBox "Wert in Zelle T387: " & Range("T387").Text
'oder wenn Wert aus bestimmter Tabelle
MsgBox "Wert in Zelle T387: " & Worksheets("Tabelle1").Range("T387").Text

Die Calculate-Zeile kannst du weglassen, wenn Berechnen-Option auf "Automatische Berechnung" steht.
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige