01.11.2024, 21:43 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2024, 21:47 von Christo.)
Hallo Klaus-Dieter....
vielen Dank für deine Rückmeldung ....sorry, ich bin es nochmal und habe nich einmal eine Frage: Wenn ich die Datenblätter nun leere, um dann im Januar mit einer leeren Planung beginnen möchte, lösche ich dann irgendwelche Parameter?
du brauchst nur die Daten auf dem Blatt Hundehotel Graf 2025 löschen. Das Blatt Übersicht wird ohnehin jedes mal beim Öffnen gelöscht und neu angelegt, damit alle Änderungen auf dem Blatt Hundehotel richtig und aktuell übernommen werden. Die Kundenliste kann ebenfalls neu angelegt werden. Habe da gerade noch ein paar Verknüpfungen gefunden, die nehme ich noch raus und stelle dir die Datei noch mal ein, damit es damit keine Probleme gibt.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
war ein interessierter Mitleser deines hier geschilderten Vorhabens. Habe allerdings in den Beiträgen keine Streitigkeiten erkennen können. Es hat eben jeder seine Ansichten bzw. Prioritäten umgesetzt.
Allerdings ist dein Wille etwas zu bewegen bzw. zu begrenzen abseits deiner hiesigen Wünsche bemerkenswert und wünsche dir in jeder Hinsicht viel Erfolg.
Mit freundlichem Gruß Rudi'S
Folgende(r) 2 Nutzer sagen Danke an Rudi'S für diesen Beitrag:2 Nutzer sagen Danke an Rudi'S für diesen Beitrag 28 • Christo, Klaus-Dieter
Hallo Rudi.... einen schönen guten Morgen und danke für deinen Beitrag. Ich bin froh hier viele nette Menschen kennengelernt zu haben,die mir den einen und anderen Tipp gegeben haben. Vielleicht bin ich auch aufgrund meiner persönlichen Situation zu sensibel sodass ich mich verlässt sah, den Post zu schreiben. Um so mehr freut es mich, dass alle hier sind, um sich gegenseitig zu helfen. Ich freue mich jedoch riesig, dass ich nun einen Punkt auf meine "to do" - Liste abhaken kann. Jetzt werde ich mich um ein Programm bemühen, womit ich meine Rechnungen schreiben kann.
Vielen Dank für deine Zeilen....ich wünsche dir ein schönes Wochenende
02.11.2024, 11:05 (Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2024, 11:05 von Klaus-Dieter.)
Hallo Claudia,
habe bei einem Test der Feiertagsfunktion festgestellt, dass die doch sehr lange läuft, was unter anderem daran liegt, dass ich das Kalendarium auf über vierzig Jahre festgelegt hatte. Das würde ich zunächst auf zehn Jahre verkürzen wollen. (Es lässt sich durch einfaches "ziehen" jederzeit bei Bedarf verlängern. Wenn ich da eine Lösung habe, melde ich mich noch mal.
Edit: habe den Zeitbedarf mal gemessen, auf meinem Rechner kommen da rund zwölf Minuten zusammen. Das wäre ja noch vertretbar, wenn man berücksichtigt, dass Änderungen am Kalendarium ja nicht so oft vorkommen werden. Habe allerdings noch eine Idee, wie ich das Programmtechnisch optimieren kann. Die werde ich noch mal ausprobieren.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
du hattest ich in einer vorherigen Mail gefragt nach einem Rechnungsprogramm. Schau mal bitte, was ich hier gefunden habe. Ich habe hier gerade mal ein wenig herum experementiert. Meine Kopfdaten lassen sich hier einfach eingeben. Jedoch würde ich hier die Bestandslisten ändern wolle
In der Excel-Vorlage gibt es mehrere Bestandslisten....ich gaube, eine würde mir vollkommen reichen, wo ich dann die einzelnen Positionen hinterlegen kann. Die Bestands- liste ist wie folgt aufgebaut:
Bestellnummer - Bezeichnung - St. / Preis Netto - Anfangsbestand - Verkauf - Bestand ist - Mindesbestand ........viele Positionen brauche ich glaube nicht. Ich möchte ganz gerne in meiner Rechnung folgende Postionen aufgelistet haben:
Betreuungstufe 1 - 8 (Kat 1-8) - Hundebetreuung - Zeitraum von / bis - Tage - Preis / Netto - Summe
Schau mal......könnte man die auf mich zuschneiden? Ich habe zudem gesehen, dass man in der Rechnung oben im Adressenfeld ein Pulldown-Menü hat, wo man nur den Kunden anklicken braucht und dieser dann automatisch übernommen wird. Ich bräuchte dann nur noch die Betreuungsstufe, Hundebetreuung oder Katzenbetreuung und den Zeitraum eingeben.
es ist kein Problem, so etwas in die andere Datei zu implementieren. Die Frage ist nur, ob das Finanzamt das akzeptieren würde. Das müsstest du abklären. Wie ich vermute, würde es auf ein Kleingewerbe ohne Umsatzsteuer hinauslaufen.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
@ Klaus-Dieter, entschuldige bitte, dass ich mal dazwischen grätsche. Ich hab mir die Prozedur zum Füllen der Timline angeschaut und das Schreiben in jede einzelne Zelle umgebaut, da dies bei entsprechend vielen Einträgen die Laufzeit unnötig verlängert.
Es werden die Treffer in einer Variable gesammelt und als Range im Block geschrieben. Die Berechnung (Anzahl parallelen Betreuungen) werden auch via Array on Block geschrieben. Damit ist die Laufzeit bis zum Jahr 2068 stark verkürzt.
Dann habe ich einige Variablen (.Match) auf Variant gesetzt. Das verhindert Fehler bei fehlenden Datensätzen. Den Rest weist du selbst.
Code:
Option Explicit
Private Sub Worksheet_Activate() Dim lngZeile As Long Dim lngZiZeile As Long Dim lngStSp As Variant Dim lngZiSp As Variant Dim lngFarbZeile As Variant Dim lngSpalte As Long Dim varHund$, varKatze$, arrH(), arrK() Rows("4:" & Tabelle1.Range("A4").End(xlDown).Row).Delete Cells(2, 2) = "Anzahl" Cells(3, 2) = "Anzahl" Cells(2, 3) = "Hunde" Cells(3, 3) = "Katzen" For lngZeile = 5 To Tabelle1.Range("A4").End(xlDown).Row lngFarbZeile = Application.Match(Tabelle1.Cells(lngZeile, 3), Tabelle2.Columns(1), 0) lngZiZeile = Range("B" & Rows.Count).End(xlUp).Row + 1 Cells(lngZiZeile, 1) = Tabelle1.Cells(lngZeile, 1) & "-" & Tabelle1.Cells(lngZeile, 3) Cells(lngZiZeile, 2) = Tabelle1.Cells(lngZeile, 4) Cells(lngZiZeile, 3) = Tabelle1.Cells(lngZeile, 5) lngStSp = Application.Match(Tabelle1.Cells(lngZeile, 14), Rows(1), 0) lngZiSp = Application.Match(Tabelle1.Cells(lngZeile, 15), Rows(1), 0) If Tabelle1.Cells(lngZeile, 13) = "Hund" Then If Len(varHund) < 220 Then ' Es sind max 255 Zeichen möglich varHund = varHund & Replace(Cells(lngZiZeile, lngStSp).Address, "$", "") & ":" & Replace(Cells(lngZiZeile, lngZiSp).Address, "$", "") & "," Else Range(Left(varHund, Len(varHund) - 1)) = "H" Range(Left(varHund, Len(varHund) - 1)).HorizontalAlignment = xlCenter varHund = "" End If ElseIf Tabelle1.Cells(lngZeile, 13) = "Katze" Then If Len(varKatze) < 220 Then varKatze = varKatze & Replace(Cells(lngZiZeile, lngStSp).Address, "$", "") & ":" & Replace(Cells(lngZiZeile, lngZiSp).Address, "$", "") & "," Else Range(Left(varKatze, Len(varKatze) - 1)) = "K" Range(Left(varKatze, Len(varKatze) - 1)).HorizontalAlignment = xlCenter varKatze = "" End If End If Next lngZeile If varHund <> "" Then Range(Left(varHund, Len(varHund) - 1)) = "H" Range(Left(varHund, Len(varHund) - 1)).HorizontalAlignment = xlCenter End If If varKatze <> "" Then Range(Left(varKatze, Len(varKatze) - 1)) = "K" Range(Left(varKatze, Len(varKatze) - 1)).HorizontalAlignment = xlCenter End If ReDim arrH(1 To 1, 1 To Cells(1, Columns.Count).End(xlToLeft).Column - 3) arrK = arrH For lngSpalte = 4 To Cells(1, Columns.Count).End(xlToLeft).Column arrH(1, lngSpalte - 3) = Application.WorksheetFunction.CountIf(Range(Cells(4, lngSpalte), Cells(lngZiZeile, lngSpalte)), "H") arrK(1, lngSpalte - 3) = Application.WorksheetFunction.CountIf(Range(Cells(4, lngSpalte), Cells(lngZiZeile, lngSpalte)), "K") Next lngSpalte Cells(2, 4).Resize(1, UBound(arrH, 2)) = arrH Cells(3, 4).Resize(1, UBound(arrK, 2)) = arrK End Sub
Die farbliche Kennzeichnung würde ich mit bedingter Formatierung erschlagen. Diese kann man ebenfalls in einer kleinen Prozedur, wenn sich im Listobjekt der Tabelle2 am Kundenstamm sich was ändert neu setzen. Dabei kann man die Anzahl der Zeilen aus dem Datenbestand der Listobjekts aus der Tabelle1 auch mit Angleichen. Auch wenn die bedingte Formatierung u.U. etwas nachläuft, kommt man deutlich schneller an die Ausgabe.
Damit hältst du dir die Laufzeitprobleme so ziemlich vom Hals.