1.3k Aufrufe
Gefragt in Tabellenkalkulation von hwr Einsteiger_in (41 Punkte)
Hallo zusammen,

Betr.: Übergabe aus Userform in Tabelle mit Textbox

ich möchte das beim Click auf einen CommandButton nur Zeilen von
Tabelle 1 ab A14 nach rechts bis N14 und nach unten nur bis A122 nach recht N122
ausgefüllt werden.
Ab A124 erfolgen ander Berechnungen aufgrund der oben eingetragenen
Daten.

4 Antworten

0 Punkte
Beantwortet von
Hi,

Die Problembeschreibung ist, zumindest für mich, nicht ausreichend.
Hast Du denn schon Code für den Button zur Übertragung? Wenn ja, dann wirst Du ja sicher irgendwie die ZeilenNummer für das Einfügen ermitteln. So Du dies tust, könntest Du mit einer einfachen If-Bedingung vor dem Einfügen sicherstellen, dass die ZeilenNummer nich grösser als 122 sein darf. z.B. wie folgt:
.
.
.
With ThisWorkbook.Worksheets("Tabelle1")
If lngZeile > 122 Then MsgBox "Eingabebereich ist voll": Exit Sub
.Range("A" & lngZeile).Value = UserForm1.TextBox1.Value
.Range("B" & lngZeile).Value = UserForm1.TextBox2.Value
.
.
End With
.
.
.


So Du schon eigenen Code für Deinen Button hast, wäre es nicht soo schlecht, diesen hier auch zu posten.

bye
malSchauen
0 Punkte
Beantwortet von hwr Einsteiger_in (41 Punkte)
Hi,

mein Code den ich hatte, hat immer eine leere Zelle gesucht,
bei Eingabe über das Userform wurden dann die Einträge in der Tabelle unterhalb meiner Berechnungen angelegt.

Jetzt fange ich von vorne an,

Private Sub CommandButton1_Click()

Worksheets("Jan").Range("B14") = Me.TextBox1 ' Eingabedatum
Worksheets("Jan").Range("A14") = Me.TextBox11 'Kalenderwoche

End Sub
0 Punkte
Beantwortet von
Hi,

Ich nehme an, Du hast die LeerZeile vom Ende der Tabelle her ermittelt. Wenn Du Schreibst, dass ab Zeile 124 die Berechnungen beginnen, dann würde ich von dort aus nach oben schauen, um die ZielZeile zu ermitteln. Das würde bei mir dann ungefähr aussehen, wie folgt:

Private Sub CommandButton1_Click()

Dim lngZielZeile As Long

With ThisWorkbook.Worksheets("Jan")
lngZielZeile = .Range("A" & 124).End(xlUp).Offset(1, 0).Row 'von erster Berechnung nach oben suchen (Leerzeile)
If lngZielZeile < 14 Then lngZielZeile = 14 'Wenn Ergebnis kleiner 14 dann setze Ziel auf 14
If lngZielZeile > 122 Then MsgBox "Eingabebereich ist voll": Exit Sub 'Wenn >122, Meldung und raus
.Range("A" & lngZielZeile).Value = Me.TextBox11.Value 'KW in Spalte A
.Range("B" & lngZielZeile).Value = Me.TextBox1.Value 'Datum in Spalte B
End With

End Sub


bye
malSchauen
0 Punkte
Beantwortet von hwr Einsteiger_in (41 Punkte)
Hi,

nach einem schnellen Test, sieht das Super aus mit deimem Code,

Vielen Dank

Sollte ich noch Fragen haben, darf ich mich dann wieder an dich wenden.

Gruß

HWR
...