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

Copy Code umstellen auf Aktives Blatt

Copy Code umstellen auf Aktives Blatt
13.06.2006 21:55:09
Wolfgang
Hallo,
noch auf der Suche nach einer Möglichkeit, in einem Tabellenblatt hinterlegte Codes (Sub) in ein anderes Tabellenblatt zu kopieren, stieß ich auf untenstehenden Code. Der bewirkt aber offensichtlich, dass die Codes in ein namentlich benanntes Tabellenblatt kopiert werden. Was muß ich umstellen, wenn ich sie aus der Tabelle "Temp" in das jeweils aktive Tabellenblatt der gleichen Arbeitsmappe kopieren möchte? - Ich habe schon verschiedene Versuche gestartet, aber leider ohne Erfolg. Danke schon jetzt Allen wieder für die Hilfestellung.
Grüße - Wolfgang

Sub copy()
Dim i As Integer
Dim scode As String
With ThisWorkbook.VBProject.VBComponents("Temp").CodeModule
scode = .Lines(1, .CountOfLines)
End With
Workbooks("Mappe1").VBProject.VBComponents("Tabelle1").CodeModule.AddFromString scode
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:20:36
Matthias
Hallo Wolfgang,
ungetestet:

ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.AddFromString scode

Gruß Matthias
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:22:54
Uduuh
Hallo,
ersetze
"Tabelle1"
durch
Activesheet.name
Gruß aus’m Pott
Udo

AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:39:08
Wolfgang
Danke Matthias und Udo,
VBA meldet mir bereits bei With ThisThisWorkbook.VBProject.VBComponents("Temp").CodeModule einen Fehler "Der programmatische Zugriff auf das Visual Basic Projekt ist nicht sicher";
Was mache ich falsch?; Ich habe zunächst den Code nach Deinen Hinweisen, Matthias, umgestellt, da ansonsten ja noch der Verweis auf Mappe 1 drin wäre. Hinter Temp befindet sich auch ein Code, der dann eigentlich kopiert werden könnte. Habt Ihr noch eine Idee? - Danke schon jetzt.
Gruß - Wolfgang.

Sub copy()
Dim i As Integer
Dim scode As String
With ThisWorkbook.VBProject.VBComponents("Temp").CodeModule
scode = .Lines(1, .CountOfLines)
ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.AddFromString scode
End With
End Sub

Anzeige
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:42:44
Matthias
Hallo Wolfgang,
Menü Extras, Makro, Sicherheit: Karte "Vertrauenswürdige Quellen":
Haken setzen bei "Zugriff auf Visual-Basic-Projekt vertrauen".
Gruß Matthias
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:49:08
Wolfgang
Hallo Matthias,
danke für den Tip, habe es sofort entsprechend eingestellt, nun kommt an gleicher Stelle wieder eine Fehlermeldung "Laufzeitfehler 9" - Index liegt außerhalb des gültigen Bereichs. Als Laie habe ich keine Ahnung, was das bedeuten mag. Ich nehme an, Du wirst Dir da einen Reim 'drauf machen können. Danke schon jetzt wieder für die Rückmeldung.
Gruß - Wolfgang
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 22:58:48
Matthias
Hallo Wolfgang,
Wenn du den VB-Editor anschaust, siehst in in Projektexplorer links u.a. die Blattmodule. Hier steht in Klammern dahinter der Modulname. Wenn du z.B. Tabelle1 umbenennst in Temp, dann steht da
Tabelle1 (Temp).
Du musst entweder weiter den Namen Tabelle1 verwenden oder du benennst in den Eigenschaften (unten links im VB-Editor) das Codemodul auch um (unter Name).
Gruß Matthias
Anzeige
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 23:09:09
Wolfgang
Hallo Matthias,
auch der Tip war auch wieder sehr gut, Temp ist bei mir Tabelle 2, somit auch die Umstellung. Nun bleibt VBA in Deinem Beitrag von vorhin stecken und bringt wieder die gleiche Fehlermeldung. Hier kann ich aber doch keinen konkreten Tabellennamen benennen, außer die aktive Tabelle. Hast Du da auch noch eine Idee?
Hier Deine Ergänzung/Änderung:
ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule.AddFromString scode
Unter scode werden übrigens schon die ersten Zeichen von dem Code aus Temp gezeigt.
Nun klappt's wohl mit dem hineinkopieren nicht.
Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang
Anzeige
AW: Copy Code umstellen auf Aktives Blatt
13.06.2006 23:17:13
Josef
Hallo Wolfgang!
Ich frag' ja gar nicht wozu das gut sein soll, aber probier's mal so.
Sub copy()
Dim scode As String

With ThisWorkbook.VBProject.VBComponents("Temp").CodeModule
  scode = .Lines(1, .CountOfLines)
End With

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
  .DeleteLines 1, .CountOfLines
  .AddFromString scode
End With

End Sub


Gruß Sepp

Anzeige
AW: OT: @Sepp
13.06.2006 23:47:58
Wolfgang
Hallo Josef,
Hallo Matthias,
Super, wie Ihr Euch einsetzt und Hilfestellung anbietet. Der Code rennt nun bis auf eine Kleinigkeit: nachdem der Code gestartet wurde (es handelt sich übrigens dabei um einen Code von Dir Josef, den Du mir vorige Tage zur Verfügung gestellt hast, damit ich per Doppelklick in die Suchseite der Agentur für Arbeit komme; er muß ja jedem Tabellenblatt hinterlegt sein) erscheint zum Schluß in der Kopie in der neuen Tabelle außer der Reihe eine () und wird bei Anwendung des Doppelklicks nun logischerweise als Syntaxfehler gemeldet. Wenn Ihr da auch noch eine Idee hättet, wie die Klammern evtl. erst gar nicht erscheinen oder ggfs. nach dem Kopiervorgang gelöscht werden könnten ? Ich darf mich schon jetzt recht herzlich bei Euch für Euren Einsatz bedanken. Ich finde es sehr beachtlich und absolut nicht selbstverständlich, dass Ihr Euch hier so selbstlos zur Verfügung stellt. Alle Achtung.
Herzliche Grüße
Wolfgang
Anzeige
AW: Copy Code umstellen auf Aktives Blatt
14.06.2006 12:13:36
Wolfgang
Hallo Josef,
Hallo Matthias,
Meine Frage hat sich erledigt, ich werde diesen Schritt nicht weiter verfolgen; Ich habe Deinen Code, Josef, bezgl. des Internetaufrufs 'mal in "diese Arbeitsmappe" kopiert und umgestellt und er läuft prima. Ich hatte zunächst gedacht, dass der Code nur jeweils hinter dem aktuellen Tabellenblatt liefe. Herzlichen Dank nochmals für Eure konstruktiven Hinweis und Ausarbeitungen und weiterhin mein Kompliment.
Herzliche Grüße
Wolfgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige