Zelleninhalt der selektierten Zellen auslesen

Fehlerberichte, Hilfe und Anregungen zu BasicMaker 2018 für Windows

Moderator: SoftMaker Team

Trendpeiler
Beiträge: 362
Registriert: 28.08.2013 20:31:43

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von Trendpeiler » 19.01.2018 19:06:00

Hallo.

@ Get: Danke! Das neue Script mit Message funktioniert soweit gut. =D>



Viele Grüße
Trendpeiler

klaus314
Beiträge: 13
Registriert: 16.12.2017 20:39:00

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von klaus314 » 31.01.2018 07:41:53

Wie kann ich die Zellenhöhe der markierten Zelle bekommen?
Ich bekomme immer den Wert 1E7 zurück egal welche Zelle.
Auch die isHidden Funktion liefert bei mir immer nur 0 zurück für markerte Zellen.

Noch einmal ich benötige die Funktion für die markierten Zellen!

Benutzeravatar
Get
Beiträge: 145
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von Get » 01.02.2018 11:32:22

Hallo,
ich denke, es macht nicht viel Sinn, die einzeln markierten Zellen einfach nur per MsgBox auszugeben, Deswegen habe ich folgende Ergänzung vorgenommen: Die markierten Zellen werden in einer Tabelle in einer neuen Zeile bzw. Spalte ausgegeben. Dazu wird beim Start des Skripts ein Dialog aufgerufen:
dialog.JPG
dialog.JPG (23.64 KiB) 953 mal betrachtet
Man wählt aus, in welches Tabellenblatt die Werte geschrieben werden sollen. Man kann bei Bedarf vorher ein neues Blatt erzeugen.
Dann gibt man die Startposition der Werte auf dem neuen Blatt an. Achtung: Auch für die Spalte muss eine Zahl eingetragen werden, Buchstaben gehen nicht. Dann ist noch anzugenben, ob die Werte in eine Zeile oder eine Spalte eingetragen werden sollen. OK, und fertig.

@ klaus314: Die Höhe einer Zelle ist immer die Höhe der Zeile. Im linken Rand mit der rechten Maustaste die Zeilennummer anklicken und [Zeilenhöhe..] auswählen.
Dateianhänge
auswahl_auslesen.bas
(1.88 KiB) 25-mal heruntergeladen

Trendpeiler
Beiträge: 362
Registriert: 28.08.2013 20:31:43

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von Trendpeiler » 01.02.2018 12:02:02

Get hat geschrieben:
01.02.2018 11:32:22
... ich denke, es macht nicht viel Sinn, die einzeln markierten Zellen einfach nur per MsgBox auszugeben, Deswegen habe ich folgende Ergänzung ...
Hallo Get.

Schön gemacht. :-)

Ja, wenn man mit den hintergrundfarben-selektierten Zahlen von "Tabelle1" anschließend bspw. in "Tabelle2" was machen möchte, dann hat man sie gleich dort, wo man sie benötigt. Und die Zeichenhintergrundfarbe braucht (nach wie vor) auch nicht in "Tabelle1" gelöscht werden, da dies optional ist.


Viele Grüße
Trendpeiler

klaus314
Beiträge: 13
Registriert: 16.12.2017 20:39:00

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von klaus314 » 02.02.2018 07:39:32

Ich würde aber gerne die Zellenhöhe via Makro ermitteln und nicht herumklicken.

Hintergrund ist: Ich markiere Zellen z.B. C30:C45 und möchte den Wert der Zellen ändern aber nur die Zellen die sichtbar sind.
Sichtbare Zellen haben eine Zellenhöhe von größer 0 bzw. haben den Status IsHidden auf False gesetzt. ich bekomme aber jedesmal als Zellenhöhe 1E007 zürück bzw. für IsHidden = 0.

martin-k
SoftMaker Team
SoftMaker Team
Beiträge: 4987
Registriert: 03.12.2003 14:32:06
Kontaktdaten:

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von martin-k » 03.02.2018 12:15:40

Eine IsHidden-Eigenschaft gibt es nicht, nur Hidden:

Code: Alles auswählen

sub x
	dim p as object
	set p = CreateObject("PlanMaker.Application")
	if p.ActiveSheet.Selection.Hidden = smoUndefined then
		print "nicht verborgen"
	else
		print "verborgen"
	end if
end sub
Und hier die Höhe der Zeile 1 des Arbeitsblatts:

Code: Alles auswählen

sub x
	dim p as object
	set p = CreateObject("PlanMaker.Application")
	print p.ActiveSheet.Rows(1).RowHeight
end sub
Martin Kotulla
SoftMaker Software GmbH

klaus314
Beiträge: 13
Registriert: 16.12.2017 20:39:00

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von klaus314 » 05.02.2018 09:40:29

@martin-k
Wie ich die Info für eine bestimmte Zelle bekomme ist klar, aber wie kann ich das für die selektierten Zellen bekommen?
Mein Makro weiß doch nicht welche Zellen der User selektiert hat.

Also angenommen der User hat die Zellen C15:C35 selektiert aber die Zellen C20, C28 und C30 sind verborgen (hidden) haben die Zellenhöhe 0.
Jetzt mochte ich allen Zellen einen neuen Wert zuweißen aber nicht die verborgene Zellen C20, C28 und C30.

FFF
Beiträge: 917
Registriert: 11.06.2013 22:30:18

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von FFF » 05.02.2018 12:41:35

klaus314 hat geschrieben:
05.02.2018 09:40:29
@martin-k
Wie ich die Info für eine bestimmte Zelle bekomme ist klar, aber wie kann ich das für die selektierten Zellen bekommen?
Mein Makro weiß doch nicht welche Zellen der User selektiert hat.

Also angenommen der User hat die Zellen C15:C35 selektiert aber die Zellen C20, C28 und C30 sind verborgen (hidden) haben die Zellenhöhe 0.
Jetzt mochte ich allen Zellen einen neuen Wert zuweißen aber nicht die verborgene Zellen C20, C28 und C30.
Habe mich nicht näher mit dem Objektmodell von PM beschäftigt, aber ich würde erwarten, dass das Arbeitsblatt eine Property für selektierte Zellen hat, vermutlich ein Array mit den Zeile/Spalte-Werten.

EDIT: mal in der Doku nachgesehen; da findet sich unter Range:
"Zugriffspfade (für die momentan selektierten Zellen):
Application -> Workbooks -> Item -> Sheets -> Item -> Selection"
und auch:
Die Eigenschaft Sheet.Selection gibt ein Range-Objekt zurück, das die aktuelle Selektion repräsentiert, also die gegenwärtig markierten Zellen. Beispiel:
' Die aktuelle Selektion in der Schrift "Courier New" formatieren
pm.ActiveSheet.Selection.Font.Name = "Courier New"

Sollte das nicht gehen?
Mit freundlichem Gruß
Karl
emC 7 & SM 2016 rev766.0331 @ W8.1/64
SM 2018 rev. 933/0620/64, klassisches Menu
16GB Ram; Intel-"Onboard" Grafik, 2560x1440 Monitor 100% Darstellungsgröße
LaserJet 1200 per USB via Fritzbox 6490.

klaus314
Beiträge: 13
Registriert: 16.12.2017 20:39:00

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von klaus314 » 06.02.2018 07:15:47

Sollte das nicht gehen?


Probier es doch mal aus! Ich habe bisher nichts gefunden was hilft, sonst wiürde ich hier nicht posten, wenn ich etwas gefunden hätte.
Hier siehst du schon mal alles was ich bisher probiert habe, ohne Erfolg:


Sub auswahl_auslesen
Dim pm as Object
Set pm = CreateObject("PlanMaker.Application")
pm.Application.Visible = True

Dim rngZahlen as Object
Dim row, col, antw as Integer
Dim swert
Dim farbe as long

hh = pm.ActiveSheet.Rows(3).Hidden
rh = pm.ActiveSheet.Rows(3).RowHeight
cw = pm.ActiveSheet.Columns(4).ColumnWidth

' hh = pm.ActiveDocument.Tables(1).Rows.Item(2).RowHeight


Set rngZahlen = pm.ActiveSheet.Selection

For row = 1 To rngZahlen.Rows.Count
For col = 1 to rngZahlen.Columns.Count

if rngZahlen.Cells.Rows(row).Hidden then
rngZahlen.Cells.Item(row, col).Value = 0
else
rngZahlen.Cells.Item(row, col).Value = row
end if
' rh = rngZahlen.Cells.Item(row, col).Rows(1).RowHeight
' rh = rngZahlen.Cells.Rows(row).RowHeight
' cw = rngZahlen.Cells.Columns(col).ColumnWidth
' hh = pm.ActiveDocument.Tables(1).Rows(2).RowHeight
' mh = rngZahlen.Cells.Item(row, col).RowHeight
' mw = pm.Application.Cells(row, col).Value
' mw = pm.Application.Cells(row, col).Width
' mw = pm.ActiveDocument.Tables(1).Rows(2).Cells(5).PreferredWidth
' mw = rngZahlen.Cells.Rows(2).Cells(5).PreferredWidth
' mw = rngZahlen.Cells.Item(row, col).PreferredWidth
' mx = ngZahlen.Cells.Item(7, 3).ColumnWidth
' If farbe <> -1 then
' MsgBox swert
' End If
Next col
Next row
Set pm = Nothing
End Sub

FFF
Beiträge: 917
Registriert: 11.06.2013 22:30:18

Re: Zelleninhalt der selektierten Zellen auslesen

Beitrag von FFF » 06.02.2018 09:41:30

klaus314 hat geschrieben:
06.02.2018 07:15:47
Sollte das nicht gehen?

Probier es doch mal aus! Ich habe bisher nichts gefunden was hilft, sonst wiürde ich hier nicht posten, wenn ich etwas gefunden hätte.
Hier siehst du schon mal alles was ich bisher probiert habe, ohne Erfolg:
Kann ich nicht, weil SM immer noch keine 64bit Dll geliefert hat, sorry.
Aber was heißt "ohne Erfolg"? Läuft nicht, selection ist leer, oder was?
Auf einen schnellen Blick: was macht das Hidden in der Routine?
Mit freundlichem Gruß
Karl
emC 7 & SM 2016 rev766.0331 @ W8.1/64
SM 2018 rev. 933/0620/64, klassisches Menu
16GB Ram; Intel-"Onboard" Grafik, 2560x1440 Monitor 100% Darstellungsgröße
LaserJet 1200 per USB via Fritzbox 6490.

Antworten

Zurück zu „BasicMaker 2018 für Windows“