Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Userform Textbox und Zahl





Frage

Hallo Leute, ich habe folgendes Problem, ich gebe über eine Userform ( Textbox ) einige Werte ein zB. Textbox1=Name; Textbox2=PLZ; Textbox3=Ort wenn ich die Werte eingebe werden die Daten auch in der Tabelle übernomen, ich kann sie aber nicht nach der PLZ sortieren das Funktioniert erst dann wenn ich die PLZ in der Tabelle noch einmal eingebe ( ohne Userform ). Ich habe hier im Forum was gelesen das ich den String umwandeln müßte aber ich weiß leider nicht wie. Ich hoffe es kann mir jemand helfen. schönen Abend Achim

Antwort 1 von fedjo

Hallo,
versuch doch mal die Spalte mit den PLZ als Text zu formatieren.

Gruß
fedjo

Antwort 2 von achims

Hallo fedjo,


Danke für den Tip, hab ich aber auch schon Probiert funktioniert leider auch nicht.


Gruß
Achim

Antwort 3 von fürLau

Hallo

Du soltest die (TextBox)Eingabe in eine Zahl umwndeln, und dann das Sonderformat Postleitzahl(D) zuweisen.

Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.

Antwort 4 von schnallgonz

Hi,
könnte auch schon reichen, den eingefügten Zellinhalt mit 1 zu multiplizieren.
gruß
schnallgonz

Antwort 5 von Primut

Hi,

Umwandlung beispielzweise in Dezimalzahl läuft so:

Cells(1,1).Value=CDec(TextBox1.Value) 


einfach entsprechend angepasst in deinen Code einfügen.

Gruß Primut

Antwort 6 von E^ent

schnallgonz x 1 (er)gibt schnallgonz und nicht "11111111111"

Antwort 7 von achims

Hallo Leute,

sorry ich komme leider nicht weiter, wo müßte ich den den tip von Primut eingeben " Cells(1,1).Value=CDec(TextBox1.Value) ", wenn ich den Code eingebe werden die Daten in der Tabelle übernommen aber es steht nicht die PLZ sondern FALSCH in der Zelle was mach ich falsch.



Gruß und einen schönen Sonntag
Achim

Antwort 8 von fürLau

Hallo
Versuch´ es so:

Option Explicit
Private Sub CommandButton1_Click()
ActiveSheet.Cells(2, 4).Value = CDec(TextBox1.Text)
ActiveSheet.Cells(2, 4).NumberFormatLocal = "\D-00000"
End Sub


Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.

Antwort 9 von achims

Hallo,

sorry, aber wo muß ich den Code einfügen,
ich komme nicht weiter.

Vielen Danke für eure Hilfe.


Gruß
Achim

Antwort 10 von achims

Hallo,

nachfolgend der mein Userform Code in zwei Teile.


Private Sub Daten_übernehmen_Click()
Dim Zeile As Long
´Schleife und Abfrage zum Prüfen ob Datensatz in Tabellenblatt bereits vorhanden
For Wiederholungen_Eintrag = 2 To Range("B65536").End(xlUp).Row

If IDNR.Text = Cells(Wiederholungen_Eintrag, 5) _
And GeräteName.Text = Cells(Wiederholungen_Eintrag, 6) Then

Eintrag_vorhanden = 1
Zeile_Eintrag = Wiederholungen_Eintrag
End If
Next

´Wenn Eintrag bereits vorhanden, die Daten in der entsprechenden Zeile abändern
If Eintrag_vorhanden = 1 Then

Sheets("Geräte-Info").Cells(Zeile_Eintrag, 1) = Kst
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 2) = KstNr
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 3) = GAUA
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 4) = PlatzNr
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 5) = IDNR
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 6) = GeräteName
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 7) = ZulassungsNr
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 8) = Lzvon
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 9) = LZbis
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 10) = GeräteABAUF
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 11) = PlatzNRABAUF
SendKeys "{TAB}"
SendKeys "{TAB}"



´ansonsten Daten in erste leere Zeile eintragen
Else

Zeile_Blatt_2 = Sheets("Geräte-Info").Range("A65536").End(xlUp).Offset(1, 0).Row


Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 1) = Kst
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 2) = KstNr
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 3) = GAUA
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 4) = PlatzNr
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 5) = IDNR
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 6) = GeräteName
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 7) = ZulassungsNr
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 8) = Lzvon
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 9) = LZbis
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 10) = GeräteABAUF
Sheets("Geräte-Info").Cells(Zeile_Blatt_2, 11) = PlatzNRABAUF

SendKeys "{TAB}"
SendKeys "{TAB}"
End If

´Kombinationsfelder "Kst" und "KstNr" leeren
IDNR.Clear
GeräteName.Clear
´Schleife und Abfrage zum erneuten Füllen der ComboBox "KstNr"
For Wiederholungen = 4 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 6)) = 1 Then _
IDNR.AddItem Cells(Wiederholungen, 6)
Next

End Sub

Private Sub Eingabe_beenden_Click()
Unload Me
End Sub

Private Sub IDNR_Change()

GeräteName.Clear

´Schleife und If Abfrage zum Finden von passenden Kstnr zu dem ausgewähleten KstNrn
For Wiederholungen = 2 To Range("B65536").End(xlUp).Row
If IDNR.Text = Cells(Wiederholungen, 5) Then
´gefundene Kstnr in Spalte IV auflisten
Cells(Range("IV65536").End(xlUp).Offset(1, 0).Row, 256) = Cells(Wiederholungen, 6)
End If
Next

´Schleife und If Abfrage zum Füllen der ComboBox "Kst"
For Wiederholungen = 2 To Range("IV65536").End(xlUp).Row
GeräteName.AddItem (Cells(Wiederholungen, 256))
Next

´Aufgelistete Kstnn löschen
Range("IV:IV").ClearContents

End Sub

Antwort 11 von achims

der zweite Teil:

Private Sub PlatzNr_Change()

End Sub

Private Sub UserForm_Initialize()
MsgBox "Bitte zuerst eine IDNR und danach den GeräteName wählen, damit Datensätze angezeigt werden können."
´Schleife zum Füllen der ComboBox "KstNr" ohne Duplikate
For Wiederholungen = 4 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("E2:E" & Wiederholungen), _
Cells(Wiederholungen, 5)) = 1 Then _
IDNR.AddItem Cells(Wiederholungen, 5)
Next
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
´Fehlermeldung, wenn versucht wird, die UserForm über das rote
´Schließenkreuz oben rechts zu schließen
If CloseMode = 0 Then
Cancel = 1
MsgBox "Bitte verlassen Sie das Dialogfeld mit den Schaltflächen.", _
vbOKOnly + vbInformation, "Bitte Schaltfläche betätigen."
End If

End Sub


Private Sub GeräteName_Change()

´Schleife und If Abfrage zum Füllen der restlichen Textfelder
For Wiederholungen_GeräteName = 4 To Range("b65536").End(xlUp).Row

If IDNR.Text = Cells(Wiederholungen_GeräteName, 5) _
And GeräteName.Text = Cells(Wiederholungen_GeräteName, 6) Then


GAUA = Cells(Wiederholungen_GeräteName, 3)
PlatzNr = Cells(Wiederholungen_GeräteName, 4)
Kst = Cells(Wiederholungen_GeräteName, 1)
KstNr = Cells(Wiederholungen_GeräteName, 2)
End If
Next

For Wiederholungen_GeräteName = 4 To Sheets("Geräte-Info").Range("B65536").End(xlUp).Row
If IDNR.Text = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 5) _
And GeräteName.Text = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 6) Then

ZulassungsNr = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 7)
Lzvon = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 8)
LZbis = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 9)
GeräteABAUF = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 10)
PlatzNRABAUF = Sheets("Geräte-Info").Cells(Wiederholungen_GeräteName, 11)
End If
Next

End Sub

wo müsste ich jetzt die änderung einbauen, das es funktioniert.

Gruß Achim

Antwort 12 von fürLau

Hallo

Anhand des Codes ist nicht erkennbar wo eine PLZ TextBox steht. Kannst Du die Arbeits-Mappe veröffentlichen z.B. www.netupload.de ?

Antwort 13 von achims

Hallo,

sorry wenn ich ein wenig für Verwirrung gesorgt habe,
das ist der Code für die zweite Mappe aber es ist egal bei dem Code funktioniert es genau so wenig allerdings handelt es sich hier bei um die PlatzNr und nicht um die PLZ.

in voraus schon mal vielen Dank für eure Hilfe.


Gruß
Achim

Antwort 14 von fürLau

Hallo,
versuchs ´mal so, ersetze

Sheets("Geräte-Info").Cells(Zeile_Eintrag, 4) = PlatzNr

durch

Sheets("Geräte-Info").Cells(Zeile_Eintrag, 4).Value = CDec(PlatzNr.Text)
Sheets("Geräte-Info").Cells(Zeile_Eintrag, 4).NumberFormatLocal = "###00"

Gruß

Antwort 15 von achims

Hallo,

wenn ich die eine Zeile durch die zwei ersetzte kommt leider eine Fehlermeldung und die zwei Zeilen werden Gelb interlegt.


Gruß
Achim

Antwort 16 von fürLau

Hallo

Ohne Kenntniss der Daten wird´s schwer zu helfen. Welchen Wert (Text) enthält denn die PlatzNr ? und ist das überhaupt eine TextBox ? und welcher Fehler (Nummer) tritt auf ?

Gruß

Antwort 17 von CaroS

Hallo achims!

In den angegebenen Code-Stücken gibt es das Makro Private Sub Daten_übernehmen_Click(), in dem die Variable PlatzNr zweimal zugewiesen wird, aber selbst nie einen Wert zugewiesen bekommt, und das Makro Private Sub GeräteName_Change(), in dem sie selbst einen Wert zugewiesen bekommt: PlatzNr = Cells(Wiederholungen_GeräteName, 4), aber ansonsten nicht mehr verwendet wird.

Das wirft Fragen auf, ob überhaupt ein Zusammenhang zwischen den beiden Subs Daten_übernehmen_Click() und GeräteName_Change() besteht, die sich nie gegenseitig aufrufen, wenn ja welcher, welche Funktion hat dabei die Variable PlatzNr? Usw. ...
(Hinzu kommt, dass sie wahrscheinlich nie deklariert wird, wozu denn auch. - Wie wär´s, wenn VBA-Fragen nur noch unter der Voraussetzung angenommen werden, dass Option Explicit verwendet wurde?)

Ich glaube, dass das schon aus diesem Grund nicht funktioniert, es sei denn, es gäbe eine "globale" Deklaration Public Dim PlatzNr as String o. ä., von der hier leider nichts zu lesen war.

Recht ungewöhnlich ist außerdem, dass vom VBA-Debugger gleich zwei Zeilen auf einmal (?) gelb markiert werden. (Könnte auf einen Schreibfehler hindeuten.)

Ansonsten kann ich mich fürLaus Meinung nur anschließen, für die weitere Bearbeitun g wäre es hilfreich, den vollständigen Code und die sonstigen Umstände zu kennen.

Gruß,
CaroS

Antwort 18 von CaroS

Kleiner Fehler: Aus der Public-Deklaration müsste das Dim raus: Public PlatzNr as ...

CaroS

Antwort 19 von achims

Hallo Leute,

sorry, das ich mich jetzt erst wieder melde.
Hatte Arbeitsbedingt keine Zeit mehr mich mit dem Problem zu befassen, werde es aber jetzt am Wochenende wieder in Angriff nehmen.

Schon mal vielen Dank für die Hilfe.


Gruß
Achim

Antwort 20 von achims

Hallo,

Ok es funktioniert jetzt, es war wirklich nur ein Schreibfehler.

Noch mal vielen Dank für eure Hilfe, ich finde es Super was ihr da macht.


Gruß
Achim

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: