# Daten in die Richtige Zeile eintragen lassen.



## truckerking (20. März 2019)

*2019              DATUM                GAS                   VERBRAUCH     
                                             (01) Januar  
                                             (02) Februar 
                                             (03) März 
                                             (04) April 
                                             (05) Mai 
                                             (06) Juni 
                                             (07) Juli *
*(08) August 
                                             (09) September  
                                             (10) Oktober 
                                             (11) November 
                                             (12) Dezember*

*So sieht die Tabelle aus in der Userform werden Eingaben gemacht und dort berechnet, die Ergebnisse die dann auf Click(Button) in diese Tabelle eingetragen werden sollen. Der Eintrag an sich ist nicht das Problem, sondern das der Eintrag das aktuelle Eintragsdatum mit der Monatszeile vergleicht und dort dann die Daten in die richtige Zeile schreibt. Kann mir jemand da helfen komme irgendwie da nicht weiter und im Internet auch nichts vergleichbares gefunden.*


----------



## truckerking (20. März 2019)

hier die UF dafür....


----------



## jerry0110 (20. März 2019)

Wann wird denn der Eintrag gemacht? Ist das Eintragungsdatum das gleich wie der Monat wo es stehe soll?


----------



## jerry0110 (20. März 2019)

Also ich bin ja kein Experte aber ich würde das mit einer Schleife machen. Dann das Feld wo z. B. (01) Januar steht auslesen und dann mit dem aktuellen Datum vergleichen.  Also nur so als Anstoß. Weiß nicht ob es wirklich klappt



```
Dim mydate as date
Dim lastrow as long

lastrow = Worksheets("xxx").Cells(Rows.Count, 1).End(xlUp).Row
mydate = now

for i = 1 to lastrow
    if cells(lastrow, spalte) = "(" & Format(mydate,"MM") & ") " & Format(mydate, "MMMM") Then
        befehl
    End If
Next
```


----------



## truckerking (20. März 2019)

Sorry die Tabelle hat ich wieder einmal zusammen gezogen.

unter 2019 steht der aktuelle Wert (Stand des Zählers)
unter Datum das aktuelle Eintragsdatum (normalerweise 1 x monatlich)
Unter GAS (und andere) stehen die Monate
unter Verbrauch kommt der errechnete Verbrauch des Monats.

Um die Daten der TextBoxen richtig einzutragen brauche ich so was wie eine Abfrage Aktuelles Datum (2Spalte) und vergleich mit Monat (3Spalte) damit dann die Daten für z.B April auch bei April eingetragen werden.

ich habe schon einiges versucht aber nix klappt....


----------



## truckerking (20. März 2019)

jerry0110 hat gesagt.:


> Also ich bin ja kein Experte aber ich würde das mit einer Schleife machen. Dann das Feld wo z. B. (01) Januar steht auslesen und dann mit dem aktuellen Datum vergleichen.  Also nur so als Anstoß. Weiß nicht ob es wirklich klappt
> 
> 
> 
> ...



xxx soll nehme ich an die entsprechende Tabelle enthalten was soll aber für ( - ) rein weil die auch  rot sind.


----------



## truckerking (20. März 2019)

jerry0110 hat gesagt.:


> Wann wird denn der Eintrag gemacht? Ist das Eintragungsdatum das gleich wie der Monat wo es stehe soll?



ja einmal im Monat wird der Wert (tage verschieden) abgelesen werden und dann soll dieser Wert in entsprechenden Monat (Zeile) eingetragen werden.


----------



## Zvoni (20. März 2019)

```
Dim Monat As Long

    Monat = 11

    Debug.Print Month(Date) 'Den Monat vom heutigen Datum
    Debug.Print MonthName(Month(Date))  'Den Monatsnamen ausgeschrieben vom heutigen Datum
    Debug.Print MonthName(Monat)  'Den Monatsnamen ausgeschrieben vom 11. Monat
    Debug.Print MonthName(Monat, True) 'Den Monatsnamen abgekürzt geschrieben vom 11. Monat
```



> Ergebnis:
> 3
> März
> November
> Nov


----------



## truckerking (20. März 2019)

```
Dim Monat As Long

Monat = 11

Debug.Print Month (Date) 'Den Monat vom heutigen Datum

Next

Dim Z As Long

Z = Cells(Rows.Count, 2).End(xlUp).Row + 1

    Cells(Z, 2) = txtjetzt1

    Cells(Z, 4) = Datum2

    Cells(Z, 3) = txtverbrauch1

    

ThisWorkbook.Worksheets ("Tabelle4")

    .Cells(3, 2).Value = txtjetzt1

    .Cells(3, 4).Value = Datum2

    .Cells(3, 3).Value = txtverbrauch1
    
 End Sub
```



da meckert er bei Date .......warum?


----------



## Zvoni (20. März 2019)

Ich seh ein next ohne for.
Zeig mal die ganze Funktion


----------



## truckerking (20. März 2019)

Das ist alles was es auf click machen soll und das ganze 3 mal in verschiedenen Ausführungen (GAS, STROM, Wasser) jedes als eines Frame soll in diese Daten je in ein eigenes Arbeitsblatt der Arbeitsmappe kopieren. Das ist zumindest der Plan. 
1. Abfrage bzw. vergleich wegen Datum, dann würde er zumindest die anderen daten alle in die richtige zeile kopieren bzw. abspeichern.
Weil leere zeile Suchen hier nichts bring da es ja Datumsbezogen gespeichert wird.
Das Next habe ich eingeben da eine weitere DIM Abfrage folgt. Ich weiß nicht ob das richtig ist. Evtl. habe ich mich da auch verhauen und das muss wieder raus.


----------



## truckerking (20. März 2019)

das ist die komplette Datei


----------



## Zvoni (21. März 2019)

Zum Next/Dim: falsch.
Next ist das abschließende keyword einer For-Schleife 
Dim's kannst du im code setzen wann und wo du willst
Das eine hat mit dem anderen nichts zu tun


----------



## truckerking (21. März 2019)

Ok danke für die Info habe ich so nicht gewusst..... hast Du dir die evtl. Datei angesehen und noch Fehler gefunden (grins). Bin halt kein Fachmann in diesem Bereich, aber er macht Spaß.


----------



## Zvoni (21. März 2019)

Ich hab mir die Datei angeschaut.
Wo soll was gespeichert werden, wenn auf welchen Speichern-Button geclickt wird? (Form Aufstellung)


----------



## truckerking (21. März 2019)

Habe die Form neu ausgerichtet: 
Die einzelnen Teile sind farbig makiert und auch das entsprechende Arbeitsblatt in der Arbeitsmappe
ich hoffe Du kannst das erkennen was zu was gehört. 
Es sollen die Kundendaten mit der Eingabeform vorweg eingeben und gespeichert werden unter Kunde
Der Anbieter ist gespeichert und neue sollen zusätzlich gespeichert werden in Anbieter
Vertragsnummmer und Zählernummer sind je einzeln einzugeben und abzuspeichern.
Bei den Eingabe zu den Verbrauchern (Strom, Gas, Wsser) sind in der einzeltextbox der aktuelle Stand einzutragen im Frame kann man die Liste (listboxen) einlesen und den ensprechenden Eintrag des Vormonats übernehmen dann berechnen und alles zusammen jeder Part einzeln (also Strom - Gas - Wasser)soll in den ensprechenden tabellen abgespeichert werden. Damit das gelingt soll eine Vorabschleife prüfen ob Leer Zeile ja nein sonst neu Zeile und das Eintrags-Datum(aktuelle) soll mit der Liste abgeglichen werden damit die Speicherung in der richtigen zeile abgespeichert wird. 

Später ist angedacht (noch nicht fertig) das eine Grafik von allen Verbräuchen in neuer UF angezeigt werden soll, und aus excel mit Word ein Serienbrief erstellt wird. Aber das sind doch Träume.....

Anbei sende ich dir die neue datei. Einiges funktioniert einiges nicht bitte wenn Du zeit hast schaue mal drüber und sage mir wo die fehler sind bzw. hilf mir bei der Lösung. 

Gruß Andreas


----------



## Zvoni (22. März 2019)

Heiliger Strohsack.
Hab mir jetzt die Tabellenstruktur angeschaut.
Das wird so nicht wirklich funktionieren.
Wofür sind die schwarzen Zeilen?
Dann hast du in der gleichen Tabelle zwei Jahre drin (2019 und 2020) getrennt durch eine Überschrift.
Gas und Wasser sind gleich, Strom schon wieder anderst.
An deiner Stelle, würde ich das erstmal in Ordnung bringen, und gleich ziehen.
Frage: Werden diese Tabellenblätter überhaupt je benutzt bzw. gedruckt bzw. direkt angeschaut?
Weil de facto was du machen willst ist eigentlich ein Fall für eine Datenbank!

Weiter: Du hast ein Blatt Vetragsnummer, und ein Blatt Anbieter.
In Anbieter gibt es eine Spalte Vertragsnummer (Wozu brauchst du dann ein separates Blatt Vertragsnummer?).
Was machst du, wenn du mehrere Verträge bei dem gleichen Anbieter hast?

Und das ist das, was ich gerade mal auf den ersten Blick gesehen habe.
Als ich gestern gesagt habe, ich habe es mir mal angeschaut, da habe ich nur deine Userform gemeint.
Jetzt habe ich mir aber mal die darunter liegende Struktur angeschaut.
Wenn du keine Datenbank machen kannst (weil dir die Kenntnisse darin fehlen), wird das eine ganz haarige Sache, das in Excel umzusetzen.


----------



## Zvoni (22. März 2019)

So, anbei mal wie ich es machen würde, falls ich sowas in Excel machen müsste.
Ich habe jetzt mal nur die Felder Anbieter, Vertrag und Zähler miteinander verknüpft.
Ich gehe dabei von folgender Voraussetzung aus:
Ein Anbieter kann mehrere Verträge haben/anbieten.
Ein Vertrag kann mehrere Zähler beinhalten.
Ein Zähler ist somit über den Vertrag immer nur einem Anbieter zugeordnet.

Übrigens: So wie ich es verstanden habe, bist du Anfänger.
Tipp: Benenne deine Controls, Variablen etc. richtig.
Lies dir meinen Quelltext durch, und lies mal deinen durch.
Ja, ich habe durchaus die ein oder andere fortgeschrittene Technik angewendet, aber wenn du was lernen willst, dann gleich richtig.


----------



## truckerking (22. März 2019)

Danke für deine super Meinung dazu, ich ja auch schlecht wenn man viele verschiedene Ansätze in I-Net findet. Aber nix wirklich so wie man es sich vorstellt funktioniert.
Ich werde mir deinen Vorschlag sehr gerne anschauen......

Gruss Andreas 
Schönes Wochenende wünsche ich dir.


----------



## truckerking (1. April 2019)

Hi, ich habe erst jetzt zeit gefunden mir deinen Quelltext anzuschauen, ich war auf einem wichtigen Lehrgang. Wie Du schon festgestellt hast bin ich in dem Bereich sicher blutiger Anfänger, als ich deinen Code gesehen habe dachte ich mir nur was ist das ich habe das zwar von deiner berichtsweise verstanden, nur den Code der war wie die EIGER NORDWAND ........   Ich hoffe Du verstehst was ich dir damit sagen möchte. Das ist PROFIARBEIT, bis ich da bin dauert das wohl noch ein paar Jährchen.... Gruss Andreas


----------

