Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform Textbox Anzeigen

Userform Textbox Anzeigen
26.03.2014 10:30:48
Ludmila
Hallo,
ich bin neu hier und habe eine Datei hochgeladen, weil
mein Problem schwer zu beschreiben ist.
Generell sollen die Daten von Spalten in TextBoxen einer UF eingelesen werden.
Danke und Gruß
Sigi
https://www.herber.de/bbs/user/89848.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Textbox Anzeigen
26.03.2014 18:42:49
Dieter
Hallo Sigi,
du machst dir das Leben recht kompliziert.
In der Funktion "Ang_Formular" verkettest du alle Texte (kurz und lang) bis zum vorletzten in der Variablen "strKurzTextG" und dann noch einmal alle Texte (kurz und lang) vom zweiten bis zum letzten in der Variablen "strLangTextG".
Wenn du die Funktion folgendermaßen änderst, sollte es gehen:
Private Function Ang_Formular()
' Angebotsdaten anzeigen
On Error Resume Next
Dim A As Integer
Dim strANrG As String
Dim strKurzTextG As String
'Dim strLangTextG As String
Dim varMengeG As Variant
Dim strEinheit(500) As String
Dim strEinheitG As String
Dim varEprG As Variant
Dim varGPrG As Variant
Dim varGPr(500) As Variant
Dim strANr(500) As String
Dim strKurzText(500) As String
'Dim strLangText(500) As String
Dim strTexteG As String
Dim varMenge(500) As Variant
Dim varEpr(500) As Variant
Dim varNetto As Variant
Dim varBrutto As Variant
Dim intPosNr As Integer
' Werte zuordnen
loEnde = ThisWorkbook.Sheets("Zwischenspeicher").Cells(Rows.Count, 1).End(xlUp).Row
intPosNr = ThisWorkbook.Sheets("Zwischenspeicher").Cells(1, 10)
A = 1
If intPosNr  "" Then
For ii = 1 To loEnde
strANr(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 1)
varMenge(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 2)
varMenge(ii) = FormatNumber(varMenge(ii), 2)
strEinheit(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 3)
strKurzText(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 4)
varEpr(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 5)
varEpr(ii) = FormatNumber(varEpr(ii), 2)
'          strLangText(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A + 1, 4)
If varMenge(ii)  "" And varEpr(ii)  "" Then
varGPr(ii) = varMenge(ii) * varEpr(ii)
varGPr(ii) = FormatNumber(varGPr(ii), 2)
End If
A = A + 1
Next ii
strKurzText(loEnde + 1) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde + 1, 4)
End If
' Ausgabe Angebot-Positionen
For ii = 1 To intPosNr
If ii 
Viele Grüße
Dieter

Anzeige
AW: Userform Textbox Anzeigen
27.03.2014 10:23:09
Ludmila
Hallo Andreas,
Danke für Deine Hilfe!
Es funktioniert einwandfrei.
Gruß
Sigi

AW: Userform Textbox Anzeigen
27.03.2014 11:36:46
sigi
Hallo Dieter,
zuerst einmal entschuldige die Anrede, ich weiß nicht wieso ich auf Andreas gekommen bin.
Ich habe nochmals eine Frage, wenn ich nämlich die TextBox Langtext, die ja einen Zellenumbruch hat dann wird der Text nicht richtig angezeigt.
Danke, Gruß Sigi
https://www.herber.de/bbs/user/89874.xlsm

AW: Userform Textbox Anzeigen
28.03.2014 20:39:15
Dieter
Hallo Sigi,
ich war unterwegs und kann dir leider erst jetzt antworten.
Wenn du in der Prozedur "Ang_Formular" die Zuordnung zur Variablen "strTexte" folgendermaßen machst
strTexte = strTexte & Replace(ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 4), vbNewLine, " ") & vbLf

dann sollten die Zeilensprünge raus sein.
Zu deiner Frage zum Kontextmenü:
Ich erhalte unter Excel 2007 und unter Excel 2013 bei einem Rechtsklick auf eine Zelle deiner Arbeitsmappe ein ganz normales vollständiges Kontextmenü.
Viele Grüße
Dieter

Anzeige
AW: Userform Textbox Anzeigen
29.03.2014 06:27:27
sigi
Hallo Dieter,
vielen Dank erstmal für Deine Hilfe!
Aber kannst Du mir noch sagen wo ich Deinen Vorschlag einordnen muss,
da ich keine Variablen mit strTexte habe.
Danke!
Gruß
Sigi
' strTexte = strTexte & Replace(ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 4), vbNewLine, " ") & vbLf
Private Function Ang_Formular ()
A = 1
If intPosNr  "" Then
For ii = 1 To loEnde
strAnr(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 1)
varMenge(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 2)
varMenge(ii) = FormatNumber(varMenge(ii), 2)
strEinheit(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 3)
strKurzText(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 4)
varEpr(ii) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(A, 5)
varEpr(ii) = FormatNumber(varEpr(ii), 2)
If varMenge(ii)  "" And varEpr(ii)  "" Then
varGPr(ii) = varMenge(ii) * varEpr(ii)
varGPr(ii) = FormatNumber(varGPr(ii), 2)
End If
A = A + 1
Next ii
strKurzText(loEnde + 1) = ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde + 1, 4)
End If
For ii = 1 To intPosNr
If ii 

Anzeige
AW: Userform Textbox Anzeigen
29.03.2014 09:41:16
Dieter
Hallo Sigi,
in deiner Datei 89874.xlsm sieht die Prozedur "Ang_Formular" anders aus. In ihr kommt die Variable "strTexte" vor.
Mit meinem Änderungsvorschlag sieht das so aus:
Private Function Ang_Formular()
' Angebotsdaten anzeigen
On Error Resume Next
Dim strANr As String
Dim strEinheit As String
Dim strTexte As String
Dim varMenge As Variant
Dim varEpr As Variant
Dim varGPr As Variant
loEnde = 1
Do Until IsEmpty(ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 4))
strANr = strANr & ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 1) & vbLf
varMenge = varMenge & ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 2) & vbLf
strEinheit = strEinheit & ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 3) &  _
vbLf
strTexte = strTexte & Replace(ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 4), _
vbNewLine, " ") & vbLf
varEpr = varEpr & ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 5) & vbLf
varGPr = varGPr & ThisWorkbook.Sheets("Zwischenspeicher").Cells(loEnde, 6) & vbLf
loEnde = loEnde + 1
Loop
'        varMenge = FormatNumber(varMenge, 2)
'        varEpr = FormatNumber(varEpr, 2)
'        varGPr = FormatNumber(varGPr, 2)
txtAngGesPos.Text = Left(strANr, Len(strANr) - 1)
txtAngGesMenge.Text = Left(varMenge, Len(varMenge) - 1)
txtAngGesEinheit.Text = Left(strEinheit, Len(strEinheit) - 1)
txtAngGesTexte.Text = Left(strTexte, Len(strTexte) - 1)
txtAngGesEP.Value = Left(varEpr, Len(varEpr) - 1)
txtAngGesGP.Value = Left(varGPr, Len(varGPr) - 1)
End Function
Viele Grüße
Dieter

Anzeige
AW: Userform Textbox Anzeigen
31.03.2014 04:29:02
sigi
Hallo Dieter,
ich habe jetzt die Function eingefügt, doch leider hat sie nicht den gewünschten Effekt.
Die Positionsnummern, Menge und Einheit verschieben sich nicht so, das die gewünschte Position
zum Text passt.
Ferner habe ich festgestellt, dass ich nicht scrollen kann, wenn die TextBoxen voll sind.
Ich glaube hier habe ich mit zuviel vorgenommen.
Werde mein Formular nochmals überdenken.
Danke!
Gruß
Sigi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige