Supportnet / Forum / Tabellenkalkulation
Zellenbreite mitkopieren
Frage
Hallo Zusammen,
ich habe mir ein kleines Makro zusammengestellt und bin jetzt auf zwei kleine Problem gestoßen:
1. Ich möchte die Zellenbreite mitkopieren.
2. Wenn man statt zu speichern einfach abbricht, dann lndet man auf dem neuen Tabellenblatt, was auch nicht weiter schlimm ist. Aber wenn man das neue Blatt zumacht, möchte ich nicht auf der Seite mit den zu kopierenden Seiten landen sondern auf der Seite, auf der das Makro gestartet wurde.
Hier das Makro:
Sub Export()
´
´ Makro3 Makro
´ Makro am 28.09.2006 von c aufgezeichnet
´
´
Sheets("Export HGB").Select
Range("A1:B22").Select
Selection.Copy
Workbooks.Add
With Range("A1")
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Dim Neuer_Dateiname
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:="", fileFilter:="Excel-Arbeitsmappe, *.xls")
If Neuer_Dateiname = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Neuer_Dateiname
ActiveWorkbook.Close
Sheets("Ergebnis HGB").Select
End Sub
Ihr habt bestimmt eien Idee -- Danke schon mal für Eure Mühe
Carsten.
P.S: Noch ne Frage am Rande:
Ist es möglich, dass beim ausführen eines Makros ein bestimmtes Tabellenblatt angezeit wird, auch wenn auf verschiedenen Blättern etwas geändert wird (das "aufflackern des Monitors nervt :-) ) ?
Antwort 1 von Hajo_Zi
Hallo Carsten,
zu PS verzichte auf select, activate usw. das ist in VBa nicht notwendig.
Notlösung:
Bildschirmaktualsierung, Makro laufen lassen ohne Anzeige
damit die Ausführung des Makros nicht angezeigt wird, kann man vor den Code schreiben
application.screenupdating = False im Hintergrund ohne Anzeige
Man darf dann nur nicht vergessen, dieses wieder auf True zu setzen.
Generell sollte man aber alles mit Activate und Select vermeiden
Gruß Hajo
zu PS verzichte auf select, activate usw. das ist in VBa nicht notwendig.
Notlösung:
Bildschirmaktualsierung, Makro laufen lassen ohne Anzeige
damit die Ausführung des Makros nicht angezeigt wird, kann man vor den Code schreiben
application.screenupdating = False im Hintergrund ohne Anzeige
Man darf dann nur nicht vergessen, dieses wieder auf True zu setzen.
Generell sollte man aber alles mit Activate und Select vermeiden
Gruß Hajo
Antwort 2 von Casy
Danke Hajo,
jetzt bin ich zumindest mit der Optik wieder ein Stück weiter.
Und vielleicht findet sich für den Rest ja auch noch Hilfe.
Gruß
Carsten
jetzt bin ich zumindest mit der Optik wieder ein Stück weiter.
Und vielleicht findet sich für den Rest ja auch noch Hilfe.
Gruß
Carsten
Antwort 3 von Hajo_Zi
Hallo Carsten,
die Spaltenbreite wird nur kopiert falls die gesamte Spalte kopiert wird. Falls nein mußt Du die Spaltenbreite auslesen und die Spaltenbreite in der Zieltabelle per Code nachträglich ändern.
Gruß Hajo
die Spaltenbreite wird nur kopiert falls die gesamte Spalte kopiert wird. Falls nein mußt Du die Spaltenbreite auslesen und die Spaltenbreite in der Zieltabelle per Code nachträglich ändern.
Gruß Hajo
Antwort 4 von Casy
Super,
funktioniert einwandfrei. Jetzt weiß ich auch, warum das Problem vorher nie aufgetreten ist, ich habe immer ganze Spalten kopiert :-)
funktioniert einwandfrei. Jetzt weiß ich auch, warum das Problem vorher nie aufgetreten ist, ich habe immer ganze Spalten kopiert :-)

