Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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

Frage zum Makro

Frage zum Makro
28.02.2022 11:37:52
Wolfgang
Hallo Excel-Freunde,
ich stehe hier irgendwie vor einem Tor.
Aus einem Thread von hier habe ich mir auch eine Datei erstellt und auch mit einem Makro versehen. Das funktioniert auch, ABER warum wird in der Zelle D6 der Tabelle2 nach dem Aufruf vom Makro keine Zeit angezeigt, sondern Dezimalzahlen, kann ich mir nicht erklären? Zelle ist als "Uhrzeit" vorformatiert.
In der Zelle D9 hat zumindest die Zeit einen "Zeitwert", aber auch nicht wie es sein sollte in "hh:mm".
Dann wurde in der Tabelle1 in der Zelle J3 ganz einfach ein Wert als "Bruch" eingeben und das wird dann in der Tabelle 2 nicht mehr als Bruch angezeigt, sondern als dezimale Zahl.
Die entsprechenden Zellen im "Ziel" sind so formatiert, dass es eigentlich passen sollte.
Wo liegt der Fehler oder habe ich was falsch gemacht?
Beispiel-Datei: https://www.herber.de/bbs/user/151448.xlsm
Danke für eine mögliche Hilfe

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zum Makro
28.02.2022 11:41:21
Franzl53
Hallo,
eigentlich wollte ich ! anfragen und habe das eMail-Konto von ? benutzen dürfen, aber das hat nicht geklappt. Es muss sozusagen immer der "Angemeldete" beim Forum sich hier mit den Fragen auseinandersetzen, d.h. alles dieser Person zusenden und dann kann dieser das an Euch weitergeben?
AW: Frage zum Makro noch offen
28.02.2022 13:32:32
Franzl53
Muss man eine neue Frage immer mit dem Haken für "Frage noch offen" setzen?
Ja
28.02.2022 13:57:22
UweD
AW: Frage zum Makro
28.02.2022 14:04:54
Franzl53
Hallo Gerd,
danke, aber ...
... mir sagt das nichts:
Tabelle2.Cells(6, 4).NumberFormat = "@"
Tabelle2.Cells(6, 4) = Mid(Tabelle1.Range("F2").Text, 1, 6)
Ich weiß zwar, dass "Tabelle2.Cells(6, 4)" die Zelle in der "Tabelle 2 in der Spalte 6 und Zeile 4" betroffen ist, aber wie soll ich da diese Formatierung in die Zelle schreiben?
Was muss ich im Makrorekorder eingeben, damit ich das Ergebnis habe?
es grüßt
Franzl53
Anzeige
AW: Frage zum Makro
28.02.2022 14:05:06
Franzl53
Hallo Gerd,
danke, aber ...
... mir sagt das nichts:
Tabelle2.Cells(6, 4).NumberFormat = "@"
Tabelle2.Cells(6, 4) = Mid(Tabelle1.Range("F2").Text, 1, 6)
Ich weiß zwar, dass "Tabelle2.Cells(6, 4)" die Zelle in der "Tabelle 2 in der Spalte 6 und Zeile 4" betroffen ist, aber wie soll ich da diese Formatierung in die Zelle schreiben?
Was muss ich im Makrorekorder eingeben, damit ich das Ergebnis habe?
es grüßt
Franzl53
AW: Frage zum Makro
28.02.2022 20:07:11
Franzl53
Hallo,
nun kenne ich mich überhaupt nicht mehr aus.
Rud schreibt, dass man was beachten sollte, wie "String (Text) in die Zellen" mit dem Beispiel:
Dim tb1_UhrA As Date
Dim tb1_UhrR As Date
Dim tb1_Datum As Date
Dim tb1_AnKM As Long
Dim tb1_ZuKM As Long
Dim tb1_Tank As Single
Reicht das für das Gesamte? Da fehlen doch noch einige Daten, die ich so hinterlegt habe?
@GerdL
das was da steht von Dir kann ich nicht so nachvollziehen. Der Bereich ab
"'Ausgabezellen formatieren
UhrA.NumberFormat = "@"
UhrB.NumberFormat = "@"
sagt mir nichts. Ich weiß auch nicht, ob ich das so umsetzen kann.
Egal ... Es wird nach der Methode >> Papier von Jedem Was soll's ...
Achja, fast vergessen, muss ja noch den Haken setzen. (laut UweD)
Anzeige
ich habe dir nur ...
01.03.2022 09:30:06
Rudi
...die zu korrigierenden Deklarationen genannt.
Gruß
Rudi
AW: Frage zum Makro
01.03.2022 12:11:30
Rudi
Halllo,
wozu überhaupt die Variablen?

Sub Protokolle_drucken()
Dim tb1_Daten As Worksheet
Dim tb2_Protokoll As Worksheet
Dim i_Zeile As Long
Dim loletzte As Long
Set tb1_Daten = Worksheets("Tabelle1")
Set tb2_Protokoll = Worksheets("Tabelle2")
With tb1_Daten
loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
'Jeden Datensatz ins Ziel kopieren und dann ausdrucken
For i_Zeile = 2 To loletzte
'Werte ausgeben
tb2_Protokoll.Range("H1").Value = .Cells(i_Zeile, 1)
tb2_Protokoll.Range("B3").Value = .Cells(i_Zeile, 2)
tb2_Protokoll.Range("D3").Value = .Cells(i_Zeile, 3)
tb2_Protokoll.Range("B6").Value = .Cells(i_Zeile, 4)
tb2_Protokoll.Range("B9").Value = .Cells(i_Zeile, 5)
tb2_Protokoll.Range("D6").Value = .Cells(i_Zeile, 6)
tb2_Protokoll.Range("F6").Value = .Cells(i_Zeile, 7)
tb2_Protokoll.Range("D9").Value = .Cells(i_Zeile, 8)
tb2_Protokoll.Range("F9").Value = .Cells(i_Zeile, 9)
tb2_Protokoll.Range("H6").Value = .Cells(i_Zeile, 10)
'Drucken wird gestartet und ausgegeben an den Druckerspooler
'      tb2_Protokoll.Range("A1:I15").PrintOut
'hier nur für die Anfrage im forum
tb2_Protokoll.PrintOut _
Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next i_Zeile
End With
End Sub
Gruß
Rudi
Anzeige
AW: Frage zum Makro
28.02.2022 11:52:03
Zwenn
Hallo,
andere die Zeile zum Einfügen der Uhrzeit folgendermaßen ab:

Worksheets(tb2_Protokoll).Range("D6").Value = Format(tb1_UhrA, "hh:mm:ss")
Viele Grüße,
Zwenn
AW: Frage zum Makro
28.02.2022 12:01:25
Franzl53
Hallo Zwenn,
danke für diese Info.
Habe es eingefügt und nun sehe ich ja "hh:mm:ss", ich wollte ja nur "hh:mm".
Wenn ich das so eintrage, kommt doch immer wieder "hh:mm:ss".
Wo liegt der Fehler?
Die "Brüche" ändern sich aber nicht, d.h. aus 1/4 wird 0,25 und nicht wie vorgesehen auch 1/4?
Gibt es keine Möglichkeit, dass man beim "übertragen" die Zellformatierung von der Quelle übernimmt und in die neue Zelle überträgt oder wenn schon übertragen wird, warum wird dann nicht das Zellenformat "anerkannt"?
Grüße
Franzl53
Anzeige
AW: Frage zum Makro
28.02.2022 13:45:07
GerdL
Hallo Franzl!
Tabelle2.Cells(6, 4).NumberFormat = "@"
Tabelle2.Cells(6, 4) = Mid(Tabelle1.Range("F2").Text, 1, 6)
Excel ist halt ein Tabellenkalkulationsprogramm.
Gruß Gerd
AW: Frage zum Makro
28.02.2022 14:48:33
Rudi
Hallo,
du schreibst alle Daten als String (Text) in die Zellen. Texte kann man z.B. nicht als "hh:mm" formatieren. Verwende die richtigen Datentypen.

Dim tb1_UhrA As Date
Dim tb1_UhrR As Date
Dim tb1_Datum As Date
Dim tb1_AnKM As Long
Dim tb1_ZuKM As Long
Dim tb1_Tank As Single
Gruß
Rudi
AW: Frage zum Makro
28.02.2022 15:07:23
GerdL
Moin

Sub Unit()
Dim nr As Range
Dim Namenfeld As Range
Dim Abt As Range
Dim Fz As Range
Dim Kennz As Range
Dim UhrA As Range
Dim AnKM As Range
Dim UhrB As Range
Dim ZuKM As Range
Dim Tank As Range
'Ausgabezellen definieren
With Worksheets("Tabelle2")
Set nr = .Range("H1")
Set Namenfeld = .Range("B3")
Set Abt = .Range("D3")
Set Fz = .Range("B6")
Set Kennz = .Range("B9")
Set UhrA = .Range("D6")
Set AnKM = .Range("D9")
Set UhrB = .Range("D9")
Set ZuKM = .Range("F9")
Set Tank = .Range("H6")
End With
'Ausgabezellen formatieren
UhrA.NumberFormat = "@"
UhrB.NumberFormat = "@"
Tank.NumberFormat = "@"
With Worksheeets("Tabelle1")
For i_zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Werte einlesen
nr = .Cells(i_zeile, 1).Value
Namenfeld = .Cells(i_zeile, 2).Value
Abt = .Cells(i_zeile, 3).Value
Fz = .Cells(i_zeile, 4).Value
Kennz = .Cells(i_zeile, 5).Value
UhrA = Mid(.Cells(i_zeile, 6).Text, 1, 5)
AnKM = .Cells(i_zeile, 7).Value
UhrB = Mid(.Cells(i_zeile, 8).Text, 1, 5)
ZuKM = .Cells(i_zeile, 9).Value
Tank = .Cells(i_zeile, 10).Text
'Drucken wird gestartet und ausgegeben an den Druckerspooler
'Worksheets("Tabelle2").Range("A1:I15").PrintOut
Next
End With
'Rangeobjektvariablen zurücksetzen
Set nr = Nothing
Set Namenfeld = Nothing
Set Abt = Nothing
Set Fz = Nothing
Set Kennz = Nothing
Set UhrA = Nothing
Set AnKM = Nothing
Set UhrB = Nothing
Set ZuKM = Nothing
Set Tank = Nothing
End Sub
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige