55 Aufrufe
Gefragt in Tabellenkalkulation von afassa Einsteiger_in (40 Punkte)
Hallo ich stehe nun an zwei Projekten an der gleichen Stelle vor einem Problem

1. Projekt

Mein erstes Problem ist was muss ich machen damit meine Eingabehilfe immer eine neue Zeile anlegt. (Jeder Datensatz eine neue Zeile)

(vereinfachtes Beispiel: Geschlecht des Kinds / Name / Anschrift / Email)

Dann soll das ganze erweitert werden dass Excel wenn man männlich anwählt in Spalte A weiter Schreibt und bei weiblich in Spalte N so dass beide Auflistungen in der gleichen Tabellenblatt sind

2. Projekt

Der Datensatz ist nun Klasse / Geschlecht des Kinds / Name / Anschrift / Email

Jetzt solle aber jede Klasse ein eigenes Tabellenblatt bekommen und dort (im Idealfall) Alphabetisch die Liste geführt werden.

Sprich Hugo Muster klasse 6c in Tabellenbaltt 6c und Christiane Musterbert 11a in dasTabellenblatt 11a

Wäre euch wieder sehr dankbar wenn ihr mir helfen könntet

1 Antwort

0 Punkte
Beantwortet von m-o Profi (20.7k Punkte)

Hallo,

zu deinem 1. Projekt.

Um den eingegebenen Datensatz in eine neue Zeile zu schreiben, musst du die letzte beschriebene Zeile ermitteln.

Mit dem folgenden Code wird z.B. in Spalte A die letzte beschriebene Zeile ermittelt:

ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

Als Code für Spalte A könnte dies so aussehen:

Sub neue_zeile()
Dim lngNZeile As Long

'neue Zeile in Spalte A ermitteln
lngNZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

Cells(lngNZeile, 1) = "Hier ist die neue Zeile"

End Sub

Für Spalte N würde statt der 1 die 14 in den Cells-Anweisungen stehen. Die Zuweisung der Spalte kannst du ja über eine Abfrage des Wertes deines entsprechenden Feldes machen (Combobox?).

Zu deinem Projekt 2

Wenn du die Klasse in deine Eingabemaske einträgst, dann kannst du ja hierdurch auch die einzelnen Blätter zugreifen. Weise die Klasse einer Stringvariable zu und dann kannst du die Daten in die entsprechenden Blätter schreiben.

Hier mal ein kleiner Beispielcode (das Tabellenblatt heißt hier 11a)

Sub klasse11a()

Dim strKlasse As String

strKlasse = "11a"
'alternativ z.B. strKlasse = Combobox1.Value

With Worksheets(strKlasse)
  .Cells(1, 1) = "Testeintrag für Klasse 11a"
End With

End Sub

Gruß

M.O.

...