Makro automatisch starten



Excel-Version: XL10
nach unten

Betrifft: Makro automatisch starten
von: Mike
Geschrieben am: 03.05.2002 - 20:11:01

Hallo,
ich habe nachfolgendes Makro im "Modul1" stehen. Zur Ausführung bringe ich es manuell.
Wie kann ich nun erreichen, dass dieses Makro automatisch gestartet wird, sobald sich die Einträge in Spalte A ändern?
Wo hinein muss es geschrieben werden?

Option Explicit
Sub InSpaltenTrennen()
Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
Dim c As Range
Dim t1 As String, t2 As String
For Each c In Selection
t1 = Left(c.Text, InStr(c.Text, ",") - 1)
t2 = Right(c.Text, Len(c.Text) - InStr(c.Text, ","))
t2 = Left(t2, Len(t2) - 1)
c.Offset(0, 1).NumberFormat = "@"
c.Offset(0, 1).Value = t1
c.Offset(0, 2).NumberFormat = "@"
c.Offset(0, 2).Value = t2
Next c
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
End Sub

Vielen Dank im Voraus.

Gruß
Mike


nach oben   nach unten

Re: Makro automatisch starten
von: WernerB.
Geschrieben am: 03.05.2002 - 20:37:39

Hallo Mike,

aus meiner Sicht macht es wenig Sinn, dieses Makro in diesem Zustand automatisch zu starten, da der betroffene Zellbereich beim Start ja markiert sein soll; bei einem autmatischen Start ist dies sicherlich nicht der Fall.
Man könnte es natürlich entsprechend umschreiben.

1. Dazu müsste man aber wissen, ob in der Spalte A nur solche Zellinhalte vorkommen, die zerlegt werden sollen?

2. Sind die Einträge in der Spalte A lückenlos oder gibt es dazwischen Leerzellen (das Ende kann ggf. auch per Makro ermittelt werden)?

3. Beginnen diese Einträge ab Zeile 1 oder gibt es da noch Spaltenüberschriften?

Erst wenn diese Fragen geklärt und in Makrosprache umgesetzt sind, sollte m.E. ein automatischer Start in Erwägung gezogen werden.

MfG
WernerB.


nach oben   nach unten

Re: Makro automatisch starten
von: Mike
Geschrieben am: 03.05.2002 - 21:21:04

Hallo WernerB.,
danke, dass du mir helfen willst.
Zu deinen Fragen:
zu 1): In die Spalte A kopiere ich die Daten aus einer ".csv-Datei". Es handelt sich hierbei um Rufnummern und Namen aus einem Handy-Telefonbuch. Rufnummer und Name sind immer durch Komma getrennt und haben die Form => Nummer,"Name","
Sie sollen in Spalte C (Rufnummer) und Spalte D (Name) neu aufgeteilt werden. Leider werden die Namen in Spalte C auch in Anführungszeichen gesetzt. Könnte man dies evtl. ändern?
zu 2):
Die Einträge sind lückenlos und enden je nach gemachten Einträgen im Handy.
zu 3):
Die Einträge beginnen in Zeile 1 und es gibt keine Spaltenüberschriften.

Für die Spalten habe ich eine "Bedingte Formatierung" gewählt, damit doppelte Einträge farblich gekennzeichnet werden.

Ich gehe folgendermaßen vor:
1.) zuerst lösche ich alle Einträge in der Tabelle.
2.) dann kopiere ich die Spalte A mit den Einträgen in der ".csv-Datei" und übertrage sie in die Spalte A der Tabelle.
Sind doppelte Einträge vorhanden, werden diese gleich farblich gekennzeichnet.
Im gleichen Moment sollte jetzt das "InSpaltenTrennen()"-Makro starten. Auch hier werden dann wegen der bedingten Formatierung die doppelten Einträge farblich markiert.
3.) so kann ich die doppelten Einträge leicht erkennen und löschen.

Ich hoffe, dass ich es ausführlich beschrieben habe und du eine Lösung für mich basteln kannst.

Gruß
Mike




nach oben   nach unten

Re: Makro automatisch starten
von: WernerB.
Geschrieben am: 04.05.2002 - 08:54:30

Hallo Mike,

das Makro "InSpaltenTrennen" solltest Du durch die hier mitgelieferte Version ersetzen (muss aber in dem normalen Standardmodul bleiben!).
Ich bin jetzt davon ausgegangen, dass nach dem abschließenden Komma im Ursprungstext auch noch ein unerwünschtes Anführungszeichen steht.

Das zweite Makro "Private Sub Worksheet_Change(..." gehört ins Klassenmodul des betreffenden Tabellenblattes.
Mit einem rechten Mausklick auf den Tabellennamen, dann auf "Code anzeigen", werden der VB-Editor und auch das Klassenmodul des betreffenden Tabellenblattes automatisch geöffnet. Die große weiße Fläche auf der rechten Seite ist das Klassenmodul. In dieses Klassenmodul muss dieses Makro hinein geschrieben/kopiert werden. Dieses Makro ruft dann ggf. selbsttätig das Makro "InSpaltenTrennen" auf.

Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Re: Makro automatisch starten
von: Mike
Geschrieben am: 04.05.2002 - 11:13:49

Hallo WernerB.,

das klappt ja hervorragend. Danke für deine tolle Hilfe. Prima erklärt. Kompliment.

Gruß
Mike


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Makro automatisch starten"