Registriert seit: 12.08.2021
Version(en): 365
Hallo Ich habe ein Problem, vielleicht kann mir da jemand helfen. Ich lasse per VBA verschiedene Daten in ein anderes Blatt übertragen. Alles lief gut am Anfang. Seid einiger Zeit bekomme ich jedoch in Zellen mit einem Betrag, (der als Währung formatiert ist, mit 2 Dezimalstellen und € Zeichen) ein falschen Ergebnis. Als Beispiel: In meiner Rechnung steht der Betrag 225,00€ dieser wird per klick übertragen. Leider habe ich dann das Resultat auf dem 2 Blatt von 2.250.027 (wenn als Währung formatiert) und zb 2250027 (Buchhaltung).
Kann das an einer Bedingten Formatierung liegen? Ich habe den VBA Code nie geändert oder so. Es funktionierte perfekt.
Hat jemand eine Idee was evt falsch läuft?
Vielen Dank im vorraus für eure Hilfe!
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
ohne deine Datei zu kennen, eher nicht.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 03.04.2020
Version(en): Office 365 und 2010
Hallo, schau Dir doch mal den Thread von Korain an, der auf der gleichen Seite steht. Dort geht es um die gleiche Thematik, - viellleicht hilft Dir das weiter? https://www.clever-excel-forum.de/Thread...age--34224 Grüße Norbert
Registriert seit: 12.08.2021
Version(en): 365
17.03.2022, 10:34
(Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2022, 19:53 von WillWissen.
Bearbeitungsgrund: Codetags
)
Hallo, Ich war diese Woche noch praktisch nicht im Büro deshalb konnte ich mich jetzt erst der Sache annehmen. Ich habe den Thread angsehen, und das versucht. Hilft nicht weiter. Ich habe jetzt auch ein neues Blatt erstellt, ich dachte das würde weiterhelfen. Aber nein. Es bleibt das gleiche. Die Datei so wie sie ist kann ich, resp darf ich nicht hochladen. Datenschutz eben. Deshalb hab ich hier den Code mal komplett eingefügt. Vielleicht findet jemand von euch einen Fehler. Code: Sub Rechnungpdf()
Dim actZelle As Range Set actZelle = ActiveCell
Dim DateiName As String
DateiName = Range("R2") & Range("R1") & ".pdf"
Range("A1:I46").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False Dim Rechnungsnr As String, Kundennr As String, Rechnungsdatum As String, Rechnungsbetrag As String, Name As String Worksheets("Rechnung").Select Rechnungsnr = Range("R1") Kundennr = Range("B17") Name = Range("G8") Rechnungsdatum = Range("H17") Rechnungsbetrag = Range("H38") Worksheets("Zahlungsstatus").Select If Worksheets("Zahlungsstatus").Range("A3").Offset(1, 0) <> "" Then Worksheets("Zahlungsstatus").Range("A3").End(xlDown).Select
End If
Dim sRechnungsnr As Variant, sKundennr As Variant, sRechnungsdatum As Date, sRechnungsbetrag As Double, sName As String Dim lngNextRow As Long With Worksheets("Rechnung") Rechnungsnr = .Range("Q4") Kundennr = .Range("B17") sName = .Range("G8") Rechnungsdatum = .Range("H17") Rechnungsbetrag = .Range("H38") End With With Worksheets("Zahlungsstatus") lngNextRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lngNextRow, 1).Value = Rechnungsnr .Cells(lngNextRow, 2).Value = Kundennr .Cells(lngNextRow, 3).Value = sName .Cells(lngNextRow, 4).Value = Rechnungsbetrag .Cells(lngNextRow, 5).Value = Rechnungsdatum
End With
thisworkbook.Sheets("Rechnung").Range("E17") = thisworkbook.Sheets("Rechnung").Range("E17") + 1 Application.Goto actZelle End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, wenn ich Werte aus Zellen auslese programmiere ich gerne Range("A1").Value und nicht nur Range("A1") Value ist zwar Standard, aber na ja ... Wenn noch weitere Zahlen kommen, dann dürfte der Zellinhalt per Formel ermittelt und durch das Währungsformat gerundet sein. Hast Du mal die Überprüfung genutzt? Was steht denn z.B. bei der Überprüfung von Rechnungsbetrag und Range("H38").Value Unabhängig davon übernimmst Du in Deinem Code die Daten 2x in die gleichen Variablen. Du hast für den zweiten Durchlauf aber neue Variablen definiert ... Was soll die Doppelung eigentlich bringen? Wobei mir der zweite Teil mit With deutlich sympathischer ist
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.08.2021
Version(en): 365
Hallo
Bei der überprüfung des Codes ist alles ok. Läuft einfach durch. auch mit Rechnungsbetrag = .Range("H38").Value ändert sich aber nichts an der Ausgabe in der Liste.
Was mich einfach wundert ist das es die ersten ich glaub 10 oder 15 mal perfekt funktionierte.
Wir gesagt ich bin Neuling und befasse mich erst kurz damit.
Wieso habe ich denn einen 2 Durchlauf mit andern Variablen? Es geht hier um Rechnungen, die ich automatisch als PDF speichern, das ganze in eine Liste (Zahlungsstatus) eintragen lasse und dann noch die Rechnungsnummer um 1 Nummer erhöhe.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
2x:
schaue in den Code was alles auf / mit Worksheets("Rechnung") passiert und wo Du in Deinem Code z.B. die Variable sRechnungsnr verwendest ..
Dim Rechnungsnr As String, Kundennr As String, Rechnungsdatum As String, Rechnungsbetrag As String, Name As String Worksheets("Rechnung").Select Rechnungsnr = Range("R1") ...
Dim sRechnungsnr As Variant, sKundennr As Variant, sRechnungsdatum As Date, sRechnungsbetrag As Double, sName As String Dim lngNextRow As Long With Worksheets("Rechnung") Rechnungsnr = .Range("Q4") ...
teilweise mit gleichen, teilweise mit unterschiedlichen Zelladressen
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.08.2021
Version(en): 365
07.04.2022, 11:08
Ich hab zwar jetzt etwas gebraucht da ich es nicht so einfach verstanden hatte.
Jetzt läuft es Vielen dank an alle die mir geholfen haben.
|