Userform
#31
Hallo,

da kann dir nur jemand helfen, der noch eine 32 Bit Version installiert hat da du eine Bibliothek verwendest, welche nicht mit der 64 Bit Version installiert wird und es diese wohl meines Wissens auch nicht für 64 Bit gibt.
Wenn man bei Euch mal die Rechner auf eine neuere Office Version umstellt, ist dieses Projekt nicht mehr nutzbar, da es keine 32 Bit Version mehr gibt.
Deshalb mein gut gemeinter Rat. Baue dies besser so um, dass dein Projekt auch in Zukunft nutzbar ist.

Gruß Uwe
Antworten Top
#32
Die Grundzüge wurden bereits auf 365 getestet und funzen!
Antworten Top
#33
Verwende Multipage in 1 Userform.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#34
erledigt
Antworten Top
#35
@Egon12

eine Nachfrage!

Wenn kein Datensatz in der Tabelle vorhanden ist, speichert er erst in Zeile 3 den ersten Eintrage

Zeile 1 sind die Überschriften.

Code:
Private Sub Speichern()
    Dim i&, arrNeu(1 To 1, 1 To 20), arrCnt(): arrCnt = Array(txt_schadennummer, txt_beschreibung_schaden, txt_schaden_wann, cbHaus_Ort, txt_lagebeschreibung, cbGrund, cbVerursacher, txt_name_verursacher, txt_zeile1_schadenshergang, txt_zeile2_schadenshergang, cbSchadensbeseitigung_durch, txt_firma, txt_zeile1_schadensbeseitigung, txt_zeile2_schadensbeseitigung, txt_zeile1_LDS, txt_zeile2_LDS, txt_datumheute, cbMitarbeiter, txt_datum_erledigung, txt_kosten)
    For i = 1 To UBound(arrCnt) + 1
        If IsDate(arrCnt(i - 1)) Then
            arrNeu(1, i) = CDate(arrCnt(i - 1))
        ElseIf IsNumeric(arrCnt(i - 1)) Then
            arrNeu(1, i) = CDbl(arrCnt(i - 1))
        Else
            arrNeu(1, i) = arrCnt(i - 1)
        End If
        Controls(arrCnt(i - 1).Name) = ""
    Next i
   
    Tabelle1.Cells(Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Resize(1, UBound(arrNeu, 2)) = arrNeu
   
    MsgBox "Die Daten wurden erfolgreich gespeichert!", vbInformation, "Datenspeicherung"
   
    Unload Me
   
    Call Tabelle1.copy_Schadensblatt
   
    Sheets("Firmen").Select
   
    Sheets("Schadensprotokoll").Select
   
End Sub


Was ist da verkehrt?
Antworten Top
#36
Hallo

Schaue dir hier von Alwin Weisangler das ganze an, dort gibt es mittlerweile Beispiele einmal ohne Listbox und einmal mit.
PHP-Code:
https://www.herber.de/forum/archiv/2000to2004/2000749_dynamische_Eingabemaske_aus_unterschiedlichen_Quellen.html#2001062 
Wie snb schon schreibt eine Userform reicht.
Viele Grüße
PIVPQ
Antworten Top
#37
Es geht doch nicht um die UserForm, sondern die Daten in die Tabelle schreiben!
Antworten Top
#38
Hallo

Ja , auch dies klappt eiwandfrei dort.
Viele Grüße
PIVPQ
Antworten Top
#39
erledigt!
Antworten Top
#40
@ PIVPQ,

ich hatte schon Bedenken, ob das überhaupt jemanden interessiert, was ich da hinterlassen hatte.

@ Andreas,

Code:
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row + 1
bedeutet, in den Zellen der Spalte A wird die letzte Zelle mit Inhalt (welcher Art auch immer) gesucht und als Zeilennummer ausgegeben.

Der Mechanismus dahinter ist wie folgt:
Rows.Count ermittelt die letzte Zeile des Tabellenblattes (> 1Mio)
.End springt an die ermittelte letzte Zelle
(xlUp) springt zurück von der letzten Zelle zur nächsten Zelle mit Inhalt
+1 rechnet eine Zeile dazu.

Folglich wird in der Zelle A2 irgendwas enthalten sein, auch wenn du es nicht siehst.
Falls es so sein muss, kann man ja auf eine andere Spalte ausweichen.

Anbei mal noch das von mir nur mit rudimentärer Fehlerbehandlung vervollständigte Ding, was ich bei Herber hinterlassen hatte.

.xlsm   Formular für Listobjekte + Listbox + Filer.xlsm (Größe: 79,25 KB / Downloads: 3)
Es ist natürlich nicht bis ins letzte Detail durchgetestet.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • PIVPQ
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste