Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1640to1644
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
Tabellenblatt Code per VBA schreiben
17.08.2018 10:17:05
Stefan
Ich möchte in ein per VBA Befehl neu erstelltes Tabellenblatt anschließend Code schreiben.
Sub AddCode()
Dim strCode As String
strCode = "Test"
DieseArbeitsmappe.VBProject.VBComponents(Worksheets(1).CodeName).CodeModule. _
InsertLines LineNr + 1, strCode
End Sub
Beim Aufrufen bekommt man diese Fehlermeldung
Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs.
Problem ist, dass das Tabellenblatt zu dem Zeitpunkt zwar schon fertig erstellt ist, aber er "Worksheets(1).CodeName" nicht auslesen kann. Somit kann ich das entsprechende Arbeitsblatt natürlich nicht ansprechen.
Komisch ist auch, dass der Befehl funktioniert, wenn man ihn im Debugger Schritt für Schritt durchgeht. Da kommt dann nur die Meldung "Wechseln in den Haltemodus zu diesem Zeitpunkt nicht möglich." Klickt man dort dann auf Fortfahren funktioniert alles.
Wenn jemand eine Idee hat wie man das Problem lösen kann wäre ich euch sehr dankbar
Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 10:26:35
ChrisL
Hi Stefan
Du nimmst den CodeName aus der aktiven Mappe (fehlende Referenzierung) und wendest es auf DieseArbeitsmappe an.
Sub AddCode()
Dim strCode As String
Dim lngLineNr As Long
strCode = "Test"
lngLineNr = 1
With ThisWorkbook
With .VBProject.VBComponents(.Worksheets(1).CodeName).CodeModule
.InsertLines lngLineNr, strCode
End With
End With
End Sub
cu
Chris
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 10:41:54
ChrisL
noch eine Variante mit einer neuen Mappe...
Sub AddCode()
Dim wkb As Workbook
Dim strCode As String
Dim lngLineNr As Long
strCode = "Test"
lngLineNr = 1
Set wkb = Workbooks.Add
With wkb
With .VBProject.VBComponents(.Worksheets(1).CodeName).CodeModule
.InsertLines lngLineNr, strCode
End With
End With
End Sub

Anzeige
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 10:29:57
Nepumuk
Hallo Stefan,
du musst das erstellen der Tabelle und des Codes per OnTime entkoppeln.
Beispiel in der Routine zum erstellen der Tabelle:
Application.OnTime Now, "AddCode"

Gruß
Nepumuk
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 11:20:23
Stefan
Danke mal für eure Antworten, aber habe immer noch den gleichen Fehler.
Habe hier mal ein kleines File erstellt um es besser zu erkennen.
https://www.herber.de/bbs/user/123389.xlsm
Dort sieht man auch, dass in der MessageBox kein Name ausgegeben wird.
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 11:34:22
Nepumuk
Hallo Stefan,
ich hab es mal umgebaut so dass es funktioniert: https://www.herber.de/bbs/user/123390.xlsm
Gruß
Nepumuk
Anzeige
AW: Tabellenblatt Code per VBA schreiben
17.08.2018 12:17:13
Stefan
Danke, hat zwar damit allein auch nicht funktioniert.
Habe aber jetzt die Lösung gefunden.
Es funktioniert nur, wenn der VB Editor im Hintergrund geöffnet ist.
Stefan

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige