Excel Makro oder andere Lösung gesucht

Alles rund um die Software-Entwicklung: Programme, Skripte, Projekte etc.
Antworten
Jan
Fleet Captain
Beiträge: 1096
Registriert: 08.03.2004, 19:47
Wohnort: Rheinland-Pfalz

Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Jan » 26.09.2009, 15:27

Hi
Habe hier eine Excel Datei mit vielen Fax- und Telefonnummern in vielen verschiedenen Formaten (mal mit +49, mal ohne, mal mit Klammern, etc.).
Nun hatte ich mir überlegt, z.B. per Makro die "49" in eine "0" umzuwandeln und dann alles was keine Zahl ist aus den Zellen zu löschen.
Hat jemand eine Ahnung ob das möglich ist und wenn ja vielleicht auch eine Idee wie so ein Makro aussieht?
mfG
Jan

Leviathan
Captain
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 872
Registriert: 08.03.2004, 17:09
Wohnort: Kiel
Kontaktdaten:

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Leviathan » 26.09.2009, 20:40

Aus dem Kopf:
  • ALT+F11 drücken für den VBA-Editor
  • Neues Standardmodul erstellen
  • folgenden Code eingeben:

    Code: Alles auswählen

    Private Function ConvertPhoneNumber(ByVal strPhoneNumber As String) As String
    	ConvertPhoneNumber = Replace(strPhoneNumber, "+49", "0")
    	ConvertPhoneNumber = Replace(ConvertPhoneNumber, " ", "")
    	ConvertPhoneNumber = Replace(ConvertPhoneNumber, "(", "")
    	ConvertPhoneNumber = Replace(ConvertPhoneNumber, ")", "")
    	ConvertPhoneNumber = Replace(ConvertPhoneNumber, "-", "")
    End Function
  • Diese selbstdefinierte Funktion kannst du nun ganz normal in Excel verwenden: =ConvertPhoneNumber(A1)
Hab kein Excel installiert, deswegen kann ichs grad nicht ausprobieren, aber so nach der Art sollte es funktionieren.

tabaluga
Lt. Junior Grade
Beiträge: 53
Registriert: 09.03.2004, 22:24

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von tabaluga » 25.10.2009, 20:02

Ich schreibe nicht so oft Makros, aber muss da nicht noch die Variable ConvertPhoneNumber zurück gegeben werden, damit das funktioniert?

Leviathan
Captain
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 872
Registriert: 08.03.2004, 17:09
Wohnort: Kiel
Kontaktdaten:

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Leviathan » 26.10.2009, 15:26

Nein, ConvertPhoneNumber wird automatisch zurückgegeben, weils der Funktionsname ist. Bei VBA gibts kein Return für Rückgabewerte.

tabaluga
Lt. Junior Grade
Beiträge: 53
Registriert: 09.03.2004, 22:24

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von tabaluga » 27.10.2009, 21:23

OK!

Wieder was gelernt ;-)

Benutzeravatar
Burnett
Lt. Commander
Beiträge: 238
Registriert: 22.09.2004, 13:02
Wohnort: irgendwo in BaWü
Kontaktdaten:

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Burnett » 04.11.2009, 07:03

Damit ich auch noch was lernen kann, stell ich mal ne ganz dumme frage:

Wann genau muss ich eine Variable über die SET-Anweisung initialisieren und wann nicht?

Bsp:

...
Dim intVariable As Integer
Dim Bereich As Range

intVariable = 5
Set Bereich = Range("C8:C:60")

...


Danke schonmal

Leviathan
Captain
Turtleboard Veteran
Turtleboard Veteran
Beiträge: 872
Registriert: 08.03.2004, 17:09
Wohnort: Kiel
Kontaktdaten:

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Leviathan » 08.11.2009, 13:36

Wenns nen Objekt ist, musst du Set verwenden - dabei wird nur eine Referenz angelegt, aber kein Wert kopiert.
Bei primitiven Datentypen (keine Ahnung, wie genau das bei VBA heißt; also String, Integer, etc.) wird direkt eine Wertzuweisen vorgenommen - also ohne das Setzen einer Referenz mit Set.

Benutzeravatar
Burnett
Lt. Commander
Beiträge: 238
Registriert: 22.09.2004, 13:02
Wohnort: irgendwo in BaWü
Kontaktdaten:

Re: Excel Makro oder andere Lösung gesucht

Ungelesener Beitrag von Burnett » 09.11.2009, 07:15

Okay, vielen Dank für die Antwort.

Antworten