Guten Morgen Ralf,
deine Einwände sind mir soweit bekannt.
Genauere Erklärungen sollten sich aus meinen Beiträgen #28 & #30 ergeben.
Wenn jedoch mehrere Excel Dateien geöffnet sind kann anscheinend mit jedem beliebigen Format oder zumindest im *.xls Format auch auf die Makro's der anderen geöffneten Formate zugegriffen werden.
Das war also nur der unbeholfene versuch ob es einen Unterschied macht, ob ein Makro übergreifen nur auf eine weitere Makro Datei 'wirken' kann oder ob das Format egal ist.
In meinem Fall war das Ergebnis in beiden Fällen gleich.
Mein Gedanke also:
1. Ich öffne 2 Dateien.
2. Lasse die *.xls Datei übergreifend bearbeiten
= Kann die Datei ohne integrierte Makros im Haus rumreichen. :18:
Gruß
Frank
Yeah, was so ein paar Punkte doch ausmachen.
Nun läuft das Hauptmakro in eigener sowie übergreifend in der *.xlsx Datei einwandfrei.
(Bis auf die Fehlermeldung (Fehler 9))
Nicht weniger verwirrt mich warum nun das zweite Makro nicht mehr übergreifend funktioniert
Punkte vor Range funktionieren hier nicht
[
attachment=4486]
Ich hoffe du meintest diesen Speicherort für die Makros:
[
attachment=4487]
In Tabelle 1 unter allgemein
Aktueller Code der nun nur in der Makrodatei selber funktioniert :s :@ :s
Code:
Range("Tabelle5").Interior.ColorIndex = xlNone
Columns(Range("Tabelle5").Columns.Count).Delete
End Sub
Gruß
Frank
Hi Frank,
(09.03.2016, 09:28)Frank BST schrieb: [ -> ]Nicht weniger verwirrt mich warum nun das zweite Makro nicht mehr übergreifend funktioniert
Punkte vor Range funktionieren hier nicht
für Dich die Erklärung, damit Du verstehst, was die Punkte bedeuten und du es endlich richtig anwenden kannst.
Fall 1:
Range("A1") = 5
Damit ist immer die aktuelle Tabelle gemeint.
Fall 2:
.Range("A1") = 5
Damit wird auf eine andere als die aktuelle Tabelle zugegriffen.
So geht es deshalb nie ohne die Angabe des Tabellenblattes (entweder mit with oder mit der Angabe davor).
Du kannst es also so schreiben:
Worksheets("Tabelle1").Range("A1") = 5
oder
With Worksheets("Tabelle1")
.Range("A1") = 5
End With
Damit wird vorgegeben, in welcher Tabelle das Range gesucht werden soll.
Nur mit
.Range("A1") = 5
wird es nie gehen, denn da weiß Excel nicht, auf was sich das Range bezieht.
Danke Ralf,
mit dem Wissen hab ich doch gleich mal gefummelt
Nach ein wenig hin und her hab ich den Code so umgestellt:
Code:
With Worksheets("Tabelle1")
.Range("Tabelle5").Interior.ColorIndex = xlNone
.Columns(.Range("Tabelle5").Columns.Count).Delete
End With
End Sub
Es läuft
Mit dem 'Fehler 9' muss ich Leben?
Ganz ehrlich?
Der zusätzliche Klick nervt mich. :@
Was hat Excel da im Anschluss einer Makro Anwendung zu speichern?
Ich lasse eine *.xlsx Arbeitsmappe einmalig von 2 Makros bearbeiten und beim Speichern vergrößert sich die Datei um das 12 Fache!?! :@
Ursprungsgröße 116 KB
Größe nach
1. Speichern 1297 KB
Auch beim manuellen bearbeiten jener Tabelle kam es gelegentlich zu Größensprüngen nach dem Speichern.
Aber bei weitem nicht in diesem Umfang.
Hi Ralf,
auch dafür danke.
Sowas suche ich schon länger.
Echt gut gemacht.
Die Seite werde ich nun mal Stück für Stück durchackern.
Gruß Frank
Niemand mehr eine Idee wie ich den 'Fehler 9' abstelle?
Und was mit dem Größenzuwachs ist?