Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Fehler im Makro zum Speichern





Frage

Hallo zusammen, Ich habe ein Problem mit dem folgenden Makro. Wenn ich bei der ersten Dialogbox (Dateiname eingeben) auf abbrechen klicke bricht das Makro mit einer Fehlermeldung ab. Was muss ich ändern, damit ich einfach wieder zurückkomme. Sub DatenübergabeVerz() ´ ´ Datenübergabe und Speichern Application.DisplayAlerts = False Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls") Sheets("bericht").Cells.Copy Workbooks.Add With Range("A1") .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteValues ´Linien ausschalten ActiveWindow.DisplayGridlines = False End With Range("A1").Select Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:=Dateiname, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close Sheets("menue").Select Application.DisplayAlerts = True End Sub Dann hätte ich da noch eine weiterführende Frage, die aber nicht ganz so wichtig ist: Im Augenblick umgehe ich die Frage nach dem Überschreiben einer bereits vorhandenen Datei durch das Ausschalten der Display Alerts. Lieber wäre es mir die Warnmeldung zuzulassen, aber leider bricht diese ebenfalls ab, wenn man "nein" oder "abbrechen" anklickt. Danke für Eure Hilfe Casy

Antwort 1 von JoeKe

Hi Casy,

füge folgende Anweisung nach
Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")

ein:
If Dateiname="" then
Exit Sub
End If



MfG

JöKe

Antwort 2 von casy

Super funktioniert,
Danke für die Hilfe.

Allerdings ist mir jetzt ein anderes Problem mit dem Makro aufgefallen:
Die zu kopierende Datei enthält neben der Tabelle auch ein Diagramm. Dieses wird dummerweise nicht mitkopiert.
Hat vielleicht jemand ne Idee für mich ?

Gruss

Casy

Antwort 3 von JoeKe

Hi casy,
Habs jetzt nicht getestet, aber ersetz mal das:
 With Range("A1")
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
´Linien ausschalten
ActiveWindow.DisplayGridlines = False
End With 

durch das:
ActiveSheet.Paste
´Linien ausschalten
ActiveWindow.DisplayGridlines = False


Mfg

JöKe

Antwort 4 von Niels

Hallo Casy!
Versuchs mal hiermit:

Application.DisplayAlerts = False
Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
If Dateiname = "" Then
Exit Sub
End If
Sheets("bericht").Copy
ActiveWindow.DisplayGridlines = False

ActiveWorkbook.SaveAs Filename:=Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWorkbook.Close
Sheets("menue").Select
Application.DisplayAlerts = True

Gruß Niels

Antwort 5 von nighty

hi all :)

2 beispiele :))

gruss nighty

Sub meineInputbox()
Dim meinInputBox As Variant
meinInputBox = InputBox("Hallo", "Eingabefenster", "Hier ist die Texteingabe :))", vbYesNo + vbQuestion)
If meinInputBox = vbYes Then Range("a1") = "geloescht"
If meinInputBox = vbNo Then Range("a1") = "nicht geloescht"
End Sub

Sub meineMsgBox()
Dim MsgBoxRückwert As Variant
MsgBoxRückwert = MsgBox("MeinText", 3, "Titel", "hilfe", vbYesNo + vbCancel)
If MsgBoxRückwert = vbYes Then Range("a1") = "Ja"
If MsgBoxRückwert = vbNo Then Range("a1") = "Nein"
If MsgBoxRückwert = vbCancel Then Range("a1") = "Abbruch"
End Sub

Antwort 6 von Casy

@Niels: gute Idee, klingt brauchbar. Ich werde es heute Abend mal versuchen umzubauen.

@JöKe:
Die Idee hatte ich auch schon. Grundsätzlich funktionierts, aber wenn mann Zellen hat mit über 255 (oder so ähnlich) Zeichen, dann kürzt Excel mir die Zelleninhalte :-(

Wahrscheinlich muss ich das Diagramm an eine Zelle binden, aber ich weiss nicht wie

Gruß

Casy

Antwort 7 von nighty

hi all :))

range verlangt ein .value fuer ueber 255 zeichen :)))

gruss nighty

Antwort 8 von Casy

@Nighty

ich bin gerade etwas langsam (....????...)
das kopieren von mehr als 255 Z. funktioniert doch mit meinem alten Makro (über Range) ich kriege nur das Diagramm nicht mit.
Die 255 Z. Grenze habe ich nur, wenn ich das Blatt als solches kopiere.
Oder worauf beziest du dich jetzt.

Guss

Casy

Antwort 9 von JoeKe

Hi Casy,

hab mir dein Problem nochmal angesehen. Ich denke es liegt an den Eigenschaften deines Diagramms. Klick mal mit rechts in dein Diagramm > Diagrammfläche formatieren > Eigenschaften dort bei Objektpositionierung "von Zellposition und -größe abhängig" aktivieren.


MfG

JöKe

Antwort 10 von Casy

Hallo,

@JöKe:
Die Idee ist grundsätzlich nicht verkehrt, wenn ich die Zellabhängigkeit aktiviert habe funktioniert es in sofern, dass wenn ich den Zellbereich markiere und kopiere nimmt er das Diagramm mit. Wenn ich dann aber wieder das Makro benutze kopiert er ohne Diagramm - es ist zum Mäusemelken - ???

Gruss Casy

Antwort 11 von JoeKe

Hallo Casy.

leider kann ich dein Problem nicht weiter nach vollziehen. Mit folgendem Code funktioniert das Kopieren einwandfrei auch mit dem Diagramm und über 255 Zeichen in einer Zelle.

Sub DatenübergabeVerz()

´ Datenübergabe und Speichern

Application.DisplayAlerts = False

dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
If dateiname = "" Then
Exit Sub
End If
Sheets("bericht").Cells.Copy
Workbooks.Add

ActiveSheet.Paste
´Linien ausschalten
ActiveWindow.DisplayGridlines = False

Range("A1").Select
Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWorkbook.Close

Sheets("menue").Select

Application.DisplayAlerts = True

End Sub


MfG

JöKe

Antwort 12 von Casy

@JöKe:

Danke für deine Hilfe, aber leider funktioniert deine Version bei mir überhaupt nicht.
Ich werde mein Problem wohl noch mal als eigenen Thread einstellen. Vielleicht fällt ja noch jemandem was ein.

Gruss

Casy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: