Makro speichern
Guten Tag zusammen,
ich habe da ein großes (für euch wahrscheinlich ein kleines) Problem was ich nicht lösen kann.
Ich muss auf einer Exel Tabelle, die täglich neu überschrieben wird ein Makro drauf kopieren und ausführen.
Den Makro habe ich als Text datei auf meiner Festplatte gespeichert.
Gibt es da eine möglichkeit den Makro so zu speichern, damit es nicht gelöscht wird wenn die Exel Datei überschrieben wird?
Es ist sehr lässtig, jeden Tag den Makro zu kopieren und dann in die Exel Tabelle einzufügen.
vielen Dank schonmal im vorraus für eure bemühungen.
Sonja
Antwort schreiben
Antwort 1 von Hajo_Zi vom 29.07.2019, 17:20 Options
Hallo Sonja,
speichere es in der Datei Personl.xls im Ordner XlStart.
Gruß Hajo
Antwort 2 von sonja23 vom 29.07.2019, 17:27 Options
Hallo Hajo,
kannst du mir das vielleicht genauer erklären???
gruss Sonja
Antwort 3 von sonja23 vom 29.07.2019, 17:35 Options
Was genau soll ich den da abspeichern. Den Makro als Textdatei oder eine neue Exel Tabelle in der ich den Makro abspeichere.
gruss Sonja
Antwort 4 von Hajo_Zi vom 29.07.2019, 17:37 Options
Hallo Sonja,
gehe mal in den VBA Editor, wird dort die Datei Personl.XLS schon angezeigt. Falls nein zeiche ein Makro in der pesönlichen Arbeitsmappe auf und danach gleich noch ein in der aktuelle mappe. Jetzt ist die Datei vorhanden.
Jetzzt siehst Du im VBA editor Dein modul mit dem Makro einfach in die Personl. Xls.
Speichern beim schliessen von Excel nicht vergessen.
Gruß Hajo
Antwort 5 von sonja23 vom 29.07.2019, 17:47 Options
Hallo Hajo,
ich habe in Exel mit alt+f11 den VBA editor gestartet und dann auf der linken Seite im Fenster unter Microsoft Exel Objekte den Makro eingefügt und es abgespeichert. Dananch mit alt+f8 versucht den Makro auszuführen, leider ohne erfolg.
Ne idee woran das liegt??
gruss Sonja
Antwort 6 von Hajo_Zi vom 29.07.2019, 17:51 Options
Hallo Sonja,
das Makro hast Du schon in die Datei Personl.ls geschoben?
Ich habe Deinen Code nicht gesehen, darum kann ich nichts zur Ausführung schreiben. Ich kann nur vermuten das Du die Zellen nicht korrekt angesprochen hast.
Gruß Hajo
Antwort 7 von sonja23 vom 29.07.2019, 17:57 Options
Hallo Hajo,
nochmal von vorn. Ich lösch jetzt alles und fang von vorn an.
Den Makro habe ich als Code. Den will ich so speichern, das wenn ich es brauch jederzeit ausführen kann.
Soll ich jetzt den Code jetzt unter Personen.xls-->Microsoft Exel Objekte-->Diese Arbeitsmappe abspeichern????
gruss Sonja
Antwort 8 von Hajo_Zi vom 29.07.2019, 18:01 Options
Hallo Sonja,
die Datei von der ich immer schreibe ist eine Datei die Excel erstellt und die den Namen Personl.XLS hat und nicht Personen.xls. Die Datei Personl.XLS wird automatisch beim Start von Excel im ausgeblendeten Zustand geöffnet und in diese Datei musst Du Dein Modul mit dem Makro ziehen, im VBA Editor.
Gruß Hajo
Antwort 9 von sonja23 vom 29.07.2019, 18:09 Options
Hallo Hajo,
erstmal danke für deine Gedult.
Ich habe den Makro jetzt unterpersonl.xls abgespeichert. Habe aber jetzt das Problem beim ausführen. Es kommt der Fehler "Index außerhalb des gültigen Bereichs"
Ich weiß jetzt nicht ob ich es falsch abgespeichert habe?
gruss Sonja
Antwort 10 von sonja23 vom 29.07.2019, 18:12 Options
Ich arbeite in mein Code mit sheets. Kann es vielleicht daran liegen??
gruss Sonja
Antwort 11 von Hajo_Zi vom 29.07.2019, 18:12 Options
Hallo Sonja,
da kann ich mich nur wiederholen
"Ich habe Deinen Code nicht gesehen, darum kann ich nichts zur Ausführung schreiben. Ich kann nur vermuten das Du die Zellen nicht korrekt angesprochen hast.."
Gruß Hajo
Antwort 12 von sonja23 vom 29.07.2019, 18:15 Options
Na gut hier der Code
Option Explicit
Sub Mak()
Dim loZeile As Long
Dim inSpalte As Integer
With Sheets("Tabelle1")
.Range("A:A,C:E").Delete
For inSpalte = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Column
For loZeile = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Row
If .Cells(loZeile, inSpalte) = "" Then .Cells(loZeile, inSpalte) = 0
Next loZeile
Next inSpalte
End With
End Sub
gruss Sonja
Antwort 13 von Hajo_Zi vom 29.07.2019, 18:20 Options
Hallo Sonja,
ich würde mal
With Sheets("Tabelle1")
durch
With ActiveSheet
oder
With Workbooks("Dateinname.xls").Sheets("Tabelle1")
oder
With ActiveWorkbook.Sheets("Tabelle1")
ersetzen
Gruß Hajo
Antwort 14 von sonja23 vom 29.07.2019, 18:26 Options
Hallo Hajo,
du bist der Beste;-))
vielen Dank es hat mir sehr sehr geholfen....es läuft und wird mir eine ganze menge Arbeit sparen....
THX Sonja