Brauche Tipps für einen individuellen VBA-Code
Hallo Forumsbesucher,
bräuchte einige Tipps, um ein individuelles Makro zu erstellen.
Folgendes Problem:
Will nur ein Makro schreiben (zum Im/Exportieren)
das soll dann zb. in Tabellenblatt 2 (DieseArbeitsmappe) ein Makro einfügen, der Text steht im Makro selbst oder in einem Tabellenblatt.
Lässt sich das irgendwie verwirklichen?
Gruß Simon
ps. XL03, habe VBA-Vorwissen
Antwort schreiben
Antwort 1 von Beverly vom 02.04.2020, 18:34 Options
Hi,
vielleicht hilft dir dieser Code weiter, mit dem ein neues Tabellenblatt erstellt und Code zum Begrenzen des Scrollbereichs eingefügt wird
Sub Code_erstellen()
Dim inZeile As Integer
Application.DisplayAlerts = False
Sheets.Add
ActiveSheet.Move After:=Sheets(Sheets.Count)
With ThisWorkbook.VBProject.vbComponents(ActiveSheet.Name).CodeModule
If .CountOfLines = 0 Then
.InsertLines 1, "Option Explicit"
.InsertLines 3, "Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)"
.InsertLines 4, " ActiveSheet.ScrollArea = ""A1:K30"""
.InsertLines 5, "End Sub"
Else
.InsertLines inZeile + 3, "Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)"
.InsertLines inZeile + 4, " ActiveSheet.ScrollArea = ""A1:K30"""
.InsertLines inZeile + 5, "End Sub"
End If
End With
Application.DisplayAlerts = True
End Sub
Bis später,
Karin
Antwort 2 von varginator vom 03.04.2020, 08:03 Options
Hallo Karin,
danke für deine Antwort, würde gern schreiben "Funktioniert super", aber es funktioniert leider nicht super. Er bringt mir immer einen Fehler bei:
With ThisWorkbook.VBProject.vbComponents(ActiveSheet.Name).CodeModule
hab ihn schon überall reingesetzt Tabellenblatt, Modul, DieseArbeitsmappe, aber immer bekomm ich einen Fehler:
Der programmatische Zugriff auf das Visual-Basic Projekt ist nicht sicher oder Anwendungs- oder Objektdefinierter Fehler.
Vielleicht mache ich auch irgendwas falsch?
Gruß Simon
Antwort 3 von Beverly vom 03.04.2020, 08:49 Options
Hi Simon,
der Code gehört in ein allgemeines Modul.
Schau mal im VBA-Editor unter Extras -> Verweise. Bei mir sind folgende Verweise gesetzt:
- Visual Basic For Applicaitons
- Microsoft Excel 12.0 Object Library <== Nr. ist abhängig von der Excel-Version
- OLE Automation
- Microsoft Office 12.0 Object Library
Ich habe den Code in Excel97 bis einschließlich Excel2007 getestet - er funktioniert fehlerlos.
Bis später,
Karin
Antwort 4 von varginator vom 03.04.2020, 08:59 Options
Danke für die erneute Antwort,
doch leider funktioniert es immer noch nicht, hab es in ein Modul geschrieben (kopiert) und die Einstellungen der Verweise habe ich auch alle. Muss ich irgendetwas bei der Anzahl der Blätter beachten? Oder muss ich sonst irgendetwas anderes noch zusätzlich einstellen?
Gruß Simon
Antwort 5 von Beverly vom 03.04.2020, 09:37 Options
Hi Simon,
die Anzahl der Tabellenblätter spielt keine Rolle. Wird immer noch derselbe Fehler angezeigt? Hast du das Makro über Extras -> Makro -> Makros aufgerufen oder im VBA-Editor ablaufen lassen? Der Code darf nicht im VBA-Editor gestartet werden.
Bis später,
Karin
Antwort 6 von varginator vom 03.04.2020, 09:40 Options
Hallo Karin,
ja ich habe das Makro im Editor aufgerufen, nur wenn ich es über Extras -> Makro aufrufe, dann kommt der gleiche Fehler (s. oben: der programm.....)
Gruß Simon
Antwort 7 von Beverly vom 03.04.2020, 09:48 Options
Hi Simon,
ich kenne leider deine Arbeitsmappe und deine Bedingungen nicht, deshalb lade ich mal eine Beispielmappe hoch, vielleicht kannst du es daran nachvollziehen
Link zur DateiDie Datei verbleibt 100 Tage auf dem Webspace.
Bis später,
Karin
Antwort 8 von varginator vom 03.04.2020, 09:51 Options
Hallo Karin,
danke für die Datei. Funktioniert aber leider auch nicht.
In meiner Mappe steht nichts außer dein Code im Modul (zu testzwecken) und nichts anderes mehr.
Hoffe du kannst mir nochmal helfen
Gruß Simon
Antwort 9 von Beverly vom 03.04.2020, 09:54 Options
Hi Simon,
die letzte Möglichkeit - ist das VBA-Projekt geschützt?
Bis später,
Karin
Antwort 10 von varginator vom 03.04.2020, 10:01 Options
Hallo Karin,
nein es ist nicht geschützt, habe eine neue Excel-Datei aufgemacht, dann deinen Code in ein Modul kopiert und dann getestet.
Gruß Simon
Antwort 11 von Beverly vom 03.04.2020, 10:10 Options
Hi Simon,
dann bleibt die allerletzte Möglichkeit, dass mit deinem Excel etwas nicht in Ordnung ist. Kannst du es auf einem anderen Rechner testen? Eigenartig ist ja nun doch, dass der Code nur bei dir nicht funktioniert.
Bis später,
Karin
Antwort 12 von varginator vom 03.04.2020, 10:15 Options
Hallo Karin,
danke für deine Mühe und Hilfe, ich kann es erst später an einem anderen PC testen, schreibe aber dann ob es funktioniert hat.
Gruß Simon
Antwort 13 von lorf55 vom 03.04.2020, 10:15 Options
Hallo Simon,
also bei mir funktioniert der Code von Karin auch. Ich kann für jedes zugefügte Blatt im Projektexplorer das Makro anzeigen lassen.
Wie hast du denn getestet?
Gruß
lorf
Antwort 14 von varginator vom 03.04.2020, 12:06 Options
Hallo lorf,
ich habe es im VB-Editor selbst aber auch unter Extras -> Makro getestet.
Gruß Simon