Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1508to1512
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

excel Makro

excel Makro
10.08.2016 19:26:43
Adi
Für meine Tochter möchte ich eine Exceltabelle erstellen.
In dieser Tabelle befinden sich pro Zeile 2 Formel. Einmal in K diese =J4*F4 und in J diese =SUMME((H4-G4)*24)-I4
Es kann sein, dass diese 2 Formel sich etwa 2000 mal wiederholen.
Meine Frage:
Können die Formeln durch Makros ersetzt werden?
Vorallem um Speicherplatz zu sparen.
Das Makro müsste in Aktion treten, wenn die Pausenzeit eingetragen wird.
Betrag ZeitVon Zeibis Pause Std. von_Arge
45,12 € 07:30 19:00 1,00 10,50 473,76 €
Danke im Vorraus.
Adi

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: excel Makro
10.08.2016 19:39:34
Piet
Hallo Adi
ob es Sinn macht die Summenformel zu ersetzen weiss ich nicht? Könnte ein Nachteil sein.
Wenn die Daten sich nicht mehr veraendern kann man sie berechnen und in Festwerte umwandeln
Muss man im Einzelfall abwaegen. Man sieht aber selten Anfrage das man die Formel entfernen will.
Gibt es eine kleine Beispieldatei mit einigen Beispieldaten zum ansehen? Erleichtert die Arbeit.
mfg Piet
AW: excel Makro
10.08.2016 19:41:45
Hajo_Zi
Hallo Adi,
entsprechend Deinem Wunsch, nur bei Pause.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
Cells(Target.Row, 10) = (Cells(Target.Row, 8) - Cells(Target.Row, 7)) * 24 - Cells( _
Target.Row, 9)
Cells(Target.Row, 11) = (Cells(Target.Row, 10) * Cells(Target.Row, 6))
End If
End Sub

Anzeige
AW: excel Makro
10.08.2016 19:45:21
Hajo_Zi
Hallo Adi,
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
Gruß Hajo
AW: excel Makro
10.08.2016 20:03:55
Hajo_Zi
Hallo Adi,
das wird schon seinen Grund gehabt haben, warum Beispiel nicht in erstem Beitrag.
Du wolltest die Lösung selber an Deine Bedingungen anpassen, also mache es auch.
Ich habe es schon nachgebaut und damit genug Zeit investiert.
Gruß Hajo
Anzeige
AW: excel Makro
10.08.2016 20:19:10
Adi
Hallo Hajo,
es klappt nicht.
was habe ich falsch gemacht?
Gruß
Adi
AW: excel Makro
10.08.2016 22:34:49
Werner
Hallo Adi,
versuch mal folgendes:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 6 And Target.Column  "" Then
If IsNumeric(Cells(Target.Row, 8)) And Cells(Target.Row, 8)  "" Then
If IsNumeric(Cells(Target.Row, 9)) And Cells(Target.Row, 9)  "" Then
Cells(Target.Row, 10) = (Cells(Target.Row, 8) - Cells(Target.Row, 7)) _
* 24 - Cells(Target.Row, 9)
Cells(Target.Row, 11) = (Cells(Target.Row, 10) * Cells(Target.Row, 6))
End If
End If
End If
End If
End Sub
Der Code gehört ins Codemodul des Arbeitsplatzes auf dem er sich auswirken soll.
Rechts klick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster Kopieren.
Der Code startet automatisch sobald du die Zellen für Anfangszeit, Endzeit und Pause ausgefüllt hast. Wurde keine Pause gemacht zwingend in die Spalte für die Pause eine 0 eintragen.
Konnte aber nicht testen.
Gruß Werner
Anzeige
AW: excel Makro
11.08.2016 10:05:15
Adi
Werner dein Code funktioniert, aber nur, wenn dieser Code der hier unten steht
gelöscht wird. Dein Code und der hier unten verursachen einen Fehler.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%
If (Intersect([G4:H10000], Target) Is Nothing) Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
If Len(.Value) > 2 Then
s = Left(.Value, Len(.Value) - 2)
m = Right(.Value, 2)
Else
s = .Value
m = 0
End If
.Value = s & ":" & m
End If
End With
Application.EnableEvents = True
End Sub

Anzeige
AW: excel Makro
11.08.2016 09:49:53
Adi
Dein Makro arbeitet richtig,
ein Problehm tritt auf.
In dieser Tabelle steht dieses Makro.
desshalb tritt hier ein Fehler auf.
------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%
If (Intersect([G4:H10000], Target) Is Nothing) Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
If Len(.Value) > 2 Then
s = Left(.Value, Len(.Value) - 2)
m = Right(.Value, 2)
Else
s = .Value
m = 0
End If
.Value = s & ":" & m
End If
End With
Application.EnableEvents = True
End Sub

Anzeige
AW: excel Makro
11.08.2016 11:22:38
Bastian
Bei mir geht es auch und ich Sehe gerade das es diesen Post nochmal gibt wo ich schon geantwortet habe..... nicht gut =D
AW: excel Makro
11.08.2016 12:25:47
Adi
Hallo Werner lieb von Dir, dass du Dir so viel Mühe gemacht hast,
aber irgendwie stimmt die Rechnung nicht immer.
Prüfe doch bitte selber noch mal nach.
Gruß
Adi
AW: excel Makro
11.08.2016 13:17:51
Adi
Hallo Werner,
danke, jetzt ist alles Ok.
Gruß
Adi
AW: Gerne u. Danke für die Rückmeldung. o.w.T
11.08.2016 13:26:28
Werner

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige