142 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo! Ich habe eine Tabelle wo in Zeile 1 alles zu Schüler 1 steht (10 Spalten); in Zeile 2 Schüler 2 usw. Möchte jetzt als einzelne Schülerübersicht automatisch ein Tabellenblatt pro Schüler erstellen. Es sollen im neuen Blatt immer nur die Werte der nächsten Zeile genommen werden. Tabelle 1, Schüler 1, Werte nur aus Zeile 1; nächste Tabelle automatsch nur mit Werten Zeile 2 usw. Kann mir jemand helfen?

Ich weiß, wie man automatische weitere Tabellen erstellt, nur möchte ich nicht bei 36 Schülern einzeln die Zellen verlinken, damit die Werte der nächsten Zeile genommen werden.

Danke. Elisabeth

9 Antworten

0 Punkte
Beantwortet von

Hallo Elisabeth,

evtl. mit einem Dropdown und sverweis, ich habe Dir eine Beispieltabelle erstellt.

Gruß,

Anton

0 Punkte
Beantwortet von
Danke! Nicht ganz.....

Ich habe ein Tabellenblatt mit 40 Zeilen und ca. 20 Spalten; jede Zeile hat 1 Namen;

habe eine Vorlage (Übersichtsgrafik pro Name); habe einen VBA Code, wo ich frage, wenn neuer Name dazu kommt, ob Vorlage kopiert werden soll, kriegt dann auch gleich der Reiter den Namen usw.

Bis jetzt gebe ich dann aber händisch die genaue Zelle ein, in der die Werte für die Übersichtssgrafik stehen (immer vorheriger Zelle + 1 (z.B. aus c3 wird c4);

jetzt ist meine Frage: wie kann ich in die Vorlage hineinschreiben, dass er beim Kopieren nicht immer die Zelle A1 nimmt, sondern A1+1 (also A2) und das nächste mal A1+2 (also A3)...

Hoffe, jetzt ist es genauer beschrieben....

Danke! Lg E.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Elisabeth,

du könntest das ja in den Code integrieren, mit dem du das Arbeitsblatt kopierst.

Gruß

M.O.
0 Punkte
Beantwortet von
:-) und wie würde der Code ausschauen?

lg E.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Elisabeth,

könntest du deinen vorhandenen Code mal posten, dann kann man ihn entsprechend erweitern? Und in welche Zelle / Zellen soll der Verweis / die Verweise geschrieben werden? Du schreibst oben mal was von A1 und dann von C2 etc.

Wenn ich das richtig verstanden habe, dann wird der neue Schüler immer am Ende der Tabelle eingefügt

Gruß

M.O.
0 Punkte
Beantwortet von

http://supportnet.de/forum/?qa=blob&qa_blobid=2151707071116891472Hi!

Im Anhang das Demo _ gibst du bei der Liste einen weiteren Namen ein: kopiert er Vorlage, und fügt Namen ein, jetzt sollte er auch die Werte der neuen Zeile zum Rechnen nehmen....

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

Hallo Elisabeth,

ersetze den vorhandenen Code im VBA-Projekt des Arbeitsblattes "Liste" durch diesen erweiterten Code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Dim Fehler As Integer, ws As Object
  On Error GoTo Fehler
  Application.ScreenUpdating = False
  If Target.Row >= 3 _
      And Target.Column = 1 _
      And Target.Cells.Count = 1 _
      And Target.Range("A1").Value <> "" Then
    If MsgBox("Tabellenblatt mit Name """ & Target.Value & """ anlegen ?", _
        vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
      For Each ws In ActiveWorkbook.Sheets
        If ws.Name = Target.Value Then
          MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
          Target.Select
          GoTo ende
        End If
      Next
      Worksheets("Vorlage").Copy Before:=Worksheets("Vorlage")
      Fehler = 1
      With ActiveSheet
        .Name = Target.Value
        'Formeln ins neu kopierte Blatt eintragen
         .Range("C2").FormulaLocal = "=Liste!B" & Target.Row
         .Range("D2").FormulaLocal = "=Liste!C" & Target.Row
         .Range("D2").FormulaLocal = "=Liste!D" & Target.Row
         .Range("F2").FormulaLocal = "=Liste!E" & Target.Row
         .Range("G2").FormulaLocal = "=Liste!F" & Target.Row
       End With
      Fehler = 0
'      Me.Activate
    End If
  End If
  GoTo ende
Fehler:
  Select Case Fehler
    Case 1
      MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
      Application.DisplayAlerts = False
      ActiveSheet.Delete
      Application.DisplayAlerts = True
      Me.Activate
      Target.Select
    Case Else
      MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
  End Select
ende:
  Application.ScreenUpdating = True
End Sub

Gruß

M.O.

0 Punkte
Beantwortet von
Danke! Es funktioniert großartig!!!!!!! Super Hilfe!

glg Elisabeth
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Elisabeth,

vielen Dank für die Rückmeldung.

Gruß

M.O.
...