[Gelöst] Ein 'X' in eine bestimmte Spalte per Tastendruck

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

[Gelöst] Ein 'X' in eine bestimmte Spalte per Tastendruck

Beitrag von Reginald »

Hallo zusammen!

Ich habe eine sehr große Tabelle mit rund 100 Spalten. Die erste Spalte ist eine Namensspalte.

Ich muß regelmäßig nach einem Namen suchen (Strg + F) und dann in eine der 100 Spalten ein X setzen.

Das ist so eine Art Anwesenheitsliste. Also wenn ein Mitarbeiter um 11 Uhr kommt, muß ich den Kollegen heraussuchen und zum Beispiel in der 5. Spalte eine '1' reinschreiben (oder ein 'X' oder auf was auch immer man sich einigt, aber die '1' hat den vorteil, dass man so leicht die Gesamtanzahl ermitteln kann).

Wenn um 11.05 ein Kollege zu mir kommt und eine fertige Projektarbeit abgibt muß ich in der Spalte H eine 1 reinschreiben usw.

Das muss alles ganz schnell gehen, weil es viele solcher Zyklen sind. Mit Strg + F kann ich die Jungs schnell finden, aber ich brauchen Tastenkombinationen, z. B. Strg+1, Strg+2, Strg+3, Strg+4, Strg+5 mit denen ich jeweils eine 1 in eine vordefinierte Spalte reinschreibe.

Das muß mit diesen Tastenkombinationen gehen, weil ich die Tabelle nicht umsortieren kann und meine 5 wichtigen Spalten vorne hinsetze. Wenn ich mit der Maus oder den Tasten zur Spalte 80 oder 100 blättern muß dauert das alles ewig.

Also noch einmal der Ablauf: Strg+F, Namen eintippen, Enter, Strg+1 und der Kerl ist als "anwesend" in Spalte 5 gekennzeichnet. Dauert nicht mehr als 10 Sekunden ...

Eigentlich simpel, oder?

Kann mir hier jemand helfen?


Danke schon einmal,

Grüße
Reginald
Zuletzt geändert von Reginald am Sa, 30.07.2011 01:05, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Ein 'X' in eine bestimmte Spalte per Tastendruck setzen

Beitrag von F3K Total »

Hallo Reginald,
wenn es sich bei Deiner Datei um ein Calc Dokument handelt, schau mal ob dir das
viewtopic.php?f=2&t=49519#p182083
hilft.
Gruß R
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Ein 'X' in eine bestimmte Spalte per Tastendruck setzen

Beitrag von Karolus »

Hallo
Würde dir eine Inputbox reichen, mit einer Eingabe von: Mitarbeitername Komma Spaltenbuchstabe

Code: Alles auswählen

Sub autoeintrag
	ziel = inputbox ("gib Name und Spalte kommagetrennt ein")
	arr_ziel = split( ziel,",")
	sname = arr_ziel(0)
	spalte = arr_ziel(1)
	doc = thiscomponent
	sheet = doc.sheets(0) '1.Blatt
	srange = sheet.getCellRangeByName("A1:A100")
	osearch = srange.createSearchDescriptor()
	with osearch 
		.SearchRegularExpression = False
		.SearchString = sname
		.SearchType = 0    
	end with
	ofound = srange.findfirst(osearch)
	zeile = ofound.getcelladdress.Row +1
	sheet.getcellrangebyname(spalte & zeile).value = 1
End Sub
! Noch ohne Fehlerbehandlung gegen "falsche" Eingaben !

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Re: Ein 'X' in eine bestimmte Spalte per Tastendruck setzen

Beitrag von Reginald »

Hey zusammen,

das war sehr flott mit den Antworten! Danke schon einmal.

Also mit dem Code hier komme ich schon halb weiter:

Code: Alles auswählen

Sub WertSetzen
oCell=ThisComponent.CurrentSelection
oCell.Value=1
End Sub
Jetzt soll er es aber nicht in der CurrentSelection machen, sondern immer in Spalte E von der Zeile, wo der Cursor sich gerade befindet.

???

Grüße
Reginald
Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Re: Ein 'X' in eine bestimmte Spalte per Tastendruck setzen

Beitrag von Reginald »

Also, ich habe es mit euren Hinweisen und mit http://www.dannenhoefer.de/faqstarbasic/index.html gelöst:

Code: Alles auswählen

Sub WertSetzenInSpalteB
myDoc = thisComponent
mySheet = myDoc.sheets(0)
oCelle=myDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
mycell = mysheet.getCellByPosition(1,oRow)
'Als Text: mycell.string = "X"
mycell.Value = 1   'als Zahl
End Sub
Also, auch wenn das für einen Programmierer super simpel ist, für mich ein echtes Erfolgserlebnis - und vor allem sehr hilfreich mit dem, was ich vorhabe. 8)

Grüße,
Reginald
Antworten