Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kannmir jemand Code schreiben?

Kannmir jemand Code schreiben?
01.12.2006 09:43:29
Fritz_Beck
Hallo zusammen,
kann mir jemand für die folgende Beschreibung einen Cod schreiben?
Bei klicken auf den Button speichern sollen nur die Zellen B10-H21 in eine extra Datei gespeichert werden. Der Name der Datei steht in Zelle A3. Die Zellenbreiten sollen allerdings mit übernommen werden, dass ist mein größtes Problem...
Mit dem Macrorecorder hab ich es schon versucht, allerdings übernimmt er beim speichern die Zellenbreite nicht mit...
danke schon mal im vorraus

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch was vergessen...
01.12.2006 09:53:41
Fritz_Beck
Beim erneuten klicken auf den Button speicern loss die bereits gespeicherte Datei einfach überschreiben werden...
Bisher zeigt es mir bei meinen PRogramierversuchen immer einen Fehler an.
AW: noch was vergessen...
01.12.2006 09:59:12
marcl
Hallo Fritz,
versuche mal das hier:

Sub Makro()
'kopiert den Inhalt in eine neue tabelle
Cells.Copy
Workbooks.Add
Cells.Select
ActiveSheet.Paste
dateiname = Range("A3")
' löscht alles andere herum, auch eventuelle rahmen
Range("1:9,22:65536,A:A,I:IV").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
Range("A1").Select
pfadname = "C:\EigeneDateien\" & dateiname & ".xls"
' Fehlermeldung ausschalten zum Überschreiben
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfadname
' Fehlermeldung wieder anschalten
Application.DisplayAlerts = True
End Sub

Gruß
marcl
Anzeige
Bedeutung dieser Zeile?
01.12.2006 10:09:34
Fritz_Beck
Hi,
kannst du mir sagen wie ich diesen Befehl deuten muß? Welche Zellen sind damit gemeint?
Range("1:9,22:65536,A:A,I:IV").Select
AW: Bedeutung dieser Zeile?
01.12.2006 10:13:45
Rudi
Hallo,
warum probierst da das nicht einfach aus? Dann siehst du was passiert.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
schon längst probiert...
01.12.2006 10:18:48
Fritz_Beck
Hab den Code schon längst kopiert und ausprobiert. Funktioniert ja auch so wi eich das wollte... nur will ich den Code auch "lesen" und verstehen können...
Deshalb will ich wissen was diese Zeile beduetet, dass alles auserhalb Zelle B10 und H21 gelöscht wird sehe ich ja.
AW: schon längst probiert...
01.12.2006 10:25:47
marcl
Hallo Fritz,
ich erkläre Dir das gerne. Ich habe das gesamte Blatt in eine neuen Datei kopiert. Also auch alle Zellenformatierungen und Inhalte drum herum.
Deswegen habe ich alle Bereiche, die um den Kasten herum liegen markiert und alle Inhalte und Formatierungen gelöscht. Auf diese Weise bleiben die Formatierungen des Kastens bestehen und der Rest des Blattes leer.
Gruß
marcl
Anzeige
AW: schon längst probiert...
01.12.2006 10:25:56
Rudi
Hallo,
Es werden die Zeilen 1-9, Zeilen 22-65536 und die Spalten A und I-IV markiert. Nicht markiert ist somit B10:H21.
Einfach mal nur den Befehl in eine eigene Prozedur kopieren und diese starten.

Sub tt()
Range("1:9,22:65536,A:A,I:IV").Select
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Alles klar
01.12.2006 10:35:22
Fritz_Beck
danke Jungs langsam wirds klar. Sollte ich noch Fragen haben werde ich mich wieder melden.
Vielen Dank mal :-)
Weitere Fragen...
01.12.2006 10:48:26
Fritz_Beck
Hi, hab noch drei weitere Fragen,
wie muß ich den code ergänzen, damit das Fenster wieder geschlossen und zum vorherigen zurückgesprungen wird?
Beim erneuten speichern tritt dieser Fehler auf, ist gelb hinterlegt...
ActiveWorkbook.SaveAs Filename:=pfadnam
auf dem Blatt sind verschiedene Buttons hinterlegt, diese werden nicht gelöscht. Wie kann ich diese ebenfalls löschen?
Könnt ihr mir nochmals helfen?
Anzeige
Fenster schließen hat funktioniert
01.12.2006 10:51:12
Fritz_Beck
Meine dritte Frage hat funktioniert, das Fenster wird geschlossen und ich springe ins ursprüngliche zurück. ein Problem weniger...
überschreiben tut jetzt auch
01.12.2006 10:53:41
Fritz_Beck
Problem zwei mit der Fehlermeldung hat sich auch erledigt...
Jetzt überschreibt es einfach ohne Fehlermeldung.
Jetzt müssen beim speichern nur noch die Buttons gelöscht werden...
AW: Weitere Fragen...
01.12.2006 10:55:47
marcl
ok, also was Neues,
wo sind die Buttons? Wäre gut wenn sie nach Spalte H kommen, weil ich jetzt nur die Spalten B bis H kopiere!

Sub Makro()
'kopiert nur den Inhalt der Spalten B bis H in eine neue Tabelle
Columns("B:H").Select
Selection.Copy
Cells.Select
Workbooks.Add
Range("C1").Select
ActiveSheet.Paste
dateiname = Range("A3")
' löscht alles andere herum, auch eventuelle rahmen
Range("1:9,22:65536").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
Range("A1").Select
pfadname = "C:\EigeneDateien\" & dateiname & ".xls"
' Fehlermeldung ausschalten zum Überschreiben
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfadname
' Fehlermeldung wieder anschalten
Application.DisplayAlerts = True
' Neue Datei schließen
ActiveWorkbook.Close
End Sub

Gruß
marcl
Anzeige
Markos
01.12.2006 11:11:30
Fritz_Beck
die Makros stehen zwischen den Spalten H und Q , Zeilen 3-6 und außerdem noch in den SpaltenR und S.
Ich habe den code jetzt fogendermaßen geändert, da mein Chef nicht nur die spalten B10-H21 bahen will sondern A10-Q225.
Mit diesem Code funktioniert soweit alles, nur das die Makros nicht gelöscht werden...

Sub spchrn()
' spchrn Makro
' Makro am 01.12.2006 von Bopp aufgezeichnet
Cells.Copy
Workbooks.Add
Cells.Select
ActiveSheet.Paste
dateiname = Range("C10")
' löscht alles andere herum, auch eventuelle rahmen
Range("1:9").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
Range("A1").Select
pfadname = "D:\Bopp\" & dateiname & ".xls"
' Fehlermeldung ausschalten zum Überschreiben
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfadname
' Fehlermeldung wieder anschalten
Application.DisplayAlerts = True
ActiveWindow.Close
Range("A1").Select
End Sub

Anzeige
Link
01.12.2006 11:27:46
Fritz_Beck
Danke für den Code, aber der kopiert mir nur die Komplette Tabellenseite ohne irgend etwas zu löschen...
Code vereinfacht-nur noch buttons löschen...
01.12.2006 11:36:49
Fritz_Beck

Sub CommandButton1_Click()
Worksheets("Eingabe").Copy
Range("1:9").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
ActiveWorkbook.SaveAs "D:\Bopp\" & Range("C10").Value & ".xls"
ActiveWindow.Close
Range("A1").Select
End Sub

Anzeige
AW: Markos
01.12.2006 11:42:08
marcl
So, der 3. Versuch,
das kopiert nur A10 bis Q252. Die Buttons sollte nicht in diesem bereich sein. Nach dem Einfügen in der Neiuen Datei werden die Spaltengrößen automatisch vergrößert.

Sub Makro2()
dateiname = Range("A3")
' Nur A10 bis Q252 kopieren
Range("A10:Q252").Copy
Workbooks.Add
Range("A10").Select
ActiveSheet.Paste
Cells.Select
' Zellen automatisch vergrößern
Cells.EntireColumn.AutoFit
Range("A1").Select
pfadname = "C:\EigeneDateien\" & dateiname & ".xls"
' Fehlermeldung ausschalten zum Überschreiben
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfadname
' Fehlermeldung wieder anschalten
Application.DisplayAlerts = True
' Neue Datei schließen
ActiveWorkbook.Close
End Sub

Gruß
marcl
Anzeige
AW: Markos
01.12.2006 11:50:31
Fritz_Beck
die Markos sind jetzt alle weg... nur das halt die Formatierung jetzt angepaßt wurde und leider nicht mehr dem original entspricht.
Ich probiere jetzt selber noch etwas herum, nicht das ich euch noch zur weißglut bringe.
Trotzdem vielen Dank für eure Hilfe
AW: Markos
01.12.2006 12:01:54
marcl
Welche Formatierung?
formatierung
01.12.2006 13:14:55
Fritz_Beck
die Zellenbreite meine ich, sorry
Hab jetzt ein Makro aufgenommen, dass die buttons löscht. Dann habe ich dies kopiert und in den Code eingefügt:

Sub CommandButton1_Click()
dateiname = Range("C10")
Worksheets("Eingabe").Copy
Range("1:9").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
ActiveSheet.Shapes("Button 32").Select
Selection.Delete
ActiveSheet.Shapes("Button 33").Select
Selection.Delete
ActiveSheet.Shapes("Button 31").Select
Selection.Delete
Range("A1").Select
pfadname = "D:\Bopp\" & dateiname & ".xls"
' Fehlermeldung ausschalten zum Überschreiben
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfadname
' Fehlermeldung wieder anschalten
Application.DisplayAlerts = True
' Neue Datei schließen
ActiveWindow.Close
Range("A1").Select
End Sub

Leider bringt er mir eine Fehlermeldung beim abarbeiten der Zeilen wo die Buttons gelöscht werden...Lösungsvorschläge?
Anzeige
AW: Kannmir jemand Code schreiben?
01.12.2006 13:12:16
Uduuh
Hallo,
versuchs mal so:

Private Sub CommandButton1_Click()
Worksheets("Eingabe").Copy
ActiveSheet.OLEObjects.Delete
With ActiveSheet.UsedRange
.Value = .Value
End With
With ActiveSheet.Parent.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Rows("1:9").Clear
Application.DisplayAlerts = False
With ActiveWorkbook
.SaveAs "D:\Bopp\" & Range("C10").Value & ".xls"
.Close
End With
Application.DisplayAlerts = False
Exit Sub
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Kannmir jemand Code schreiben?
01.12.2006 13:24:02
Fritz_Beck
tut mir leid, funktioniert alles, bis auf das die button immer noch da sind...
AW: Kannmir jemand Code schreiben?
01.12.2006 13:34:53
Rudi
Hallo,
was für Buttons hast du denn?
Aus Formular oder aus Steuerelemente-Toolbox?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Kannmir jemand Code schreiben?
01.12.2006 13:48:28
Fritz_Beck
aus Steuerelement-Toolbox.
Wenn ich mit der linken Maustaste auf den Button klicke steht oben links (unter Datei, Bearbeiten) in einem Kästchen "Schaltfläche 32" oder bei anderen "Schaltfläche 2"
Außerdem hab ich gesehen sind noch Buttons als Bilder "deklariert". (bei klicken drucken sie einen bestimmten Teil der Seite aus). Wenn ich mit der linken maustaste auf den button klicke steht oben links (Unter Datei, Bearbeiten) in einem Kästchen "Bild 2"...
Hilft euch das weiter?
Korrektur: doch aus Formlar
01.12.2006 13:51:40
Fritz_Beck
Die buttons sind doch aus Formular, nicht aus Steuerelemente...
AW: Korrektur: doch aus Formlar
01.12.2006 14:01:22
Rudi
Hallo,
die sind keine OLE-Objekte sondern Shapes.
activesheet.shapes.selectall
selection.delete
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Juhu!! Freibeir für alle!!! Es funktioniert!!!
01.12.2006 14:09:49
Fritz_Beck
ES FUNKTIONIERT ZU 100% WIE ICH ES WOLLTE!!!!
Danke an alle beteiligten für eure Mühe, echt super. Jetzt kann ich bald beruhigt ins Wochenende gehen :-)
Dieses Forum ist echt klasse!!!
Gruß und schönes Wochenende @ all
Fritz
AW: Juhu!! Freibeir für alle!!! Es funktioniert!!!
01.12.2006 14:12:01
Rudi
Hallo,
schön für dich.
Hauptsache, du verstehst auch was passiert.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Fehler im code?
01.12.2006 13:32:06
Fritz_Beck
Stimmt diese Zeile schon ?
ActiveSheet.OLEObjects.Delete

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige