Automatisches Kopieren von Zellen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

BerndFrey
Beiträge: 2
Registriert: So, 19.07.2020 11:11

Automatisches Kopieren von Zellen

Beitrag von BerndFrey »

Hallo Zusammen,
ich bin neu hier im Forum und suche dringend Hilfe.
Ich habe in Calc ein Dokument angelegt in dem ich Messwerte eintrage.
Nun möchte ich, wenn ich in Zelle C9 eine Zahl größer 1 eingebe, dass sich die Zellen A23:H32 nach unten automatisch um die Anzahl von C9 kopieren werden.
Gibt es in Calc eine Formel oder ein Makro das dieses automatische Kopieren ermöglicht ?

Mit freundlichem Gruß Bernd
Dateianhänge
Curve Tracer.ods
(16.08 KiB) 47-mal heruntergeladen
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Automatisches Kopieren von Zellen

Beitrag von Stephan »

per Formel ist das nicht möglich, da Formeln grundsätzlich nichts kopieren. Das es in den mitgelieferten Makros ein passendes Makro gibt glaube ich kaum, man wird also Eines selbst erstellen müssen.

z.B. kann man das Kopieren mit Makrorekorder aufzeichnen und dann das Makro etwas ergäzen und dem EReignis Inhalt geändert des Tabellenblattes zuweiussen.

z.B.:

Code: Alles auswählen

Dim na


sub Main(x)
	If na = 1 Then Exit Sub
	If x.CellAddress.Row = 8 And x.CellAddress.Column = 2 Then
		na = 1
		rem ----------------------------------------------------------------------
		rem define variables
		dim document   as object
		dim dispatcher as object
		rem ----------------------------------------------------------------------
		rem get access to the document
		document   = ThisComponent.CurrentController.Frame
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
		
		rem ----------------------------------------------------------------------
		dim args1(0) as new com.sun.star.beans.PropertyValue
		args1(0).Name = "ToPoint"
		args1(0).Value = "$A$23:$H$32"
		
		dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
		
		rem ----------------------------------------------------------------------
		dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
		
				
		rem ----------------------------------------------------------------------
		dim args3(0) as new com.sun.star.beans.PropertyValue
		args3(0).Name = "ToPoint"
		
		anzahl = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("C9").Value
		If anzahl > 1 Then
			
			z = 23
			Do While anzahl > 0
				
				z = z + 11
		
				args3(0).Value = "$A$" & z
				
				dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
				
				rem ----------------------------------------------------------------------
				dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
				
				anzahl = anzahl - 1
			Loop
		
		End If
	End If
	na = 0
end sub 

Gruß
Stephan
Dateianhänge
Tabelle_mit_Makro.ods
(16.56 KiB) 55-mal heruntergeladen
BerndFrey
Beiträge: 2
Registriert: So, 19.07.2020 11:11

Re: Automatisches Kopieren von Zellen

Beitrag von BerndFrey »

Hallo Stephan,
danke für den Hinweis.Werde es mal versuchen.
Habe allerdings noch keine Erfahrung mir Makros.Aber ich werde mich durchkämpfen.
Danke für den Tipp.
Gruß Bernd
Antworten