Office: CodeModule aufrufen / Laufzeitfehler

Helfe beim Thema CodeModule aufrufen / Laufzeitfehler in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe ein kleines Problem, wo ich als Laie den Grund nicht verstehe. Ich habe eine Arbeitsmappe, wo bei Knopfdruck ein neues... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Khelben, 24. Februar 2010.

  1. Khelben Erfahrener User

    CodeModule aufrufen / Laufzeitfehler


    Hallo,

    ich habe ein kleines Problem, wo ich als Laie den Grund nicht verstehe.

    Ich habe eine Arbeitsmappe, wo bei Knopfdruck ein neues Arbeitsblatt erstellt wird und dann auch per Makro mit Daten gefüllt wird. So weit, so gut. Nun soll das Arbeitsblatt aber auch automatisch mit einem Makro versehen werden, indem ich den Code über das CodeModul eingebe.
    Hierfür benutze ich folgendes Makro:

    Code:
    Sub markierung()
    Dim oVBProject As VBComponent
    
    Dim name As String
    
    name = ActiveSheet.CodeName
    Set oVBProject = ThisWorkbook.VBProject.VBComponents(name) ' Wir greifen auf das Projekt dieser Arbeitsmappe zu
    With oVBProject.CodeModule
            .InsertLines .CountOfLines + 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
            .InsertLines .CountOfLines + 1, "   Zeile = Activesheet.Cells.Find(" & Chr(34) & "*" & Chr(34) & ", [A1], , , xlByRows, xlPrevious).Row"
            .InsertLines .CountOfLines + 1, "   Spalte = ActiveSheet.Cells.Find(" & Chr(34) & "*" & Chr(34) & ", [A1], , , xlByColumns, xlPrevious).Column"
            .InsertLines .CountOfLines + 1, "   Spalte_1 = Split(Cells(1, Spalte).Address, " & Chr(34) & "$" & Chr(34) & ")(1)"
            .InsertLines .CountOfLines + 1, "   If Not Intersect(Target, Range(" & Chr(34) & "A1:" & Chr(34) & " & Spalte_1 & Zeile)) Is Nothing Then"
            .InsertLines .CountOfLines + 1, "       If ActiveCell.Interior.ColorIndex = xlNone Then"
            .InsertLines .CountOfLines + 1, "           Answer = MsgBox(" & Chr(34) & "Do you want to mark this maintenance as done" & Chr(34) & ", vbQuestion + vbYesNo, " & Chr(34) & "???" & Chr(34) & ")"
            .InsertLines .CountOfLines + 1, "           If Answer = vbYes Then"
            .InsertLines .CountOfLines + 1, "               UserForm6.Show"
            .InsertLines .CountOfLines + 1, "               With ActiveCell.Interior"
            .InsertLines .CountOfLines + 1, "                   .ColorIndex = 4"
            .InsertLines .CountOfLines + 1, "               End With"
            .InsertLines .CountOfLines + 1, "           End If"
            .InsertLines .CountOfLines + 1, "       End If"
            .InsertLines .CountOfLines + 1, "   End If"
            .InsertLines .CountOfLines + 1, "End Sub"
    End With
    End Sub
    Wenn ich jetzt das Makro aber das erstemal nach dem Start von Excel durchlaufen lasse, bekomme ich einen Laufzeitfehler gemeldet. Gehe ich dann auf Debuggen und beende den Debugger dann ohne was zu ändern und lass dann das Makro nochmal laufen, so funktioniert es einwandfrei.

    Irgendwie verstehe ich den Grund dafür nicht, oder liegt es daran, dass das Arbeitsblat beim Programmstart noch nicht existierte? Allerdings bei weiteren Blättern danach ist es kein Problem mehr.

    Ich kann den Fehler zwar umgehen, indem ich den Fehler mit "On Error Goto" abfange und das Makro automatisch dann nochmal aufrufe, aber mich würde der Hintergrund doch brennend interessieren.

    Gruß
    Christian
     
    Khelben, 24. Februar 2010
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hallo Christian,

    Du hast den Zugriff auf das VBA Projekt schon zugelassen. Ich gebe keine Auskunft wo das eingestelt wird, da dies meiner Meinung nach tief in die Sicherheit geht.

    Gruß Hajo
     
    Hajo_Zi, 24. Februar 2010
    #2
  3. Khelben Erfahrener User
    War das mit dem Zugriff eine Frage oder eine Feststellung?

    Falls es ein Frage war und du meinst die Vertrauenseinstellung bei dem VBA ProjektObjektModell, dann ist die Antwort: ja habe ich zugelassen.

    Was mich halt wundert ist, dass der Fehler nur beim ersten Ausführen nach dem Datei-Öffnen passiert und danach nicht mehr, ohne dass ich bewusst was geändert habe.

    Es handelt sich übrigens um: Laufzeitfehler 9 Index außerhalb des gültigen Bereichs.

    Habe jetzt nochmal getestet:
    Der Fehler tritt nicht mehr auf wenn ich den VBA Editor geöffnet habe, oder ich den Fehler abfange und direkt nochmals ausführen lasse.
     
    Khelben, 24. Februar 2010
    #3
Thema:

CodeModule aufrufen / Laufzeitfehler

Die Seite wird geladen...
  1. CodeModule aufrufen / Laufzeitfehler - Similar Threads - CodeModule aufrufen Laufzeitfehler

  2. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  3. Spalte "Antworten" und "Aufrufe" im Forum vertauscht!

    in Lob, Kritik und Verbesserungsvorschläge
    Spalte "Antworten" und "Aufrufe" im Forum vertauscht!: Hallo ich habe gerade einen Beitrag erstellt, weil ich mich davon täuschen ließ, dass die Beiträge so viele Antworten erhalten hätten, da habe ich aber nicht genau hingeschaut, weil im Forum die...
  4. speichern unter per vba aufrufen

    in Microsoft Excel Hilfe
    speichern unter per vba aufrufen: Hallo zusammen, in meiner Arbeitsmappe ist das Excel Interface ausgeblendet. Da die Datei nur als Vorlage dient, möchte ich über einen Button ins "speichern unter" Menü wechseln, wo sich dann...
  5. Automatisches Starten von Video oder Audio

    in Microsoft PowerPoint Hilfe
    Automatisches Starten von Video oder Audio: Ich habe in einer Präsentation für eine Touchscreen-Präsentation ein Video in einer Folie mit automatischen Start eingebaut. In der Präsentation wird mit Link beliebig oft zu einer Anfangsmaske...
  6. Von einem Register ein Formular im zweiten Register aufrufen

    in Microsoft Access Hilfe
    Von einem Register ein Formular im zweiten Register aufrufen: Hallo! Kann mir bitte jemand bei meinem Problem helfen? Ich habe eine Datenbank mit einem Formular frmUebersicht_alle und einem Formular frmEinzeln. Die Formulare habe ich auf zwei...
  7. Aus Formular Report aufrufen und am Bildschirm anzeigen

    in Microsoft Access Hilfe
    Aus Formular Report aufrufen und am Bildschirm anzeigen: Hallo, ich habe gerade gelernt, wie man aus einem Formular heraus (Formular für den Start der Datenbank) über eine dort angelegte Befehlsschaltfläche ein anderes Formular aufruft. Über das so...
  8. MS Project - API Aufrufe

    in Sonstiges
    MS Project - API Aufrufe: Hallo, ich hab hier das MS Project von MS Office 16 im Einsatz und muss dort in Zukunft ein paar Sachen pflegen. Im Projektplan gibt es einen für jeden Vorgang einen Hyperlink zu einem Task in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden