Clever-Excel-Forum

Normale Version: VBA - mit Button werte in bestimmte Zellen einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an alle brauch wieder mal ein bisschen Hilfe 16 bei ein “kleines“ Thema das ich habe.
Ist eigentlich in VBA machbar und da bin ich nicht der beste, um es geschmeidig auszudrücken.

Mein Thema:
Bei mehr als 100 Schüler, sollte nur der Code und die Abwesenheit in die obere rechte Ecke schreiben und dann die Trans-Taste drücken,
um den Abwesenheitswert am selben Tag (Spalte) der Heute-Zelle in die Schülerzeile zu verschieben.

Kurzbeschreibung: Wenn ich in der Zelle O2 die Abwesenheitszeit und in AM2 die Schülernummer eingebe,
soll mit dem drücken des Buttons “Trans.“ Soll die eigegebene Abwesenheitszeit von O2
in der dazugehörigen Schülerzeile in dem dazugehörigen Datum im Bereich O6:AS257 eingetragen werden.

Habe auch eine Datei eingefügt mit Beschreibung und Aufbau: [attachment=42662]
 
 
Danke im Voraus für jede Hilfe

78

  Niko
Do solltest erst mal eine richtige dynamsiche normalisierte Tabelle erstellen ohne verbundene Zellen, Farben, beinah nicht anwesende Zeilen, tolle Formatierungen usw. also ohne viel Umstände.
Danke für deine Antwort aber das hilft mir nicht das problem zu lösen in der vohandenen Tabelle...die beibehalten werden soll.
Hallo Niko,

Code:
Sub Rectangle1_Click()
  Cells(5 + Application.Match(Range("AM2").Value, Range(Cells(6, 3), Cells(Rows.Count, 3).End(xlUp)), 0), Range("O5:AS5").Cells(Day(Date)).Column).Value = Range("O2").Value
End Sub

Gruß Uwe
Wow...genau ins Blaue  28
Super einfach und Idioten sicherer code aufbau, so das ich es auch verstehen kann 92 17

Danke.
Hallo Niko,

das (in einfacher Form) habe ich anzubieten.

Sub rectangle1_click()
Dim Schüler As String
Dim Eintrag As Integer
Row = 14 + Day(Date) '    ab Zeile 6 beginnen die Einträge und nach Spalte 14 beginnen die Wochentage

lzl = Range("C6").End(xlDown).Row
For Eintrag = 6 To lzl
'Schüler
    Schüler = Range("AM2")
If Cells(Eintrag, 3) = Schüler Then
  Cells(Eintrag, Row) = Range("O2")
Exit Sub
End If

Next
End Sub


Der Schaltfläche "Trans" ist dieses Makro zugeordnet

Gruß Stephan


Ok, sehe gerade, dass da eine viel bessere Lösung schon da ist. Hat mir wenigstens Spaß gemacht einen Weg zu finden.