Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Leerzeichen löschen per Makro

Frage Microsoft Microsoft Office

Mitglied: Yosimo

Yosimo (Level 1) - Jetzt verbinden

19.05.2011 um 12:54 Uhr, 9360 Aufrufe, 8 Kommentare

Moin,

ich habe ein Makro geschrieben, das mir z.B. in Adressdaten unnötige Leerzeichen in den Zellen entfernt, die am Anfang oder am Ende des Zelleneintrags stehen:

Sub Leerzeichen_entfernen()
For Each Zelle In Selection
Zelle.Value = Trim(Zelle.Value)
Next
End Sub

Das Makro funktioniert gut, ABER ich muss vor der Ausführung die Zellen erst markieren.
Wie muss ich das Makro ändern, damit es ohne vorheriges Markieren auf das geöffnete Tabellenblatt wirkt?

Arbeite mit Excel 2007 unter Win7

MfG
Yosimo
Mitglied: vossi31
19.05.2011 um 13:01 Uhr
"Cells.Selec" vor die For Each Schleife

Henning
Bitte warten ..
Mitglied: bastla
19.05.2011 um 13:02 Uhr
Hallo Yosimo!

Du könntest zwar "Selection" durch "Cells" ersetzen - aber das willst Du (besonders bei Excel2007) nicht wirklich (BTW: Ein VBA-Programm kannst Du mit <Strg>+<Pause> abbrechen) ...

... daher eher eine der Zellen vorweg markieren und zB "ActiveCell.CurrentRegion" verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: Yosimo
19.05.2011 um 13:28 Uhr
Vielen Dank für die Tipps.

" ... aber das willst Du (besonders bei Excel2007) nicht wirklich... "
in der Tat: das dauert ja ewig. Danke für den Hinweis zum abbrechen . Hennings Vorschlag läuft wohl auf das selbe hinaus.

Ich denke, ich nehme die "ActiveCell.CurrentRegion" Version. Was genau beinhaltet denn die CurrentRegion?

Gruß
Yosimo
Bitte warten ..
Mitglied: Snowman25
19.05.2011 um 15:53 Uhr
Hallo Yosimo,
Zitat von Yosimo:
Ich denke, ich nehme die "ActiveCell.CurrentRegion" Version. Was genau beinhaltet denn die CurrentRegion?
Die CurrentRegion der zusammenhängende Bereich an Zellen, in dem du dirch gerade befindest.
Beispiel:
\ A B C D E
1 Daten1 Daten2 Daten3
2 abc 152 test
3 dies repräsentiert Daten
4
5 hier auch noch welche

In diesem Beispiel wäre deine ActiveRegion B1:D3 wenn sich dein Curser innerhalb dessen befindet.

Gruß
Snow


Gruß
Snow
Bitte warten ..
Mitglied: Yosimo
19.05.2011 um 17:02 Uhr
Aha, hab's kapiert, Danke!

Da schießt mir auch gleich die Frage in' Kopf, ob man mit einem Makro die Anzahl der CurrentRegions auslesen kann....

Gruß
Yosimo
Bitte warten ..
Mitglied: Biber
19.05.2011 um 18:53 Uhr
Moin Yosimo,

Zitat von Yosimo:
Aha, hab's kapiert, Danke!

Da schießt mir auch gleich die Frage in' Kopf, ob man mit einem Makro die Anzahl der CurrentRegions auslesen kann....

Die Beantwortung dieser Frage traue sogar ich mir zu, obwohl VBA-Makros nun nicht gerade mein Hobby sind.

Die Anzahl der CurrentRegion ist konstant und unveränderlich immer gleich eins, wenn denn überhaupt eine existiert.

Von daher fände ich das Schreiben eines Makros zum Durchzählen der Anzahl eigentlich ein weing übertrieben.

Okay, es übt....

Grüße
Biber
Bitte warten ..
Mitglied: Yosimo
20.05.2011 um 15:48 Uhr
Hallo Biber,

ja klar, die CurrentRegion kann immer nur eine sein, nämlich die, in der sich die aktive Zelle befindet.

Was ich meinte ist die Anzahl aller möglichen zusammenhängenden befüllten Zellen, die eine CurrentRegion sein könnten, wenn sich die Aktive Zelle darin befinden würde.

Eine CurrentRegion scheint ja dermaßen definiert zu sein, dass nebeneinanderliegende befüllte Zellen durch umliegende Leerzellen und/oder Tabellenblattrand begrenzt sind. Derartige Inseln befüllter Zellen könnten ja mehrere in einem Tabellenblatt enthalten sein. Die Anzahl dieser möglichen Inseln per Makro auszugeben war der Sinn meiner Frage. (Als Beispiel fällt mir eine Adressdatei ein, die z.B. nach jedem PLZ-Bereich eine leere Zeile enthält, oder zur optischen Trennung leere Spalten ....)

Ist aber nicht so wichtig, denn da habe ich den in Frage kommenden Tabellenbereich doch schneller per Hand ausgewählt.

Grüßle
Yosimo
Bitte warten ..
Mitglied: Snowman25
23.05.2011 um 10:23 Uhr
Hallo Yosimo,

Du könntest z.B. alle beschriebenen zellen anschauen und die jeweligen CurrentRegions vergleichen. (einfach und langsam)
Du könntest aber auch die erste beschriebene Zelle nehmen, und deren CurrentRegion oben so einsetzen, dass vor jedem Check geprüft wird, ob die aktuelle Zelle innerhalb der bereits gefundenen CurrentRegions ist. (komplexer, aber schneller).
Allerdings weiss ich nicht, wie sich eine Tabelle verhält die so aussieht:
\ A B C D E
1 abc def ghi
2 def ghi jkl
3 ghi jkl mno pqr stu
4 pqr stu vw
5 stu vw x
6 vw x yz

Wenn jetzt C3 (mno) markiert wäre. wäre die CurrentRegion dann A1:E6 oder was anderes?
und wenn B2 markiert wäre (ghi), ist die CurrentRegion dann A1:C3 oder A1: E6?
Und wie sieht das aus, wenn D3:E3 leer wäre, die Verbindung also nur nach unten besteht?
Da müsste man also noch etwas recherchieren.

Gruß
Snow
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Ubuntu
gelöst Wie kann man es tun? Alle Zeilen mit 2 und mehr Leerzeichen entfernen (1)

Frage von takitano zum Thema Ubuntu ...

Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...