Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo G'meinde
Komme direkt zur Sachlage Ich bitte um einen kleinen banalen Codeschnipsel (zum erlernen, weiterentwickeln) per VBA damit ich einem leeren Tabellenblatt Leben einhauche. Nur Zeile 1(Überschriften, ohne fett größer und so): Datum;Uhrzeit;Name;Kegler-ID usw. Bitte an die VBA-Exies nur den Anfang, wenn's denn keine grossen Mühen macht.
Hab hier und da gelesen aber irgendwie bin ich zu viel im Wald geirrt. Danke;Thanks :05:
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
19.08.2014, 20:34
(Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2014, 20:35 von WillWissen.)
Hi Frank, ich hatte ja bereits in früheren Threads angemerkt, dass ich VBA-mäßig in den Babyschuhen stecke. Zu deinem Wunsch, Codeschnipsel zum Erlernen und Weiterentwickeln zu bekommen, denke ich, solltest du deinen Bedürfnissen folgend, erst mal ein Grundgerüst aufzeichnen. Den aufgezeichneten Code kannst du dann nach eigenem Können "ausmisten" und verfeinern. Diesen Code habe ich aufgezeichnet und ist noch im absoluten "Rohzustand". Er macht nichts anderes als ein neues Arbeitsblatt anzulegen und die Überschriften einzutragen. Code: Option Explicit
Sub NeuesBlattMitUeberschriften() ' ' NeuesBlattMitUeberschriften Makro '
' Sheets.Add After:=Sheets(Sheets.Count) ActiveCell.FormulaR1C1 = "Name" Range("B1").Select ActiveCell.FormulaR1C1 = "Datum" Range("C1").Select ActiveCell.FormulaR1C1 = "Uhrzeit" Range("D1").Select ActiveCell.FormulaR1C1 = "Kegler-Id" End Sub
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi,
damit sich dein Projekt vielleicht direkt in die richtige Richtung entwickelt: Wird diese Überschriftenzeile nur auf 1 Blatt benötigt oder auf mehreren? Bestehen diese Blätter schon in der Datei? Welchen Sinn hat das per VBA zu machen? Ändern sich diese Überschriften später wieder? In Abhängigkeit wovon?
Nicht alles was machbar ist, ist auch sinnvoll mittels VBA, insbesondere bei statischen Fakten
Mit freundlichen Grüßen :) Michael
Registriert seit: 15.04.2014
Version(en): Office 2007
(19.08.2014, 20:34)WillWissen schrieb: ...macht nichts anderes als ein neues Arbeitsblatt anzulegen und die Überschriften einzutragen... Hallo Günter, darauf wollte ich ja auch hinaus. Danke für den Codeschnipsel. Mit Makrorecorder wäre ich ehrlich geschrieben nicht gekommen, der Wald eben. Danke (19.08.2014, 20:37)Zwergel schrieb: ...
Wird diese Überschriftenzeile nur auf 1 Blatt benötigt oder auf mehreren? Bestehen diese Blätter schon in der Datei? Welchen Sinn hat das per VBA zu machen? Ändern sich diese Überschriften später wieder? In Abhängigkeit wovon?...
...insbesondere bei statischen Fakten... Hallo Michael, zum Teil sind es statische Fakten, aber zu 1. Es soll nur der Code mit UF1 bestehen, der widerum ausgelöst die Tabellenblätter mit den Anwesenden für den Abend anlegt. zu2. Nein, es sollen nur aktive Kegler in der Mappe generiert werden. zu3. Ob Sinn oder Zweck, mein Gedanke war/ist nur die Grundstruktur quasi als Masterdatei zu verwenden um im Anschluß aller eingetragen Daten mit neuem Namen (Kegeldatum) zu speichern. zu4. Diese Daten wären eigentlich Statisch. Nur die Kegler ändern sich in Reihe und Erscheinen. Danke für eure Statements, werde beides überdenken.
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
(19.08.2014, 20:34)WillWissen schrieb: Diesen Code habe ich aufgezeichnet und ist noch im absoluten "Rohzustand". Ja, in der Tat "Rohzustand". Und es ist mir wichtig, gerade Einsteiger auf die "Unsitte" des Makrorecorders hinzuweisen, andauernd Select zu verwenden. Denn praktisch 99% aller SELECTs und ACTIVATEs sind überflüssig. Aufgeräumt sieht der Code dann etwa so aus: Code: Option Explicit Sub NeuesBlattMitUeberschriften() ' NeuesBlattMitUeberschriften Makro Sheets.Add After:=Sheets(Sheets.Count) With ActiveSheet 'Das .Value ist nicht unbedingt erforderlich aber sinnvoll .Cells(1, 1).Value = "Name" 'Alternativ auch als Range .Range("B1").Value = "Datum" .Range("C1").Value = "Uhrzeit" .Range("D1").Value = "Kegler-Id" End Sub
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Günther, Zitat:'Das .Value ist nicht unbedingt erforderlich aber sinnvoll kannst du mir/uns das kurz erklären? Danke.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
Hallo Günter, aber klar ... Prinzipiell reicht in der Code-Zeile: Code: .Cells(1, 1) = "Name"
weil die Default-Rückgabe dieser Funktion Value ist. Und das gilt auch für frühere Versionen. Aber es ist nicht garantiert, dass das auch für die nächste Version gilt. MS ist da mitunter sehr kreativ. Ich räume aber ein, dass auch ich vielfach einfach schreibfaul bin ... ;) Ich denke, dass es für Einsteiger besser ist, immer die Wunsch-Rückgabe mit dazu zu schreiben. Es könnte ja auch einmal .Row sein oder etwas anderes.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo @all, die Profis haben die Diskussion entfacht. Klar ist jetwege klare Unterstützung für Newbies wie mich von Vorteil. Zitat: "Synapsen: Die Synapse ist die Schnittstelle zweier Neurone. Die Kommunikation findet meist per chemischer Botenstoffe, den Neurotransmittern, statt." - aber Value und Text deklarieren doch unterschiedlich ob nun Textbox oder Layer ??? Ergo nicht relevant im Code ?
man liest sich ...
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
(20.08.2014, 13:46)GMG-CC schrieb: Hallo Günter,
aber klar ... Prinzipiell reicht in der Code-Zeile: Code: .Cells(1, 1) = "Name"
weil die Default-Rückgabe dieser Funktion Value ist. Und das gilt auch für frühere Versionen. Aber es ist nicht garantiert, dass das auch für die nächste Version gilt. MS ist da mitunter sehr kreativ. Ich räume aber ein, dass auch ich vielfach einfach schreibfaul bin ... ;)
Ich denke, dass es für Einsteiger besser ist, immer die Wunsch-Rückgabe mit dazu zu schreiben. Es könnte ja auch einmal .Row sein oder etwas anderes. Hi Günther, danke für die Erklärung. Das habe ich mir in meiner Vorlagendatei gespeichert - werde wohl aber (zumindest so lange es geht) eher zur schreibfaulen Liga gehören. ;)
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo zusammen, ich schreibe auch der Übersichtlichkeit halber oft .value. In einigen Fällen funktioniert die Verwendung von Range oder Cells zur Nutzung des enthaltenen Wertes auch nur, wenn .Value dahinter steht. Hier ist übrigens ein interessanter Artikel zum Thema .Text, .Value und -Value2 http://fastexcel.wordpress.com/2011/11/3...-avoid-it/
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|