8.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich brauche mal Eure Hilfe.

... möchte mit Excel 2010 eine fortlaufende Datenbank (in Ordnern sollen einzelne Blätter mit Problemen zur Abarbeitung hinterlegt werden) erstellen.
Sie soll im Firmennetzwerk von unterschiedlichsten Stellen in der Firma gespeichert und geöffnet werden.

Dabei soll eine Vorlage geöffnet und ausgefüllt werden.
Eine Blattbezeichnung in der Vorlage in der Zelle W4 soll automatisch auch der Speichername sein.

Habe hier viel aus dem Netz probiert und bin leider nicht zum Ziel gekommen.


Desweiteren sollen diverse Zelleninhalte (aus 3 Zellen) in einer Übersicht (andere Excel Tabelle) nach dem Speichern automatisch eingefügt werden, wobei es immer in eine neue Zeile geschrieben werden soll, nicht überschreiben.

Ist das überhaupt machbar!?????

34 Antworten

0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Da muss ich passen; der Code 28 hat sich bei mir persönlich noch nicht vorgestellt.
An welcher Stelle im Code passiert das?

Eric March
0 Punkte
Beantwortet von mistermj Einsteiger_in (71 Punkte)
Moin,

führt das Macro noch nicht mal aus, also gleich nachdem man ausführen oder mit ctrl d oder ähnliches startet!

Gruß
tobias
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Ich kann mich nur dummstellen: ein anderes beliebiges Makro, und schriebe es nur "Hallo,Welt!" würde ausgelöst?

Äh, stopp!! Dieses Makro da ist ja ein Auto-Makro. Das kann man nicht aufrufen, es wird durch Ereignisse ausgelöst; also schließen der Mappe. Kommt auch (8-ung, allen Code extern sichern!!) da der Code 28?

Eric March
0 Punkte
Beantwortet von mistermj Einsteiger_in (71 Punkte)
Hallo,

beim einfügen und arbeieten mit dem code kann man es ja auch zum testen manuell ausführen! Hast recht das der Fehler beim normalen ausführen des Makros nicht auftaucht, aber es macht auch sonst nix. Kein abfragen der Zeile und kein Speichern unter dem Namen.

Excel musst nach dem ausführen auch neu gestartet werden weil er nicht mehr klar kam. Vielleicht hat es vorhin auch am Pc gelegen weil jetzt bekomme ich die Fehlermeldung auch nicht mehr.

Wundere Dich b itte nicht, manche Begrifflichkeiten habe ich noch nicht so verinnerlicht, bin gerade dabei mir das hier alles irgendwie anzueignen. Mache das alles als Projekt und versuche es bestmöglicht zu machen. Ecxel Schulungen sind erst ende des Jahres.

Gruß Tobi
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
(In denen, vermute ich mal, wirst du alles lernen - nur nicht das was dir in solchen Fällen wirklich hilft. Wenns hoch kommt erfährst du, dass man Kommentare z.B. auch formatieren kann wie man das mit einem Rechteck oder einer TextBox kann. Klick mal rechts auf die Rahmenlinie eines Kommentars ;-) )

Ein Excel das in den Seilen hängt kann gut und gerne solche Überläufe verursachen.

Ich möchte das ja noch weitertreiben so das später sich drei Zellen noch in einer Übersicht eintragen. Mailliste verfasst per Button erstellt werden kann.

Nur zu - wir werden dir da gerne behilflich sein!

Eric March
0 Punkte
Beantwortet von mistermj Einsteiger_in (71 Punkte)
Danke!
0 Punkte
Beantwortet von mistermj Einsteiger_in (71 Punkte)
Hallo,

will jetzt gerade weitertesten und stelle fest:

Sub speichernunter()
Dim NeuerName As String
NeuerName = Range("W4")
ActiveWorkbook.SaveAs "Y:\Eigene Dateien\Projekt2012\Testzweckespeichern_ausfüllen\" & NeuerName & ".xls"

End Sub

Wenn ich den code unter der Vorlagenblatt unter Vba eingebe und es dann als Macro speichere, Beim nächsten aufrufen Macros einschalte und dann mit der Namen in W4 auf speichern gehe, speichert er es nicht mit dem Namen ab. Erst wenn ich auf Macros gehe und ausführen drücke macht er es !
Ich will die Vorlage aufmachen Blattnr vergeben, speichern Vorlage soll schließen und ich arbeite in dem normale excelblatt weiter.

Habe ich es beim ersten mal falsch abgespeichert?

gruß tobi
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Wenn ich den code unter der Vorlagenblatt unter Vba eingebe und es dann als Macro speichere, Beim nächsten aufrufen Macros einschalte und dann mit der Namen in W4 auf speichern gehe, speichert er es nicht mit dem Namen ab. Erst wenn ich auf Macros gehe und ausführen drücke macht er es !

Noch mal zum Verständnis:
Du musst eine «Vorlagendatei» verwenden. Das wäre optimal zwar eine .XLTX [die lassen sich so weit ich weiß nur explizit als T für Template, Vorlage, speichern, sonst aber wollen sie zu einer XLSX werden], aber die Leute umzugewöhnen ist nicht leicht. Also bleiben wir bei einer .XLSX. Diese Datei darf um Himmels Willen nicht verändert gespeichert werden (außer von dir)! Deswegen mein Code oben mit…
ThisWorkbook.SaveCopyAs ("Z:\_Neumann\BVBsT5\2012\" & Range("W4") & ".xlsx")
ActiveWorkbook.Close (False)
Cancel = False

…in Workbook_BeforeClose (da habe ich oben geschlafen)! Speichern unter anderem Namen beim schließender Mappe, ein BeforeSave, taugt hier nicht und ändert an der Logik nichts Eingaben zu erwarten & zu prüfen (daher da auch Cancel=False; den Trick nutze ich anderweitig auch gegen Unfälle).

Dein Speichermakro als einzelne Sub ist eher überflüssig und neigt zu Missbrauch. Und denke bitte über einen Notausstieg nach!

Eric March
0 Punkte
Beantwortet von mistermj Einsteiger_in (71 Punkte)
Hallo,

habe jetzt alle 3 Gewerke soweit fertig das ich speichern unter dem Namen aus W4 in die einzelnen Ordner funktioniert. Habe es als excel Vorlage mit Makro gespeichert.

Ich nehme man an das ist Deine Notstrategie die ich brauche!
Wenn ich nichts reinschreibe und speichere ist das ausführen des Makros danach nicht mehr möglich.

Sub SpeichernUnter()
Dim NeuerName As String
NeuerName = Range("W4")
ActiveWorkbook.SaveAs "Z:\_Neumann\BVBsG1\2012\" & NeuerName & ".xls"


End Sub
(habe es auf einen Button gelegt mit Kommentar dazu!)

Ich bräuchte für den Code das er es ausschließt das die Zelle leer ist zum speichern! Die Zelle habe ich so formatiert das man nur die vorgegebene Werte eingeben kann und nichts anderes.
Würde natürlich zu meinem Ursprung (nur speichern wenn D4,R4,W4,D5 mit der Bezeichnung W4) zurückkommen aber alles erstmal in kleinen Schritten zum laufen bringen!

Hat da jemand eine Idee?

Gruß
Tobias
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
OK. Dann werden wir mal eine Leerlaufsperre einbauen :-)
(Müsste es nicht XLSX statt XLS heißen?!)

Aber zuvor…
Packe deinen Code bitte in die Struktur
KODE
ein - markiere den Text und klick oben auf den Button «Code» (CODE wird da aber klein geschrieben was unbedingt so sein muss!). Das macht das ganze lesbarer. ;-)

Sub SpeichernUnter()
Dim NeuerName As String
NeuerName = Range("W4")
If NeuerName = "" Then
MsgBox ("Kein Name vergeben, Abbruch")
Exit Sub
Else
ActiveWorkbook.SaveAs "Z:\_Neumann\BVBsG1\2012\" & NeuerName & ".xls"
End If
End Sub

Das mit dem Else ist nur mal als Beispiel gedacht, falls du mit If keine Erfahrung hast frage die Hilfe zu den Möglichkeiten. Direkter wäre natürlich dies:
Sub SpeichernUnter()
Dim NeuerName As String
NeuerName = Range("W4")
If NeuerName = "" Then
MsgBox ("Kein Name vergeben, Abbruch")
Exit Sub
End If
ActiveWorkbook.SaveAs "Z:\_Neumann\BVBsG1\2012\" & NeuerName & ".xls"
End Sub


Eric March
...