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