Hallo,
ich bin Neu-Umsteiger von Excel und baue gerade eine Datei um, allerdings bekomme ich folgende Funktionalität nicht hin:
Ich habe eine Auflistung von Kosten für ein Mietshaus, und gewisse Positionen kann ich auf die Mieter umlegen. Für die Abrechnung habe ich in der letzten Spalte einfach Pos1 bis Pos8 diesen Positionen entsprechend zugeordnet und dann wurden die Zeilen per Makro für die Abrechnung in die Tabellen der Mieter kopiert.
Wie kann ich in Calc die Zeile bestimmen in der ein bestimmter Text steht, wie z.B. Pos4?
Vielen Dank schon mal.
Gruß
Matthias
Zeile einer Zelle unter Abhängigkeit des Inhalts ermitteln
Moderator: Moderatoren
-
- *
- Beiträge: 17
- Registriert: Di, 05.12.2006 22:26
- Wohnort: Schiffdorf
Wie kann ich in Calc die Zeile bestimmen in der ein bestimmter Text steht, wie z.B. Pos4?
Wenn der Name des Tabelenblattes, auf dem gesucht werden soll, "Tabelle1" wäre, dann beispielsweise so:
Code: Alles auswählen
sub Zelle_suchen()
oSheet = ThisComponent.Sheets("Tabelle1")
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
k = 0
For i = 0 to oCellCursor.getRangeAddress.EndColumn
For j = 0 to oCellCursor.getRangeAddress.EndRow
If oSheet.getCellByPosition(i, j).String = "Pos4" Then
k = 1
Exit For
End if
Next j
If k = 1 Then
Exit For
End If
Next i
Msgbox "Wert gefunden, Zeile ist " & j+1
end sub
Gruß
Stephan
-
- *
- Beiträge: 17
- Registriert: Di, 05.12.2006 22:26
- Wohnort: Schiffdorf
Wie kann ich in Calc die Zeile bestimmen in der ein bestimmt
Hallo Stephan,
Danke für die schnelle Antwort.
Ich hätte allerdings mein Vorhaben etwas detaillierter Beschreiben können, sorry!
Ja, der Bereich der durchsucht werden soll beschränkt sich auf eine bestimmte Spalte, von diesen auch nur ca 50 bis 60 Zeilen. Die "Range" kann also klar definiert werden.
In Excel sah es so aus:
Etwas vergleichbares wie das LookIn gibt es wohl in StarBasic nicht, oder?
Gruß
Matthias
Danke für die schnelle Antwort.
Ich hätte allerdings mein Vorhaben etwas detaillierter Beschreiben können, sorry!
Ja, der Bereich der durchsucht werden soll beschränkt sich auf eine bestimmte Spalte, von diesen auch nur ca 50 bis 60 Zeilen. Die "Range" kann also klar definiert werden.
In Excel sah es so aus:
Code: Alles auswählen
With Worksheets("Aufwendungen").Range("F2:F256")
Set C = .Find(Pos(p), LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Zeile = Range(firstAddress).Row
Else
Message = "Wert " & Pos(p) & " kann nicht gefunden werden"
MsgBox (Message)
End
End If
End With
Gruß
Matthias
Das wäre doch wohl ziemlich unwahrscheinlich, wie sollte sonst eine Unterscheidung was gesucht wird innerhalb der Suche stattfinden?Etwas vergleichbares wie das LookIn gibt es wohl in StarBasic nicht, oder?
Das Äquivalent zu LookIn ist die Eigenschaft SearchType des Such-Descriptors (com.sun.star.util.SearchDescriptor)
Code: Alles auswählen
Sub suchen
bereich = ThisComponent.Sheets("Tabelle1").getCellRangeByName("F2:F256")
suche = bereich.createSearchDescriptor()
With suche
.SearchString = "Pos4"
.SearchType = 1 '0=Formel; 1=Wert; 2=Notiz
.SearchWords = True
C = bereich.findFirst(suche)
If Not IsNull(C) Then
firstAddress = C.getCellAddress
Zeile = firstAddress.Row
Else
Message = "Wert " & suche.SearchString & " kann nicht gefunden werden"
MsgBox (Message)
End
End If
End With
End Sub
Gruß
Stephan
-
- *
- Beiträge: 17
- Registriert: Di, 05.12.2006 22:26
- Wohnort: Schiffdorf
Merci
Hallo Stephan,
ich bin im Moment etwas sprachlos, zum Einen weil ich mich über die Uhrzeit gewundert habe, wann Du meine erste Anfrage beantwortet hast und zum Anderen über die perfekte Lösung, die Du mir so aus dem Ärmel schüttelst.
Habe es gerade eingebaut und es funktioniert, DANKE.
Die kleine Hilfe, welche ich mir zusammengefummelt habe, reicht für eine einfache Nebenkostenabrechnung, solange kein Mieterwechsel stattgefunden hat. Die Erweiterung dafür ist nun meine nächste Herausforderung, gut das die Abende im Moment etwas länger sind. Ja, es gibt zwar fertige Software, aber die platzt meistens vor lauter "Features", und außerdem trainiert man damit nicht seine grauen Zellen.
Also, noch einmal recht herzlichen Dank und schöne Festtage und...
Gruß
Matthias
ich bin im Moment etwas sprachlos, zum Einen weil ich mich über die Uhrzeit gewundert habe, wann Du meine erste Anfrage beantwortet hast und zum Anderen über die perfekte Lösung, die Du mir so aus dem Ärmel schüttelst.
Habe es gerade eingebaut und es funktioniert, DANKE.

Die kleine Hilfe, welche ich mir zusammengefummelt habe, reicht für eine einfache Nebenkostenabrechnung, solange kein Mieterwechsel stattgefunden hat. Die Erweiterung dafür ist nun meine nächste Herausforderung, gut das die Abende im Moment etwas länger sind. Ja, es gibt zwar fertige Software, aber die platzt meistens vor lauter "Features", und außerdem trainiert man damit nicht seine grauen Zellen.
Also, noch einmal recht herzlichen Dank und schöne Festtage und...
Gruß
Matthias