Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
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
Zeichen rechts entfernen?
30.01.2013 10:53:38
Selma
Hallo Leute,
in möchte in aktive Spalte (ab Zeile 2 bis letzte benutzte Zelle der Spalte A) die letzten sieben Zeichen von rechts entfernen, nur wenn der Zellinhalt rechts ein sechsstelliger Zahl ist und davor ein Punkt steht.
Beispiel vorher:
15.09.2012 21:17
20.12.2012 18:25
2012-12-17 22:33:12.409000
2012-12-20 15:04:18.322000
2012-12-20 15:08:20.504000
2012-12-21 12:32:37.914000
2012-12-17 21:15:31.504000
2012-12-20 15:22:33.268000
2012-12-20 15:34:36.070000
2012-12-20 15:52:10.606000
2012-12-20 18:14:05.078000
2012-12-20 18:32:52.078000
2012-12-16 22:21:39.612000
2012-12-17 09:57:08.773000
2012-12-20 16:00:45.585000
Beispiel nachher:
15.09.2012 21:17
20.12.2012 18:25
2012-12-17 22:33:12
2012-12-20 15:04:18
2012-12-20 15:08:20
2012-12-21 12:32:37
2012-12-17 21:15:31
2012-12-20 15:22:33
2012-12-20 15:34:36
2012-12-20 15:52:10
2012-12-20 18:14:05
2012-12-20 18:32:52
2012-12-16 22:21:39
2012-12-17 09:57:08
2012-12-20 16:00:45
Wie mache ich das bitte per VBA?
Gruß,
Selma

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 11:01:04
Beverly
Hi Selma,
meinst du das so:
Tabelle2
 AB
115.09.2012 21:1715.09.2012 21:17
220.12.2012 18:2520.12.2012 18:25
32012-12-17 22:33:12.4090002012-12-17 22:33:12
42012-12-20 15:04:18.3220002012-12-20 15:04:18
52012-12-20 15:08:20.5040002012-12-20 15:08:20
62012-12-21 12:32:37.9140002012-12-21 12:32:37
72012-12-17 21:15:31.5040002012-12-17 21:15:31
82012-12-20 15:22:33.2680002012-12-20 15:22:33
92012-12-20 15:34:36.0700002012-12-20 15:34:36
102012-12-20 15:52:10.6060002012-12-20 15:52:10
112012-12-20 18:14:05.0780002012-12-20 18:14:05
122012-12-20 18:32:52.0780002012-12-20 18:32:52
132012-12-16 22:21:39.6120002012-12-16 22:21:39
142012-12-17 09:57:08.7730002012-12-17 09:57:08
152012-12-20 16:00:45.5850002012-12-20 16:00:45

verwendete Formeln
Zelle Formel Bereich
B1 =WENN(TEIL(A1;LÄNGE(A1)-6;1)=".";TEIL(A1;1;LÄNGE(A1)-7);A1) 
B2 =WENN(TEIL(A2;LÄNGE(A2)-6;1)=".";TEIL(A2;1;LÄNGE(A2)-7);A2) 
B3 =WENN(TEIL(A3;LÄNGE(A3)-6;1)=".";TEIL(A3;1;LÄNGE(A3)-7);A3) 
B4 =WENN(TEIL(A4;LÄNGE(A4)-6;1)=".";TEIL(A4;1;LÄNGE(A4)-7);A4) 
B5 =WENN(TEIL(A5;LÄNGE(A5)-6;1)=".";TEIL(A5;1;LÄNGE(A5)-7);A5) 
B6 =WENN(TEIL(A6;LÄNGE(A6)-6;1)=".";TEIL(A6;1;LÄNGE(A6)-7);A6) 
B7 =WENN(TEIL(A7;LÄNGE(A7)-6;1)=".";TEIL(A7;1;LÄNGE(A7)-7);A7) 
B8 =WENN(TEIL(A8;LÄNGE(A8)-6;1)=".";TEIL(A8;1;LÄNGE(A8)-7);A8) 
B9 =WENN(TEIL(A9;LÄNGE(A9)-6;1)=".";TEIL(A9;1;LÄNGE(A9)-7);A9) 
B10 =WENN(TEIL(A10;LÄNGE(A10)-6;1)=".";TEIL(A10;1;LÄNGE(A10)-7);A10) 
B11 =WENN(TEIL(A11;LÄNGE(A11)-6;1)=".";TEIL(A11;1;LÄNGE(A11)-7);A11) 
B12 =WENN(TEIL(A12;LÄNGE(A12)-6;1)=".";TEIL(A12;1;LÄNGE(A12)-7);A12) 
B13 =WENN(TEIL(A13;LÄNGE(A13)-6;1)=".";TEIL(A13;1;LÄNGE(A13)-7);A13) 
B14 =WENN(TEIL(A14;LÄNGE(A14)-6;1)=".";TEIL(A14;1;LÄNGE(A14)-7);A14) 
B15 =WENN(TEIL(A15;LÄNGE(A15)-6;1)=".";TEIL(A15;1;LÄNGE(A15)-7);A15) 

Tabellendarstellung in Foren Version 5.51




Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 11:02:59
Selma
Hallo Karin,
ja :-) Nur wie mache es bitte per VBA?
Gruß,
Selma

AW: Zeichen rechts entfernen?
30.01.2013 11:10:20
Beverly
Hi Selma,
weshalb per VBA wenn es doch ganz einfach mit einer Formel geht? Du kannst doch ansschließend die Formelergebnisse in Werte umwandeln und die Bezugsspalte löschen.


AW: Zeichen rechts entfernen?
30.01.2013 11:13:25
Daniel
hi
genauso. Wenn man keine Formeln in der Tabelle haben will, kann man ja die Formelen kopieren und die Ergebnisse als Wert wieder einfügen.
alles was man in Excel ohne VBA machen kann, kann man auch mit VBA erledigen.
würde als Code so aussehen:
Const SP = 2 ' hier die Spaltennummer einer leeren Spalte angeben.
With Range(Cells(2, sp), Cells(Cells(Rows.count, 1).end(xlup).row, sp))
.Formulalocal = "=WENN(TEIL(A2;LÄNGE(A2)-6;1)=""."";TEIL(A2;1;LÄNGE(A2)-7);A2)"
.copy
.Cells(1, 2).Pastespecial xlpastevalues
.ClearContents
End with
Gruß Daniel

Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 11:31:57
Beverly
Hi Daniel,
wenn man es denn wirklich per VBA lösen will, muss man nicht erst diesen Umweg über das Eintragen der Formel gehen ;-)
Sub RechtsLoeschn()
Dim lngZeile As Long
lngZeile = 1
Do
If Mid(Cells(lngZeile, 1), Len(Cells(lngZeile, 1)) - 6, 1) = "." Then _
Cells(lngZeile, 1) = Left(Cells(lngZeile, 1), Len(Cells(lngZeile, 1)) - 7)
lngZeile = lngZeile + 1
Loop While Cells(lngZeile, 1)  ""
End Sub


AW: Zeichen rechts entfernen?
30.01.2013 13:56:59
Daniel
Hi Beverly
meiner Erfahrung nach lassen sich aus der Kombination von Formeln mit Makros in vielen Fällen einfache Lösungen mit geringem Programmieraufwand erstellen, die zudem auch noch auch bei grösseren Datenmengen eine sehr gute Performance haben.
um mit reinen VBA-Lösungen die gleiche Leistungsfähigkeit zu erreichen, muss man da schon mehr Aufwand betreiben oder tiefer in die VBA-Trickkiste greifen.
zudem vermute ich, daß viele VBA-Anfänger gleichzeitig durchaus erfahrene Excelanwender sind und sie deswegen eher in Formeln als in Programmstrukturen denken und ihnen deswegen solche Lösungen leichter fallen.
Mein Makro benötigt beispielsweise weder Variablen noch Kontrollstrukuren wie Schleifen, sonden ist einfach eine Abfolge von wenigen Befehlen, die zudem noch zum grössten Teil mit dem Recorder aufzeichenbar sind.
Gruß Daniel

Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 14:54:24
Beverly
Hi Daniel,
wenn man solche Lösungen anstrebt, kann man VBA auch ganz sein lassen, weil du mit Kanonen auf Spatzen schießt. Ehe man solch ein Makro wie deins geschrieben und ausgeführt hat, hat man auch schon die Formel von Hand eingetragen und nach unten gezogen. Jeder, der eine Formel erstellt, testet sie schließlich erst einmal, ob sie auch das richtige Ergebnis liefert - also steht sie ja schon mindestens 1 Mal in der Zelle. Ich bin mir auch sicher, dass du die Formel in VBA nicht so einfach aus der Kalten heraus erstellt sondern sie erst einmal in eine Zelle geschrieben hast, da du ja außerdem den Makrorekorder verwendet hast, um das "Grundegerüst" des Codes zu erstellen.
Wenn man denn VBA einsetzt, sollte man zumindest einige Grundkenntnisse in VBA besitzen (oder hier im Forum Fragen dazu stellen) - und Schleifen gehören zu den Grundkenntnissen. Und was die Verwendung von Variablen betrifft: auch du kommst nicht ohne Variable aus, denn SP ist eine Variable und genau genommen ist es Cells(Rows.count, 1).end(xlup).row ebenso - somit verwendest du sogar 2 und ich nur 1.


Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 15:11:35
Daniel
Hi
kommt darauf an.
wenn ich eine aufgabe nur 1x lösen muss, dann schreibe ich mir natürlich kein Makro, sondern mach das einfach per Formel.
wenn allerdings abzusehen ist, daß ich die Aufgabe mehrfach wiederholt ausführen muss, dann lohnt es sich schon, auch so einfache Dinge per Makro ausführen zu lassen.
Und warum sollte ich dann das Rad neu erfinden und mir einen Code ausdenken für ein Problem, das ich schon längst per Formel gelöst habe?
die par Schritte: Formel einfügen, kopieren, als Wert kopieren und Formel wieder löschen sind dann schnell drumherum programmiert.
Gruß Daniel

Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 15:51:50
Beverly
Hi Daniel,
in deinem Beitrag widersprichst du dir doch selbst und wenn du meinen ersten Beitrag richtig gelesen hast, dann habe ich dort genau das geschrieben: weshalb VBA, da sich das doch ganz leicht per Formel lösen lässt.
Und welches Rad denn neu erfinden? Jeder, der zuminest ein klein wenig mit VBA umgehen kann, hat auch irgendwo einen Grundcode stehen, wie man eine Schleife programmiert. Und ich bin mir sicher, auch du weißt nicht so aus dem Hut, wie du die letzte belegte Zelle feststellst. Aber egal, für mich ist das Thema hiermit erledigt.


Anzeige
AW: Zeichen rechts entfernen?
30.01.2013 11:01:46
haw
Hallo Selma,
so z.B.:
Sub Entfernen()
Dim lz&, i&
lz = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
For i = 2 To lz
If Left(Right(Cells(i, ActiveCell.Column).Value, 7), 1) = "." Then
Cells(i, ActiveCell.Column).Value = Left(Cells(i, ActiveCell.Column).Value, Len( _
Cells(i, ActiveCell.Column).Value) - 7)
End If
Next i
End Sub

Gruß
Heinz

AW: Zeichen rechts entfernen?
30.01.2013 11:24:05
Selma
Hallo Zusammen,
vielen Dank, es funktioniert prima....!
Ich habe viele andere Makros in der Datei und wollte dies nicht per Formel lösen.
Viele Grüße,
Selma
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige