Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Hilfe bei VBA Skript
#11
Die .xlsm, kein Bild!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#12
Hallo,

mache einen Doppelklick auf den Text Tabelle1 (EXTF_Buchungen) im Explorerfenster, dann geht ein Codefenster auf und darin ist das Ereignismakro.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#13
(11.08.2016, 08:20)RPP63 schrieb: Die .xlsm, kein Bild!

Ist keine xlsm sondern eine csv. Daher kann ich das Makro auch so nicht drin speichern. Die Datei ist ein Aszug der gesamten Datei. Die Spalte Konten soll von 6 auf 5 stellen gekürzt werden.


Angehängte Dateien
.csv   EXTF_Buchungen.csv (Größe: 3,56 KB / Downloads: 1)
Antworten Top
#14
Läuft bei mir problemlos durch, was aber der geringen Zahl der Zellen geschuldet sein kann.
Setze mal zusätzlich am Anfang des Makros:
Application.ScreenUpdating = False

Braucht bei Deiner Excel-Version nicht zurückgesetzt werden.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#15
Ok. Ich habe den Zusatz von dir eingefügt. Nach wie vor das gleich Ergebnis. So wie ich euch verstanden habe füge ich das Skript in das jeweilige Tabellenblatt ein und erstelle kein neues Modul. Allerdings ist es egal wo ich es einfüge. In das Tabellenblatt oder ein neues Modul das Ergebnis ist immer das gleiche. Einmal funktioniert es einmal nicht. Ich häng jetzt nochmal die Gesamtdatei an.


Angehängte Dateien
.csv   EXTF_Buchungen.csv (Größe: 631,12 KB / Downloads: 2)
Antworten Top
#16
Ich komme erst gegen Nachmittag dazu.

Ich werde Dir dann auch die Array-Variante vorstellen, dürfte einen Wimperschlag dauern.
Zwischenzeitlich:
Du willst doch die zweite Stelle des Kontos löschen?
Dann eher:
Left(Zelle, 1) & Mid(Zelle, 3, 9^9)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#17
(11.08.2016, 09:27)RPP63 schrieb: Ich komme erst gegen Nachmittag dazu.

Ich werde Dir dann auch die Array-Variante vorstellen, dürfte einen Wimperschlag dauern.
Zwischenzeitlich:
Du willst doch die zweite Stelle des Kontos löschen?
Dann eher:
Left(Zelle, 1) & Mid(Zelle, 3, 9^9)

Gruß Ralf

Vielen herzlichen Dank.

Freu mich auf deine Antwort.

Viele Grüße

Asceroon
Antworten Top
#18
Hallo zusammen,

einmal losgelöst von der anderen Diskussion, trifft der erstel Teil der Prüfung nicht immer zu wenn der zweite erfüllt ist?

Code:
IF Zelle <>““ And Len (Zelle) >5 Then


Ginge es nicht auch so?

Code:
If Len (Zelle) >5 Then

Gruß
Ich
Antworten Top
#19
Hi Du!  :19:
Du hast natürlich Recht!
@asceroon:
Mit meinem Wimperschlag lag ich falsch!
So schnell kann kein Mensch blinzeln!  :21:
Laufzeit des Makros bei 4779 Datensätzen auf meiner alten Möhre: 0,07 Sekunden.  :18:


Sub RPP()
Dim arrTmp, cnt As Long
Dim Start As Double
Start = Timer
arrTmp = Range(Cells(2, "G"), Cells(2, "G").End(xlDown))
For cnt = 1 To Ubound(arrTmp)
   If Len(arrTmp(cnt, 1)) > 5 Then _
      arrTmp(cnt, 1) = CLng(Left(arrTmp(cnt, 1), 1) & Mid(arrTmp(cnt, 1), 3, 9 ^ 9))
Next
Cells(2, "G").Resize(Ubound(arrTmp), 1) = arrTmp
Debug.Print Timer - Start
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Asceroon
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste