Clever-Excel-Forum

Normale Version: Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo,

ich bin mit meiner Tabelle noch nicht ganz zu frieden.

Da ich für meine Kunden (ca. 1000)  je Kunde ein Tabellenblatt benötige möchte ich diese nicht alle manuell erstellen.
Gibt es die Möglichkeit dies über ein Makro zu steuern.

Die Tabellenblätter sind fortlaufend nummeriert 1, 2, 3 usw.
Wenn ein Tabellenblatt für einen Kunden ausgefüllt und abgeschlossen ist, möchte ich über ein Steuerelement ein neues Blatt erstellen was die fortlaufende Nummerierung erhalten soll und hinter dem letzten eingefügt ist. Das Blanko Formular ist unter dem Tabellenblatt "Formular" hinterlegt.
Moin!
Dann will ich mal der Erste sein.
Ich habe mir mal eure(?) letzten Threads durchgelesen.
Zitat:ich bin mit meiner Tabelle noch nicht ganz zu frieden.

Das wäre ich auch nicht, und zwar ganz und gar nicht.
Was dort entwickelt wird, hat imo nichts mit einer "Datenbank" in Excel zu tun.

Gleichartige Daten(sätze) gehören in EIN Tabellenblatt.
Auswertung dann per Filter iVm Teilergebnis() oder Aggregat().
Oder per Spezialfilter oder Pivottabelle.
Oder per VBA-Datenmaske.
Oder per Formular-Tabellenblatt.
Stichworte: Dropdown, SVERWEIS(), Summewenn(s) und die diversen Ableitungen.

Man kann auch eine quasi-relationale Datenbank mit einigen wenigen Tabellen aufbauen, um Redundanzen zu minimieren.

Also alles, nur nicht eine Tabelle pro Datensatz.

Gruß Ralf
Hallo,

ich teile 100% die Ansicht von RPP63, aber um dem Forum noch viele Fragen für die Auswertung zu garantieren. Den folgenden Code habe ich heute für einen anderen Fragesteller geschrieben: wenn der Name des zu kopierenden Sheets angepasst wird und die Schleife nicht 3, sondern 1000 mal durchlaufen wird, sollte es die Frage hier beantworten.


Code:
Sub Sheet_erstellen()
With Sheets("Woche - Rohling")
   For i = 1 To 3
       .Copy after:=Sheets(Sheets.Count)
       ActiveSheet.Name = "Woche " & i
   Next i
End With
End Sub


mfg
Guten Morgen liebe Helfer,

leider habe ich mich gestern nicht richtig ausgedrückt. Denn ich glaube mit meiner Variante bin ich auf dem richtigen Weg.
Jedes Tabellenblatt ist recht umfassend und fungiert für den Kunden wie eine Rechnung. (Tabelle habe ich beigefügt)

Der Code in der letzten Antwort erstellt mir alle Tabellenblätter auf einmal. Ich hätte aber gern nach jedem abgeschlossenen Kelterschein über ein Steuerelement ein nächsten Kelterschein erstellt und geöffnet. Hierbei sollte die Nummer immer fortlaufend sein und wenn es geht vor also links neben der alten stehen.  Also      usw.,4,3,2,1,

Nach dem Ihr meine Tabelle jetzt besser kennt, würde ich mich freuen wenn Ihr mir schreibt ob meine Tabelle wirklich so falsch ist.

Gruß
Martin
Hallo Martin

Achje, da könnte man ganze Romane schreiben.
Wenn das dein Ansatz ist dann ist es wesentlich einfacher eine professionelle Software zu kaufen oder einen professionellen Dienstleister zu beauftragen.
Das geht auf jeden Fall über eine einfache Forenhilfe hinaus.

Und weil so schön passt noch etwas Wein, Weib und Gesang.
:05:  Laola  :05:
Hallo Martin

wenn ich dich richtig verstanden habe soll immer das Blatt "10000" kopiert und umbenannt werden
in meinem Test habe ich in dem ausgeblendetem Blatt "10000" in Zelle W1 die Zahl 3 geschrieben
und dann diesen, vom Makrorekorder aufgezeichneten und bereinigten, Code laufen lassen
ist es das was du dir vorstellst?


Code:
Sub Makro1()
   Dim a As Long
   a = Sheets("10000").Range("w1").Value
   Sheets("10000").Copy after:=Sheets("Übersicht")
   With Sheets("10000 (2)")
       .Name = a
       .Visible = True
   End With
   Sheets("10000").Range("w1").Value = Sheets("10000").Range("w1").Value + 1
End Sub

MfG Tom
Hallo Tom,

das Makro macht noch nicht ganz das richtige.
Ich möchte, dass wenn ein Tabellenblatt/Kelterschein abgeschlossen ist über ein Makro ein neues öffnen.
(das macht Deins schon)
Das neue Tabellenblatt sollte nur die nächste Nummer tragen. Also wenn Tabellenblatt 1 abgeschlossen ist, dann
muss das nächste die Nummer 2 sein usw.. In W1 steht nur die Kelterscheinnummer. Diese stimmt nicht mit der Tabellenblattbezeichnung überein.

Bei meinem letzten Mal schrieb ich das neue Tabellenblatt sollte sich immer vor dem letzten stehen.
Das benötige ich doch nicht. Als fortlaufend nach links ist OK.

Gruß
Martin
Hallo Martin

irgendwo sollte die Nummer schon gespeichert sein
ob das nun im Blatt 10000 in Zelle W1 oder in irgendeinem anderen Blatt
in Zelle XYZ125 steht ist dabei schnurz
wo das neue Blatt gespeichert werden soll kannst du selbst bestimmen indem du
diese Zeile im Code

Sheets("10000").Copy after:=Sheets("Übersicht")

dementsprechend änderst

MfG Tom
Hallo nochmal

du solltest dir aber eher mal Gedanken machen, ob es überhaupt Sinn macht
für jeden Kunden ein Tabellenblatt zu erstellen
wenn du nachher an die 1000 Kunden eingetragen hast
und die Blätter umfangreich ausgefüllt sind
dann wird die Datei recht groß
und da dann auch noch zig Formeln enthalten sind
wird es dann wahrscheinlich eine gefühlte Ewigkeit dauern
bis sich die Datei öffnet und speichert

ich würde dann lieber die Datei nur für einen Kunden
oder nur für eine Bestellung als Kopie speichern

MfG Tom

btw jetzt geh ich Mittagsschlaf halten  :43: :43: :43:
Hallo,

ich schließe mich Tom's Argumentation vollumfänglich an.

Zitat:... ich würde dann lieber die Datei nur für einen Kunden oder nur für eine Bestellung als Kopie speichern

mit Eurer Variante programmiert Ihr Euch nur jetzt schon ohne jede Not den in der Zukunft liegenden Stress vor.
Ich stand auch mal vor einem solchen Problem und habe dann rechtzeitig alles zurückgefahren.
Euch wollte gerade Ähnliches wie Tom vorschlagen, ... aber Tom war schneller  :05:
Seiten: 1 2 3 4