Hallo Markus,
Dim TBSpaltea(10) As String
Wo wird den TBSpaltea() gefüllt? So wie’s dasteht, ist der
Array leer.
Das Füllen übernimmt man selber in der Userform. Wenn man den Annehmen-Button klickt, wird erst der Code ausgeführt.
Und: Wo ist answer definiert?
Ich habe die unrelevanten Teile des Codes rausgenommen Werd ihn unten aber nochmal anhängen.
Dein Do steigt bei i=25 aus. Dann ist das doch eher eine Sache
für For. Deshalb würde ich die Struktur so ändern:
Jain, es war so eine Art Notlösung. Wenn ich mich verrechne sollte er spätestens nach 25 Text-Boxen aufhören sie durchzugehen. Normalerweise stoppt aber folgender Teil die Schleife:
Do Until UFNeueTabelle.Width - (i + 1) \* 80 - 8 = 0
Private Sub CBAnnehmen_Click()
If MsgBox(„Die aktuelle Tabelle wird unwiederruflich
gelöscht!“, _
vbOKCancel+vbDefaultButton2, „Achtung!“)=vbOK Then
'Abbrechen aktivieren
For i = 1 to 25
If UFNeueTabelle.Width - i * 80 - 8 = 0 then _
Cells(1, i) = TBSpaltea(i)
Next i
UFNeueTabelle.Hide
End If 'MsgBox
End Sub
Der Fehler bei TBSpaltea() ist natürlich noch nicht beseitigt.
Gruß
GURKE
Dim TBSpalte(10) As Object
Dim i As Integer
Dim answer as Integer
Private Sub CBAnnehmen\_Click()
Answer = MsgBox("Die alte Tabelle wird unwiederruflich gelöscht!", vbOKCancel, "Achtung!")
If Answer = 1 Then
i = 1
Löschen
Do Until UFNeueTabelle.Width - (i + 1) \* 80 - 8 = 0 Or i = 25
Cells(1, i) = TBSpalte(i).Text
i = i + 1
Loop
If CBAnzPreGes.Value = True Then
i = i + 1
Cells(1, i) = "Anzahl"
i = i + 1
Cells(1, i) = "Preis"
i = i + 1
Cells(1, i) = "Gesamtpreis"
End If
Range(Cells(1, 1), Cells(1, i)).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Range(Cells(1, 1), Cells(3, i)).Select
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
UFNeueTabelle.Hide
End If
End Sub