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)
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
Top
#13
(11.08.2016, 09: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)
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)
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)
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)
Top
#17
(11.08.2016, 10: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
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
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
Top


Gehe zu:


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