1.7k Aufrufe
Gefragt in Tabellenkalkulation von
mein problem ist das ich nicht weiß wie ich das jetzt hin kriege das die eingaben auf ein anderes arbeitsblatt kommen in der selben Datei

Die eingabe ist im Tabellenblatt Eingabe(Tabelle1)
und die Daten sollen im Tabellenblatt Datensatz (Tabelle2) sein

hier mal kurz die formel mit der ich nicht weiter kommen


Sub Daten_eintragen()
Dim Zeile
'nur wenn in B3 und D3 etwas drinsteht dann eintragen
If [b3] <> "" And [d3] <> "" Then
'Blattschutz aufheben
ActiveSheet.Unprotect

Range("A65536").End(xlUp).Select
' + 1, damit nicht immer das selbe überschrieben wird
Zeile = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) + 1
'Daten eintragen
Cells(Zeile, 1) = [b3]
Cells(Zeile, 2) = [d3]
Cells(Zeile, 3) = [b5]
Cells(Zeile, 4) = [d5]
Cells(Zeile, 5) = [b7]
Cells(Zeile, 6) = [d7]
Cells(Zeile, 7) = [b9]
Cells(Zeile, 8) = [d9]
Cells(Zeile, 9) = [b11]
Cells(Zeile, 10) = [d11]
Cells(Zeile, 11) = [b13]
Cells(Zeile, 12) = [d13]
'Eingaben löschen
[b3:b13] = ""
[d3:d13] = ""
'letzte Zeile in sichtbaren Bereich holen
Cells(Zeile, 1).Select
Else
MsgBox "Bitte Namen eintragen"
End If
'Blattschutz aktivieren
ActiveSheet.Protect
End Sub

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
in Deinem CVode fehlt der Name der anderen Tabelle vor Cells().
bei der ermittlung der letzten Zeile auch.

Gruß Hajo
0 Punkte
Beantwortet von
kannst du mir ein beispiel an meinen code geben ich stehe total aufen schlauch
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das die schreibweis[B3] die langsamste ist ist Dir schon klar.

Option Explicit

Sub Daten_eintragen()
Dim Zeile
'nur wenn in B3 und D3 etwas drinsteht dann eintragen
If [b3] <> "" And [d3] <> "" Then
'Blattschutz aufheben
With Worksheets("Tabelle2")
.Unprotect
' + 1, damit nicht immer das selbe überschrieben wird
Zeile = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
'Daten eintragen
.Cells(Zeile, 1) = [b3]
.Cells(Zeile, 2) = [d3]
.Cells(Zeile, 3) = [b5]
.Cells(Zeile, 4) = [d5]
.Cells(Zeile, 5) = [b7]
.Cells(Zeile, 6) = [d7]
.Cells(Zeile, 7) = [b9]
.Cells(Zeile, 8) = [d9]
.Cells(Zeile, 9) = [b11]
.Cells(Zeile, 10) = [d11]
.Cells(Zeile, 11) = [b13]
.Cells(Zeile, 12) = [d13]
'Eingaben löschen
[b3:b13] = ""
[d3:d13] = ""
'letzte Zeile in sichtbaren Bereich holen
'Blattschutz aktivieren
.Protect
End With
Else
MsgBox "Bitte Namen eintragen"
End If
End Sub


Gruß Hajo
0 Punkte
Beantwortet von
dank dir jetzt trägt er es im anderen Blatt ein aber er trägt es einfach mitten drinne ein und nicht von oben nach unten
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
es wird die Lettzte Zelle in Spalte A ermitelt und da wird es eingetragen.

Gruß Hajo
0 Punkte
Beantwortet von
Dank dir hab ihrgentwas falsch übernommen
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Punkte sind klein, haben aber in VBA viel zu sagen.

Gruß Hajo
...