Seite 1 von 1
[gelöst] Im Makro Kommazahlen kopieren
Verfasst: Fr 25. Jun 2021, 17:33
von andreas034
Hallo Leute,
letztes Jahr hat mir User craig ein Makro bereitgestellt, vielen Dank nochmal.
Ich habe das Makro etwas erweitert, durch die Erweiterung habe ich festgestellt, dass das Makro nur Ganze zahlen bzw. eine Kommazahl auf oder abrundet. Die ganze Zeit war mir das Egal, da mich Komma zahlen nicht Interessierten. Jetzt habe ich das Makro erweitert und das Makro soll eine Prozentzahl von Tabelle1 nach Tabelle3 kopieren, das macht er auch, allerdings ohne Komma.
Wie schaffe ich das, dass das Makro die Kommazahl kopiert?
Gruß
Andreas
Re: Im Makro Kommazahlen kopieren
Verfasst: Fr 25. Jun 2021, 17:53
von karolus
Warum zeigst du nicht den Quellcode hier in deiner Frage? Ist copy&paste zuviel verlangt?
Edit: ich hab mir die Mühe gemacht und nach dem Thread vom letzten Jahr gesucht, … Craig hat sogar den entsprechenden Code mit Kommentaren und auskommentiert hinterlassen:
Code: Alles auswählen
…
'Variable für Fließkomma-Werte'
'Dim fVal as Double'
'Variable für ganzzahlige Werte'
Dim nVal as Long
…
Re: Im Makro Kommazahlen kopieren
Verfasst: Fr 25. Jun 2021, 18:00
von andreas034
Hallo korolus,
entschuldige, ich habe daran nicht Gedacht.
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Sub DatenUebernahme
Dim oDoc as Object
Dim oSheet1 as Object
Dim oSheet2 as Object
Dim oSourceCell as Object
Dim oColumnA as Object
Dim oEmpty as Object
Dim oAddress as Object
Dim oFirstEmptyCell as Object
'REM Variable für Fließkomma-Werte
'Dim fVal as Double
REM Variable für ganzzahlige Werte
Dim nVal as Long
oDoc=ThisComponent
' Hier ggf. den Tabellenblattnamen ändern
oSheet1=oDoc.Sheets.getByName("Tabelle1")
' Hier ggf. den Tabellenblattnamen ändern
oSheet2=oDoc.Sheets.getByName("2021")
' Objekt: Datenquelle
oSourceCell = oSheet1.getcellrangebyname("G10")
' REM Variable für Fließkomma-Werte
' fVal=oSourceCell.Value
REM Variable für ganzzahlige Werte
nVal=oSourceCell.Value
' Objekt: Ziel-Spalte
oColumnA = oSheet2.Columns.getbyName("A")
' Objekt nächstleere Zelle in Ziel-Spalte
oEmpty = oColumnA.queryEmptyCells
' Alle leeren Zellen in Ziel-Spalte
oAddress= oEmpty.RangeAddresses(0)
' Erste leere Zelle in Ziel-Spalte
oFirstEmptyCell = oSheet2.getcellbyposition(oAddress.StartColumn,oAddress.StartRow)
' Daten in erste leere Zelle der Ziel-Spalte schreiben
oFirstEmptyCell.Value = nVal
' Hier ggf. den Tabellenblattnamen ändern
oSheet1=oDoc.Sheets.getByName("Tabelle1")
' Hier ggf. den Tabellenblattnamen ändern
oSheet2=oDoc.Sheets.getByName("Tabelle2")
' Objekt: Datenquelle
oSourceCell = oSheet1.getcellrangebyname("D10")
' REM Variable für Fließkomma-Werte
' fVal=oSourceCell.Value
REM Variable für ganzzahlige Werte
nVal=oSourceCell.Value
' Objekt: Ziel-Spalte
oColumnA = oSheet2.Columns.getbyName("A")
' Objekt nächstleere Zelle in Ziel-Spalte
oEmpty = oColumnA.queryEmptyCells
' Alle leeren Zellen in Ziel-Spalte
oAddress= oEmpty.RangeAddresses(0)
' Erste leere Zelle in Ziel-Spalte
oFirstEmptyCell = oSheet2.getcellbyposition(oAddress.StartColumn,oAddress.StartRow)
' Daten in erste leere Zelle der Ziel-Spalte schreiben
oFirstEmptyCell.Value = nVal
' Hier ggf. den Tabellenblattnamen ändern
oSheet1=oDoc.Sheets.getByName("Tabelle1")
' Hier ggf. den Tabellenblattnamen ändern
oSheet2=oDoc.Sheets.getByName("Tabelle3")
' Objekt: Datenquelle
oSourceCell = oSheet1.getcellrangebyname("H10")
' REM Variable für Fließkomma-Werte
' fVal=oSourceCell.Value
REM Variable für ganzzahlige Werte
nVal=oSourceCell.Value
' Objekt: Ziel-Spalte
oColumnA = oSheet2.Columns.getbyName("A")
' Objekt nächstleere Zelle in Ziel-Spalte
oEmpty = oColumnA.queryEmptyCells
' Alle leeren Zellen in Ziel-Spalte
oAddress= oEmpty.RangeAddresses(0)
' Erste leere Zelle in Ziel-Spalte
oFirstEmptyCell = oSheet2.getcellbyposition(oAddress.StartColumn,oAddress.StartRow)
' Daten in erste leere Zelle der Ziel-Spalte schreiben
oFirstEmptyCell.Value = nVal
End Sub
Re: Im Makro Kommazahlen kopieren
Verfasst: Fr 25. Jun 2021, 18:13
von karolus
Hallo
Schaffst du es selbständig nach der Zeile Dim nVal as Long zu suchen, und Long schlicht zu ersetzen mitDouble?
Re: Im Makro Kommazahlen kopieren
Verfasst: Fr 25. Jun 2021, 18:22
von andreas034
Vielen Dank korolus,
das wars, was ich möchte. Ich habe Probiert zu suchen und zu lesen, aber anscheinend habe ich falsch gesucht. Unter makro Kommazahlen habe ich dieses Double nicht gefunden
Vielen Dank nochmal.
Gruß
Andreas