Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Macrorecordercode: - select und ActiveSheet

Macrorecordercode: - select und ActiveSheet
03.08.2005 09:50:39
Klaus
Hallo VBAler!
Nach einigen erfolgreichen (!) eigenen Verbesserungen von Macrorecordercodes macht mir nun nach select das "ActiveSheet" zu schaffen.
Hier der Recorder - Code:


Sub neuDaten()
Sheets("Datenbank").Visible = True
Sheets("Datenbank").Select
Columns("A:AD").Select
ActiveSheet.ShowDataForm
Sheets("Datenbank").Visible = False
Sheets("Eingaben").Select
End Sub


Ich hab
Sheets("Datenbank").columns("A:AD").ShowDataForm und
Sheets("Datenbank").columns("A:AD").ActiveSheet.ShowDataForm
probiert, aber beides hat leider zu Laufzeitfehlern geführt.
Wer mag einen VBA-Anfänger auf seinem Weg zur Erleuchtung unterstützen?
Gruß und Dank,
Klaus M.vdT.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macrorecordercode: - select und ActiveSheet
03.08.2005 10:15:16
Galenzo
Sheets("Datenbank").visible=true
Sheets("Datenbank").ShowDataForm
Viel Erfolg!
AW: Macrorecordercode: - select und ActiveSheet
03.08.2005 10:29:08
Klaus
Hi Galenzo,
Sheets("Datenbank").ShowDataForm macht leider einen Laufzeitfehler.
Ich denke auch, dass die Columns A:AD irgendwie drin vorkommen müssten -- ich kann ja auch ohne Makro über "Daten - Maske" keine DataForm aufrufen, ohne Zeilen (oder zumindest Zellen) zu markieren.
Gruß,
Klaus M.vdT.
AW: Macrorecordercode: - select und ActiveSheet
03.08.2005 10:41:58
Galenzo
Dazu muß jede Spalte eine Überschrift haben.
Wenn du mehrere Bereiche in der Tabelle hast, führt wohl kein Weg an SELECT vorbei, das sich ShowDataForm eine methode von Worksheet ist.
Viel Erfolg!
Anzeige
Ein anderer Weg...
03.08.2005 11:13:51
RolfK
Hallo Klaus,
wenn ich richtig informiert bin benötigt die ...ShowDataForm Methode einen benannten Bereich mit der Bezeichnung "Datenbank" auf die Du aufsetzen kannst.
Beispiel für Deine Umgebung:

Sub EinrichtenDB()
ThisWorkbook.Names.Add Name:="Datenbank", RefersTo:="=Datenbank!" _
& Range("A1:F19").Address
End Sub


Sub neuDaten()
Sheets("Datenbank").Visible = True
Sheets("Datenbank").ShowDataForm
Sheets("Datenbank").Visible = False
Sheets("Eingaben").Select
End Sub

Das erste Makro muss nur einmal laufen, ggf. kannst Du den Bereich ja auch "zu Fuss" über Einfügen/Name/Definieren einrichten. Den Datenbereich musst Du natürlich anpassen.
Rolf
Anzeige
AW: Ein anderer Weg...
04.08.2005 10:04:12
Klaus
Hallo,
ein mit "Datenbank" benannter Bereich? Mein sheet heisst doch schon "Datenbank".
Ich steh grad auf der Leitung.

Sub EinrichtenDB()
ThisWorkbook.Names.Add Name:="Datenbank", RefersTo:="=Datenbank!" _
& Range("A1:F19").Address
End Sub


Zum anpassen muss ich die Range auf ("A:AD") ändern? Woher weiss VBA dass es auf das Kommando Sheets("Datenbank").ShowDataForm diesen Bereich benutzen soll? Ich könnt mir vorstellen, dass da irgendwas in die Richtung sheets("Datenbank").MeinBereich.Showdataform stehen sollte ...
verwirrter Gruß,
Klaus M.vdT.
Anzeige
Nachtrag...
04.08.2005 12:03:40
RolfK
Hallo Klaus,
? ein mit "Datenbank" benannter Bereich? Mein sheet heisst doch schon "Datenbank".
Das macht doch nichts, benannte Bereiche und Blätter sind unterschiedliche Objekte.
? Zum anpassen muss ich die Range auf ("A:AD") ändern?
Ja, richtiger natürlich auch die Zeilen dazu z.B. Range("A1:AD100"), denn die Maske soll ja auch weitere Datensätze hintenanfügen. Ansonsten hättest Du lauter Sätze mit Leerzeilen.
? Woher weiss VBA dass es auf das Kommando Sheets("Datenbank").ShowDataForm diesen Bereich benutzen soll?
Weil es bei entsprechender Einrichtung im Sheet Datenbank nur einen benannten Bereich Datenbank gibt. Die Maske stellt sich dann automatisch richtig ein und verlängert/verkürzt auch die Liste mit Datensätzen nach dem löschen/hinzufügen von Sätzen.
Probier es doch einfach mal manuell in einer neuen Arbeitsmappe aus.
Rolf
Anzeige
AW: Macrorecordercode: - select und ActiveSheet
03.08.2005 11:33:51
Peter
Servus,
versuchs mal so. Um das letzte select zu entfernen, müsste ich wissen was danach kommt.
Sub neuDaten()
With Sheets("Datenbank")
.Visible = True
.Columns("A:AD").ShowDataForm
.Visible = False
End With
Sheets("Eingaben").Select
End Sub

MfG Peter
AW: Macrorecordercode: - select und ActiveSheet
04.08.2005 09:45:41
Klaus
Hi,
er mag das Columns("A:AD").ShowDataForm nicht, Laufzeitfehler.
Zum Verständniss:

With Sheets("Datenbank")
.Columns("A:AD").ShowDataForm
End With

ist doch das gleiche wie
Sheets("Datenbank").columns("A:AD").ShowDataForm ? Denn das hatte ja vorher auch schon nicht funktioniert.
Mit Sheets("Eingaben").Select bin ich mit Makrorecorder zurück zum "ursprünglichem" Arbeitsblatt gewechselt. Wenn ich es schaffe, das Sheets("Datenbank").select zu anfang zu vermeiden, könnte ich das doch eigentlich ganz streichen, oder?
Dank und Gruß,
Klaus M.vdT.
Anzeige

14 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige