Hallo Leute,
ich habe noch eine Frage. Also ich habe eine Excel Datei mit einer Übersichtsseite auf der die Bewertungen aus den anderen Tabellenblättern abgebildet wird mit hilfe von Formeln.
Kann man mit hilfe eines makros die Übersicht automatisch anpassen wenn ein Neues Tabellenblatt erstellt wird (Alle Tabellenblätter sind Formulare mit gleichen Feldern nur unterschiedlichen Inhalten).
Habe nämlich echt ne große Datei wenn ich als vorlage 20 Tabellenblätter erstelle.
Wär schön wenn mir einer von euch weiterhelfen könnte.
Gruß
Genii
Grüezi Genii
Da auch im Visual-Basic Brett deine gleichlautende Frage steht, denke ich, dass wir uns ggf. auf diese Frage dort beschränken. Dann haben auch künftige Mitleser etwas davon.
Mit freundlichen Grüssen
Thomas Ramel
Hallo Genii,
mit diesen Zeilen kannst du eine Tabelle kopieren und umbenennen:
Sheets(„Tabelle1“).Select
Sheets(„Tabelle1“).Copy After:=Sheets(Worksheets.Count)
tabellenname = „Tabelle“ & Worksheets.Count
ActiveSheet.Name = tabellenname
Damit musst du nur eine Tabelle vorgeben und hiermit bei Bedarf jeweils eine weitere hinzufügen. Der Tabellenname wird in diesem Fall einfach hochgezählt.
Hilft dir das weiter?
Gruß
Natator
Hallo Notator,
das funktioniert klasse, jetzt hätte ich noch eine Frage.
Also wenn ich ein neues Tabellenblatt erstellt habe muss auf einer Übersicht (der aller erste Tab) ein paar daten aus dem neuen Tabellenblatt ergänzt werden)
Wenn du lust hast kannst du dir das mal ansehen.
https://rapidshare.com/files/460388617/TestOK.xls
Habe hier eine vereinfachte Datei wie die die ich bearbeite und hier siehst du das erste Tabellenblatt „Übersicht Prozesse“
da sollen alle neu erstellten Tabellenblätter wie die 1 untereinander aufgeführt werden. Habe aber nicht so die Ahnung ob das überhaupt möglich ist.
Grüße
Geniii
Hallo Genii,
ein bischen wenig Input, um Dir weiterhelfen zu können.
Bitte beschreib Dein Problem mal etwas ausführlicher.
Gruß,
Ptonka
Hallo Geniii,
füge bitte noch folgende Zeilen hinzu. Die Zeilen sind kommentiert. Hoffe, das hilft dir weiter:
x = Tabellenname ‚Name der neuen Tabelle, vorher festgelegt
Sheets(„Übersicht Prozesse“).Select ‚In Übersicht wechseln
Rows(„16:16“).Select ‚Musterzeile auswählen. Diese Zeile muss mindestens vorhanden sein
Selection.Copy ‚Muster kopieren
Range(„A16“).Select
ActiveCell.End(xlDown).Offset(1, 0).Select ‚Erste freie Zeile ermitteln
If ActiveCell.Value „“ Then Range(„A17“).Select
Selection.Insert Shift:=xlDown ‚Kopie einfügen
zl = ActiveCell.Row ‚In welcher Zeile befinde ich mich?
Cells(zl, 1).Value = Cells(zl - 1, 1).Value + 1 ‚Laufende Nummer 1 höher als in vorheriger Zeile
Cells(zl, 2).FormulaR1C1 = "=‘" & x & "‘!R[-7]C:R[-7]C[7]" ‚Tabellenname übernehmen
Cells(zl, 3).FormulaR1C1 = "=‘" & x & "‘!R12C8" ‚Umsetzung Serienabsicherung
Cells(zl, 4).FormulaR1C1 = "=‘" & x & "‘!R37C8" ‚Vollständigkeit der Arbeitsdokumente
Cells(zl, 5).FormulaR1C1 = "=‘" & x & "‘!R52C8" ‚…
Cells(zl, 6).FormulaR1C1 = "=‘" & x & "‘!R67C8" ‚…
Cells(zl, 7).FormulaR1C1 = "=‘" & x & "‘!R82C8" ‚…
Cells(zl, 8).FormulaR1C1 = "=‘" & x & "‘!R97C8" ‚…
Cells(zl, 9).FormulaR1C1 = "=‘" & x & „'!R112C8“ ‚…
Cells(zl, 10).FormulaR1C1 = "=‘" & x & „'!R127C8“ ‚…
Cells(zl, 11).FormulaR1C1 = "=‘" & x & „'!R173C8“ ‚…
Cells(zl, 12).FormulaR1C1 = "=‘" & x & „'!R173C10“ 'Prognose
Cells(zl + 1, 1).Select
Application.CutCopyMode = False
Viele Grüße
Natator
Boh du bist Genial,
es funktioniert alles einwanandfrei.
Und so schnell unglaublich.
Ich Danke dir für deine Mühe, hast mir wirklich sehr geholfen!!!
Viele Grüße
Geniii
Hallo Geni
Ja denke schon! Ich müsste halt mal die Datei haben und sehen da ich so ohne nicht gut eine Lösung schreiben kann.
Also wenn dabei bist sende es an [email protected]
Gruss keymax
PS. kann aber etwas dauern!
Hallo Notator,
könntest du mir bei einem weiteren Problemchen helfen.
Also ich habe eben diese Datei und dann muss ich die einzelnen Tabellenblätter manchmal als eigenständige Dateien kopieren und verschicken.
Das Problem hierbei das ich immer habe, ist das nur 255 Zeichen einer Zelle kopiert werden und der Rest wird weggeschnitten, weisst du wie ich das beheben kann.
Also so sieht mein makro aus:
Sub TabellenblattKopieren()
Dim varCol
Dim iCalc As Integer
With Application
iCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationAutomatic
ActiveSheet.Copy
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
End Sub
Wär schön wenn du mir weiterhelfen könntest.
Gruß 'Geniii
Hallo Geniii,
wenn ich das richtig verstehe, geht es hier um den Dateinamen, der abgekürzt wird. Da kann Excel nicht helfen, da die Windows-API die Länge von Dateinamen auf 255 Zeichen beschränkt. (s. http://de.wikipedia.org/wiki/Dateiname#L.C3.A4nge_vo…).
Auf FAT32-formatierten Festplatten ist auch technisch kein längerer Dateiname möglich.
Gruß
Natator