Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert in nächste leere Zelle schreiben...

Wert in nächste leere Zelle schreiben...
31.07.2014 16:14:00
Michael
Hallo,
bin neu hier (gerade reingestolpert) und habe gleich mal 'ne Excel-Frage (was sonst):
ich habe mehrere Tabellenblätter (z.Z. 14), in die ich Preise (zur Ermittlung des Durchschnittspreises) eintrage. Jedes Gerät hat eine eigene 'Ausgabezelle', welche den entsprechenden Durchschnittspreis anzeigt. Jedoch muß ich bislang immer bis zur letzten freien Zelle der entsprechenden Spalte runterscrollen, um einen weiteren Wert einzutragen...
nun die Frage:
wie kann ich es erreichen, immer (pro Gerät) eine bestimmte Zelle als 'Eingabezelle' zu verwenden? Der eingegebene Wert soll dann (nach drücken der 'ENTER'-Taste) in die jeweils nächste freie Zelle der entsprechenden Spalte eingetragen werden und anschließend die 'Eingabezelle' wieder gelöscht werden. Ich hatte diesbezüglich ein (oder mehrere) Makro(s) im Sinne... mal 'n Beispiel: Zelle C3 soll die Eingabezelle sein: Wert reinschreiben, ENTER drücken, Wert aus C3 wird in die erste freie Zelle der Spalte C kopiert und der Inhalt von C3 sogleich wieder gelöscht (C3 ist leer). Wie ließe sich soetwas realisieren?
Für Antworten bedanke ich mich schonmal im Voraus ind verbleibe mit frdl. Gruß
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert in nächste leere Zelle schreiben...
31.07.2014 16:52:39
Beverly
Hi michael,
das geht z.B. mit folgendem Code im Codemodul des Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzte As Long
If Target.Address = "$C$3" Then
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows. _
Count)
Cells(lngLetzte + 1, 3) = Target
Target.ClearContents
End If
End Sub


AW: Damit das funktioniert...
31.07.2014 17:47:10
Daniel
...sollte man noch die Application.EnableEvents ergänzen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzte As Long
If Target.Address = "$C$3" Then
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows.  _
_
Count)
Application.EnableEvents = False
Cells(lngLetzte + 1, 3) = Target
Target.ClearContents
Application.EnableEvent = True
End If
End Sub
Sich selbst aufrufende Eventmakros sind nur äusserst selten sinnvoll.
Gruß Daniel

Anzeige
Das ist korrekt...
31.07.2014 18:39:51
Beverly
... - hatte den Code ohne zu testen gepostet, sonst wäre mir das aufgefallen. ;-)


AW: Das ist korrekt...
31.07.2014 19:34:29
Michael
Zunächst "Danke" an Beverly und Daniel, ich werde diesen Vorschlag ausprobieren und dann berichten...
Gruß, Michael

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige