ich stehe auf dem Schlauch und bin wahrscheinlich einfach nur zu blöde.
Folgende Aufgabe: Kundensuche (sind alle in einem Calc-Sheet) nach PLZ. Da mehrere Kunden dieselbe PLZ haben können (max. mal 3 oder 4, viel mehr werden es auch nie werden), sollen alle Kunden mit der entsprechenden PLZ in einen Dialog gepackt werden, wo der Bearbeiter im Versandt dann anklicken kann, welcher Kunde von denen es nun ist.
Code: Alles auswählen
Sub KundenSuche()
Dim sDateiNamen() As String
Dim iDateienAnzahl As Integer
Dim sGefundenerDateiName As String
oDoc = ThisComponent
oRechnung = oDoc.Sheets.getByName("Rechnung") ' aus dem Tabellenblatt "Rechnung" holt sich das Makro die PLZ
oZelle = oRechnung.getCellByPosition(1, 3) ' die Zelle, in der die PLZ steht
strPLZ = oZelle.String ' ist ein String, weil es auch so etwas wie A-8010 (für Kunden in Osterreich) gibt
oKunden = oDoc.Sheets.getByName("Kunden") ' das Sheet mit den Kundendaten
oKundenPLZ = oKunden.getCellRangeByName("E1")
oCursor = oKunden.createCursorByRange(oKundenPLZ)
oCursor.collapseToCurrentRegion
intZeilen = oCursor.getRangeAddress().EndRow + 1
Dim sKunden() As String
Dim iKundenZahl As Integer
Dim sGefundenerName As String
iKundenZahl = 0
sGefundenerKunde = ""
For i = intZeilen To 0 Step -1 ' zählt von der letzten belegten Zeile in den Kundendaten rückwärts
If oKunden.getCellByPosition(4, i).String <> "" And oKunden.getCellByPosition(4, i).String = strPLZ Then ' sucht PLZ, falls gefunden, werden Daten kopiert
Redim sKunden (iKundenZahl) As String
sGefundenerName = oKunden.getCellByPosition(1, i).String
msgbox sGefundenerName
sKunden(iKundenZahl) = sGefundenerName
msgbox ": " & sKunden(iKundenZahl) ' zum Debuggen; zeigt den richtigen Wert
iKundenZahl = iKundenZahl + 1
msgbox "zahl: " & iKundenZahl ' zum Debuggen, zeigt den richtigen Wert
End If
Next
For iKunden = 0 To UBOUND(sKunden())
sGefundenerName = sGefundenerName & Chr(13) & sKunden(iKunden)
MsgBox "Folgende Kunden haben die PLZ: " & strPLZ & " " & sKunden(iKunden)
msgbox iKunden ' zum Debuggen, zeigt nicht den richtigen Wert <============
Next
End Sub
Und dann würde mich noch interessieren, wie ich das alles in einen Dialog bekomme, wo per Radio-Button ausgewählt werden kann, welcher Kunde nun genau gemeint ist.
Für Hilfe wäre ich sehr dankbar. Mein Tag ist das heute jedenfalls nicht.