Excel 2013 Code

SlipKn0T

Commander
Registriert
Dez. 2008
Beiträge
2.251
Hi..

Ich befasse mich immer mehr mit excel und die funktionen reichen mir langsam alleine nicht mehr.

kann man irgendwo nachlesen, wie diese aufgebaut sind oder wie man sich da reinsteigen kann?

ich habe aus einem anderen Forum dank Google herausgefunden, wie ich eine Zeile überwache, ggf bei änderung das aktuelle Datum in die andere Zeile eingefügt wird.

Der Code lautet wie folgt:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rowUp As Integer, rowDown As Integer, colValue As Integer, colDate As Integer, rngValue As Range

    'Nummer der obersten zu überwachende Zeile
rowUp = 3
    'Nummer der untersten zu überwachende Zeile >>> grosszügig, darf vorläufig tausende von Leerzeilen enthalten
rowDown = 10000
        'Spaltennummern als A=1, B=2, C=3 usw
    'Spaltennummer der zu überwachenden Werte > hier B
colValue = 2
    'Spaltennummer mit dem Aenderungsdatum > hier E
colDate = 5

Set rngValue = Range(Cells(rowUp, colValue), Cells(rowDown, colValue))
If Not Intersect(Target, rngValue) Is Nothing Then Cells(Target.Row, colDate) = Now

End Sub

nun möchte ich nicht nur die Zeile B überwachen, sondern auch noch C.

Wie kann ich dieses einfügen? weder 2:3 noch 2,3 noch 2, 3 oder 2 ,3 haben funktioniert...

Bitte um eine Lösung, danke!
 
Hallo,

wenn ich dich richtig verstanden habe, hast du nur Probleme damit, den Bereich selbst anzugeben. Das passiert in Zeile 17:
Code:
Set rngValue = Range(Cells(rowUp, colValue), Cells(rowDown, colValue))
das funktioniert so: Range (Zelle1, Zelle2) - zwischen Zelle 1 und Zelle 2 wird ein rechteckiger bereich aufgezogen, wie du es auch mit der Maus machen könntest, dieser bereich wird in der nächsten Zeile dann überwacht.

Um den Bereich zB nach unten oder rechts (wenn wir mal davon ausgehen, dass die erste Zelle das links obere Eck der Auswahl darstellt und die zweite Cells-Angabe das rechts untere) um eins zu vergrößern, muss das Argument in der zweiten Cells-Anweisung geändert werden.
Um zB einen Bereich von B2 zu C4 auszuwählen, würde die Range-Methode so aussehen: Range(Cells(2, 2), Cells(4, 3))
--> Um eine Spalte mehr zu bekommen kannst du also z.B. schreiben:
Code:
Set rngValue = Range(Cells(rowUp, colValue), Cells(rowDown, colValue+1))
In Zeile 18 wird mit der If Anweisung dann überprüft, ob die Selektierte Zelle mit diesem Bereich übereinstimmt.
 
Um dich ein wenig zu entmutigen… :heilig:

Man kann Programmieren als solches lernen (und beherrschen) - wenn man seine Ideen mangels Syntaxwissen oder Möglichkeiten der Sprache nicht umsetzen kann steht man im Wald. Damit meine ich natürlich EVA und z.B. Dateizugriffe.

Excel selbst kontrollieren wäre eine andere Betrachtungsweise. Dort mag Makroaufzeichnen helfen - oder eine Kompendium das einen erschlägt welche Menüfunktion auf welche Weise in der VBA-Sprache realisiert werden kann. Das geht sogar so weit mit VBA einen VBA-Code zu schreiben und zu ändern. Oder an steuert sogar andere Office-Komponenten. Und eigene Oberflächen als UserForms wären ebenfalls ein Aspekt.

Kurz - du musst einen Plan haben und dann zusehen wie der sich mit VBA umsetzen lässt. Möglicherweise kommt du zu dem Schluss, dass du auch niemals nach Dingen gefragt hättest weil diese dir nie in den Sinn kamen (oder etwas anders gesagt: was man nicht mal kennt, danach kann man auch nicht fragen).
Learning by doing - das mache ich nun schon seit über 20 Jahren weil mir keiner das Denken abnehmen kann.

CN8
 
Also es gibt die typischen Bücher "Excel VBA In 21 Tagen" welche man als Einstieg nutzen kann. Ansonsten gibt es noch ein Excel VBA Wiki als kleine Referenz.
Der Rest ist Try and Error. :D
 
Hallo,

Excel VBA ist ziemlich super zu erlernen, da es eine ziemlich tolle Hilfe dazu gibt. Setz der Cursor einfach auf den Befehl über den du mehr wissen möchtest (z.B. auf "Ran|ge(Cells..." ("|" stellt in dem Beispiel mal den Cursor dar. Drücke F1 und du erhältst Hilfe zu dem Befehl Range.
Dank umfangreicher Hilfe-Dokumentation finde ich, sind grundlegende Sachen innerhalb der Excel-Tabellen reicht gut zu erlernen.
Einen Tipp noch dazu:
Fall du irgendetwas formatieren möchtest oder ähnliches, kannst du ein makro aufzeichnen, dort werden dann die eigenschaften und methoden aufgeführt, die du zB zum formatieren einer Zelle brauchst. (Man kann natürlich auch rein über die Hilfe gehen, das kann aber etwas komplizierter sein).
 
da es eine ziemlich tolle Hilfe dazu gibt.
Es mag da möglicherweise eine recht vollständige Hilfe geben - aber auf keinen Fall eine ›ziemlich tolle‹…
F1 lotst dich vom Hunderdsten und Tausendste und lässt entscheidende Fälle glatt außen vor liegen. Zu vieles ist statt knapper Info nur wieder und wieder wiederholtes leeres weitschweifiges Geschwafel (in dem das Wesentliche absäuft) - und ganz besonders gelungen sind die MS'schen Begriffe und Termini die man fast pauken muss um zu kapieren was bitte Methoden sein sollen.
VBA ist so herrlich in seiner Logik unlogisch, dass man eher noch verzweifelt denn versteht. Und es braucht schon in der Tat Trail-and-Error bis man mitbekommt wie VBA überhaupt tickt, warum es mal so ist und dann wieder anders.

Das klingt harsch? Es beschreibt nur meine Quälereien mit diesem Sprachdialekt überhaupt war zu werden, den täglichen Krampf mit den feien kleinen Macken des Editors und einfach nur unverständlicher, verkrampfter, unlogischer Syntax.

Viel Glück also,
CN8
 
Vielen Dank für die kleine Info, was auf mich zukommen wird :D
Aber jede Sprache ist unlogisch.
Sonst noch irgendwelche Lernhilfen? Bücher ebooks pdfs howtos? Darf auch kosten
 
Mann muss sich schon auf die Sprache einlassen, aber dann gehts auch voran.

Wenn du ein bisschen in die Sprache eingestiegen bist -> die Dokumentation nicht vergessen. Danach bitte auch an sauberen Programmierstil arbeiten -> also statt endlos-Code in einer Prozedur, lieber gewisse Funktionen in Methoden auslagern um Sachen auch wiederverwenden zu können.
 
@cumulonimbus8: Also ich habe mir damals mit Hilfe der Hilfe in Office 2003 selbst das Programmieren beigebracht ohne daran zu verzweifeln und beherrsche jetzt zumindest die Grundlagen ziemlich gut. Zur Zeit habe ich ein paar Projekte, bei denen ich zB XML Daten einlesen möchte, da stößt die Hilfe dann allerdings schon an ihre Grenzen. Ansonsten, für die Grundlagen, habe ich z.B. für C++ nichts besseres gefunden. (Falls du mir da etwas empfehlen kannst?) :)

Was ist denn unlogisch an der Sprache? Sprachen müssen doch vom Prinzip her "logisch" sein :)
 
Zurück
Oben