Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Große Buchstaben finden und ersetzen

Große Buchstaben finden und ersetzen
21.04.2006 12:05:15
Frank
Hallo Leute, folgendes Problem ist zu knacken:
Ich habe in einer Spalte ca. 50.000 Straßennamen abgelegt.
Nun haben sich dort aber etliche Fehler eingeschlichen.
Der Wortteil "straße" wurde versehentlich oft groß geschrieben. Z.B.: MarktStraße.
Nun möchte ich, dass Excel alle Großbuchstaben durch Kleinbuchstaben ersetzt, es sei denn es ist der Wortanfang, es ist eine Leerstelle davor (für z.B.: Rendsburger Straße), oder es ist ein Bindestrich davor (z.B.: Müller-Straße).
Fehler anderer Art, wie z.B. eine unzulässige Abkürzung habe ich wie folgt geändert:
ActiveWorkbook.ActiveSheet.Columns("H:H").Select
Selection.Replace What:="str.", Replacement:="straße", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Ich denke, eine komplizierte Schleife durchlaufen zu lassen, dauert zu lange, oder?
Hat jemand eine glorreiche Idee?
Gruß
Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Große Buchstaben finden und ersetzen
21.04.2006 13:22:17
th.heinrich
hi Frank,
Tabelle1
 AB
1kleinStrasseKleinstrasse
2Gross StrasseGross Strasse
3Normal-strasseNormal-Strasse
Formeln der Tabelle
B1 : =GROSS2(A1)
B2 : =GROSS2(A2)
B3 : =GROSS2(A3)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
gruss thomas
Anzeige
Geht das auch als Makro (VBA)?
21.04.2006 14:15:16
Frank
Hallo Thomas!
Das funktioniert ganz gut. Weist Du auch, wie ich das als Makro schreiben kann?
Ich bastele mit PROPER rum, bekomme es aber nicht hin, das innerhalb der ganzen Reihe H die Änderungen stattfinden. Ich möchte keine zusätzliche Reihe nehmen.
Das war mal ein Versuch. Aber ich beziehe mich da wohl immer nur auf eine Zelle.
ActiveWorkbook.ActiveSheet.Range("H:H").FormulaR1C1 = "=PROPER(R1C1)"
AW: Geht das auch als Makro (VBA)?
21.04.2006 14:29:46
Heiko
Hallo Frank,
per VBA für die alle Einträge in Spalte H z.B. so:
Sub Bereinigen() Dim lngI As Long Application.ScreenUpdating = False For lngI = 1 To ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row ActiveSheet.Cells(lngI, 8) = Application.WorksheetFunction.Proper(ActiveSheet.Cells(lngI, 8)) Next lngI Application.ScreenUpdating = True End Sub
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
Warum geht das so schnell?
21.04.2006 14:48:18
Frank
Hallo Heiko.
Das klappt super! DANKE DANKE!
Wenn ich das richtig sehe, hast du in dem Makro die benutzen Reihen ausgelesen und damit die Schleifendurchgänge bestimmt. Jetzt verrate mir mal, wieso diese For-Next-Schleife so verdammt schnell ist. Hat das was mit dem Abschalten des Screenupdates zu tun?
Ich hatte nämlich auch erst an eine For-Next-Schleife gedacht um alle Zelen einzeln anzusprechen, hatte das aber wieder verworfen, weil ich dachte es dauere zu lange.
Gruß
Frank
AW: Warum geht das so schnell?
21.04.2006 14:53:45
Heiko
Hallo Frank,
1. Grund ist das Screenupdating = False, kannst ja mal rausnehmen die Zeile und schauen wie lange es dann dauert.
2. Grund ist Application.WorksheetFunction.Proper denn das ist eine EXCEL / VBA Funktion, die wie alle fertigen (also bereits kompilierten Funktonen) recht schnell ist. Auf jeden Fall viel schneller als alles was man sich selbst strickt, weil eigener Code (Codezeilen) muss immer erst kompiliert werden.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige