Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
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
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nach "Return" in erste Spalte der nächsten Zelle

Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 09:54:52
Frank
Hallo,
ich habe einige kleine Fragen
1) Ich möchte, dass wenn in meine Tabelle in der letzten Spalte (L) ein Wert eingetragen wurde und bestätigt wird, der Cursor in die Spalte (A) der nächsten Zeile springt.
2) Wie kann ich vermeiden, dass Kollegen die mit meiner Datei (Tabelle) arbeiten, über "Alt + F11" in den VBA Editor gelangen und den Code sehen / verändern
3) Wie schreibt man einen Code, der beim öffenen der Datei sofort aktiv ist, und sich auf das ganze Blatt bzw. die Mappe bezieht. Ich meine also, ohne das ich dazu immer über "alt + F8" ein Makro Starten muss. Das wäre ja zum Beispiel für Punkt 1) wichtig.
Danke

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 10:10:37
Peter
Hallo Frank,
sieh dir die beigefügte Mappe an
https://www.herber.de/bbs/user/30742.xls
Im Diese Arbeitsmappe gibt es das Ereignis Workbook_open, da kannst du beim Öffenen deiner Datei schon einiges bewirken.
Im Tabellenblatt 1 habe ich dir ein Mini-Makro eingefügt, das zur Zelle A der folgenden Zeile nach Eingabe in Zeile L springt.
Gegen Neugierige Kollegen hilft ertmal Extras, Schutz und die Vergabe eines Passwortes um deine Makros zu schützen. Wissende knacken das sofort, unwissende haben jedoch keinen Einblick mehr.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 11:01:50
Frank
Hallo Peter,
ich komme nicht klar. In Deiner Mappe klappt das ja, aber in meiner Tabelle wird auf Knopfdruck ca. Zwei mal am Tag ein neues Tabellenblatt angelegt. Ich habe Deinen Code vorne eingefügt. Aber wie auch auf dem ersten Blatt "06.02.06 FZ" funktioniert das nicht. Wenn die Kollegen jetzt ein neues Blatt anlegen (Der Name des Blattes wird aus der Variablen "varWS" bezogen muss das wo eingefügt werden. Ich habe Dir den Code inkl. Deines Codes der vorneweg steht mal beigefügt.
Dieser Zeilensprung soll also auf dem ersten Blatt "06.02.06 FZ" funktionieren und auch in jedem weiteren täglich neu angelegtem Blatt.
Evtl. hast Du hier ja eine Lösung
Bereits jetzt schon vielen Dank für die Mühe
Grüße Frank
Option Explicit

Private Sub Workbook_Open()
Worksheets("06.02.06 FZ").Activate
Range("A" & Range("L65536").End(xlUp).Row).Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 12 Then
Range("A" & Target.Row + 1).Select
End If
End Sub

Sub Schaltfläche3_BeiKlick()
Dim strMsg As String, strtitel As String
Dim strvbantwort As Integer
strMsg = "Möchten Sie wirklich ein neues Tabellenblatt anlegen?"
strtitel = "Neues Tabellenblatt?"
strvbantwort = MsgBox(strMsg, vbYesNo + vbDefaultButton1, strtitel)
If strvbantwort = vbYes Then
Workbooks("Tonnagennachweis Wareneingang.xls").Save
Dim Z As Long
Z = ActiveSheet.UsedRange.Rows.Count
Range(Cells(8, 1), Cells(Z, 1)).EntireRow.Copy
Sheets("Zusammenfassung").Select
Range("A65536").End(xlUp).Select
ActiveCell.Offset(1, 0).PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
Dim varWS As Variant
varWS = InputBox("Bitte geben Sie das heutige Datum und Ihr Kürzel ein")
Worksheets.Add.Name = varWS
Worksheets("Start").Range("a1:l45").Copy _
Worksheets(varWS).Range("a1")
ActiveSheet.UsedRange.Columns("a").ColumnWidth = 20
Columns("b").ColumnWidth = 10
Columns("c").ColumnWidth = 18
Columns("d").ColumnWidth = 10
Columns("e").ColumnWidth = 18
Columns("f:g").ColumnWidth = 14
Columns("h").ColumnWidth = 15
Columns("j:k").ColumnWidth = 13
Else
MsgBox ("Es wird kein Neues Blatt angelegt")
End If
End Sub
Anzeige
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 11:09:53
Peter
Hallo Frank,
dann so:

Private Sub Workbook_Open()
Worksheets(varWS).Activate
Range("A" & Range("L65536").End(xlUp).Row).Select
End Sub

dann wird das in varWS stehend Blatt aktiviert und der Cursor wird in die entsprechende Zelle in Spalte A gesetzt.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 11:48:42
Frank
Hallo,
leider nicht. Das Problem ist: Wo setzte ich den Code hin. Ich habe Ihnen vorne ganz zu beginn eingefügt. Aber es geht nicht. Das ist dass, was ich eingang geschrieben habe, es funktioniert nicht auf der ganzne Mappe. Ich habe hier auch das MS Handbuch zur Excel Programmierung liegen. Damit komme ich aber auch nicht weiter. Man, ist VBA schwer. Wie soll man das jemals lernen.
Grüße Frank
Anzeige
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 13:01:07
Peter
Hallo Frank,
der Code gehört in DieseArbeitsmappe. Alt + F11, links das Projkt suchen, Rechtsklick auf DieseArbeitsmappe, Code anzeigen, in das sich öffnende Fenster das Makro einfügen, Mappe speichern, schließen und erneut öffnen. Dann sollte das Makro ausgeführt werden.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 13:23:39
Frank
Hallo,
nein, ich bekomme es nicht hin. Aber lass gut sein. Dein Code ist richtig und funktioniert ja auch. Nur in meiner Tabelle mit den immer wieder neuen Tabellenblättern nicht. Ich werde mich heute Abend da noch einmal mit Ruhe vorsetzen. Aber Vielen Dank für Deinen Einsatz. Wenn ich es hinbekommen sollte, sage ich Dir Bescheid.
Grüße
Frank
Anzeige
AW: Nach "Return" in erste Spalte der nächsten Zelle
07.02.2006 12:14:49
Harald
Hi und sorry für die Einmischung ;-))
von L nach A würde ich so regeln.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Lrow As Long
If Target.Count > 1 Then Exit Sub
Lrow = Cells(Rows.Count, 12).End(xlUp).Row
If Target.Row = Lrow And Target.Column = 12 Then Target.Offset(1, -11).Select
End Sub

Gruss Harald

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige