online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Katsura vom 01.02.2022, 14:20 Options

Eintragen von Daten per UserForm in eine Tabelle und späteres Ergänzen

Hallo. Ich hätte hier ein etwas komplexes Problem.
Ich hab mir eine Userform gebastelt, die den Ablauf der Ein- und Ausfahrten von LKWs etwas vereinfachen soll.
Sie ist zweiseitig (Multiseitenobjekt).
Bild Einfahrt
Bild Ausfahrt

Auf der einen Seite gibt man die neuen Daten von LKW ein, die reinfahren, auf der zweiten Seite gibt man die Daten von LKWs ein, die schon da sind und wieder rausfahren.
Wenn ich den Speicherbutton drücke, werden die Daten nochmal in ausgegrauten Textboxen angezeigt und die Daten werden auch hübsch in die vorgesehenen Tabellenfelder eingetragen, soweit funktioniert das Ganze auch schon einwandfrei...

Allerdings komme ich jetzt an meine Grenzen, denn wenn der LKW das Gelände verläßt, sollte keine neue Zeile in der Tabelle erstellt werden, sondern die Zeile, wo der LKW reingefahren ist, muß um die neuen Daten ergänzt werden.
Eine Zeile ist in etwa so formatiert:
ZeitIN, ZeitOUT, Kennzeichen, Spedition, Container1IN, Container2IN, Container1OUT, Container2OUT

Beim Eintragen werden ZeitIN, Kennzeichen, Spedition, Container1IN, Container2IN ausgefüllt.
Beim Austragen wird dann nach Kennzeichen gesucht und die drei anderen Werte noch ergänzt.
Ein weiteres Problem ist, daß manche LKW mehrmals reinfahren und das Such-Makro doch bitte nur die neueste Einfahrt anspringt, damit bereits abgeschlossene Fahrten nicht überschrieben werden.
Kurz gesagt: in sich funktioniert die UserForm, aber es hapert noch an der Interaktion mit der Tabelle... :-)
Und hier sind dann Spezialisten gefragt, diese Aufgabenstellung übersteigt mein Können bei Weitem... ^_^'


Antwort schreiben

Antwort 1 von Hajo_Zi vom 01.02.2022, 14:40 Options

Hallo Katsura,

ich hätte das Kennzeichen mit Find() gesucht bis ich die Zeile habe wo der zweite Teil noch niht gefüllt ist.

Gruß Hajo

Antwort 2 von Katsura vom 01.02.2022, 15:11 Options

das ging ja fix... ^^

also quasi erst das Kennzeichen finden, und dann nachschaun lassen, ob da schon 'ne abfahrtszeit drinsteht und wenn nicht, dann die Daten in die Felder eintragen, ja? Und wenn das Aus-Zeitfeld schon gefüllt ist, dann Suche wiederholen...
okay, aber wie schreib ich das? Dazu müßte ich ja wissen, wie man Tabellenzellen abfragt...


if  Cell(treffer).Value = "" Then
'Code für Tabellenteile füllen
else
'Code für Suche wiederholen
End If


So ungefähr stell ich mir die Arbeitsweise vor, allerdings kenn ich die Befehle ned wirklich, da ich in meiner Schulzeit nur mit QBasic rumprogrammierte... ^^'

Antwort 3 von Hajo_Zi vom 01.02.2022, 15:22 Options

Halo Katsura,

hier mal ein orhandener Code der angepast werden muss.

Sub Find_mehrmals()
'*************************************************
'* H. Ziplies                                    *
'* 24.11.08                                      *
'* http://Hajo-Excel.de                          *
'*************************************************
    Dim RaFound As Range
    Dim FirstAddress As String
    Dim Search As String
    Dim LoLetzte As Long
    Dim LoI As Long
    Dim ByMldg As Byte
    Search = Worksheets("Tabelle2").Range("A1")
    With Worksheets("Tabelle1")
        LoLetzte = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
        '   von Peter Haserodt
            Set RaFound = .Range("A1:A" & LoLetzte).Find(Search, .Range("A" & LoLetzte), , xlWhole, , xlNext)
        '   *****
            If RaFound Is Nothing Then Exit Sub  'falls nicht gefunden wird sub verlassen
            If MsgBox("Gefunden in Zelle " & RaFound.Address(0, 0) & " ist dies richt richtige Zelle !!!" _
                , vbYesNo + vbQuestion, "Abfrage") = 6 Then
                RaFound.Interior.ColorIndex = 3
            Else
                FirstAddress = RaFound.Address
                Do
                    Set RaFound = .Range("A1:A" & LoLetzte).FindNext(RaFound)
                    If RaFound.Address = FirstAddress Then Exit Sub
                    If MsgBox("Gefunden in Zelle " & RaFound.Address(0, 0) & " ist dies richt richtige Zelle !!!" _
                        , vbYesNo + vbQuestion, "Abfrage") = 6 Then
                        RaFound.Interior.ColorIndex = 3
                        Exit Do
                    End If
                    If RaFound.Row = LoLetzte Then Exit Do
                    LoI = LoI + 1
                Loop
            End If
    End With
    Set RaFound = Nothing
End Sub


Gruß Hajo

Antwort 4 von Katsura vom 01.02.2022, 15:35 Options

okay, das sieht nach viel Arbeit aus, aber ich denke, daß ich es damit schon hinkriegen werde. Ich muß ja im Endeffekt nur die Msgbox-Abfrage durch eine Abfrage nach "ist in Outtime.Value was drin oder ned?" ersetzen, richtig? Und natürlich die zu durchsuchende Tabellenspalte ändern, klar. :)
Auf jeden Fall schonmal vielen Dank für die Hilfe bis jetzt, das hat mir auf jeden Fall schonmal weitergeholfen!
Falls ich trotzdem Schwierigkeiten hab, meld ich mich wieder. ^^'

Antwort 5 von Katsura vom 04.02.2022, 00:34 Options

Hmm, so wie der Code dasteht, sucht er mir die leeren Zellen in der Spalte A und fragt nach jedem Treffer, ob's paßt, ja?
Jetzt würde mich noch interessieren, wie ich nach einer Zeichenfolge suche, die ich in ein Textfeld eingegeben habe. Soll
heißen, ich tipp z. B. ein Nummernschild ein und der PC schaut in der betreffenden Spalte nach, ob's das da gibt. Wenn ja, dann
guggt er, ob in der gleichen Zeile die Ausfahrtszeit noch fehlt und trägt diese dann ein. Das is der Knackpunkt an dem ich
immernoch hänge... ^_^'

Antwort 6 von Hajo_Zi vom 04.02.2022, 08:04 Options

Hallo Katsura,

Search =Textbox1
Set RaFound = .Range("A1:A" & LoLetzte).Find(Search, .Range("A" & LoLetzte), , xlPart, , xlNext)

Gruß Hajo

Ähnliche Themen

Jaresplaner Automatisch daten eintragen
pepe71  24.07.2008 - 16 Hits - 12 Antworten

UserForm: anzeigen einer tabelle
da_manuu  31.01.2009 - 127 Hits - 3 Antworten

Daten von UserForm in Kalender übertragen
--dlb--  23.03.2009 - 366 Hits - 10 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026