VBA Code stoppt bei Zeile 1665

ChazyChaz

Lt. Commander
Registriert
Jan. 2006
Beiträge
1.028
Ich habe ein Problem mit einem VBA Code.
Dieser soll eigentlich bis zu Zeile 4000 durchlaufen, stoppt jedoch immer bei 1665.
Code:
Sub Tel()
Dim zelle2 As Object

ActiveSheet.Range("E2:G4000").Select

For Each zelle2 In Selection

SendKeys "{F2}", True
SendKeys "{F9}", True

SendKeys "{ENTER}", True

Next zelle2

Selection.NumberFormat = "+49 ?? ??? ????"
    Range("E2:G4000").Select
End Sub

Was ich damit tun will ist folgendes.
Der Text in den Zellen wird durch F2->F9->Enter von Text in eine Zahl umgewandelt. Anschließend wird die Formatierung der Zellen auf das gewünschte Telefonformat gebracht.

Woran kann es liegen, dass der Code nicht durchläuft?
 
Hm, warum der Code stoppt weiß ich nicht. Aber probier doch mal das:

Code:
Sub Tel()

Dim zelle2 As Range


For Each zelle2 In ActiveSheet.Range("E2:G4000")


zelle2 = Clng(zelle2)

zelle2.Numberformat = "+49 ?? ??? ????"


Next zelle2


End Sub
 
Du kannst die Umwandlung in Zahlen auch deutlich einfacher lösen, wenn du über "Daten" "Text in Spalten" gehst.
Spalten markieren, Dialog aufrufen und auf Fertigstellen klicken. Dann sollte alles an Text in Zahlen umgewandelt sein.
Die Formatierung kannst du auch direkt über die Oberfläche machen, oder du lässt den Teil, wie er ist.
 
  • Gefällt mir
Reaktionen: ChazyChaz
Du hast keine Fehlerbehandlung eingebaut, vlt. bricht es einfach so ab ohne Meldung.
Schonmal versucht, ein "ON ERROR GOTO" einzubauen?
 
@Alchemist: genialer Tipp! Ich habe echt lange nach einer Methode gesucht, um die Zellformatierung für "Text in Zahl umwandeln" zuverlässig hinzubekommen. Am Ende bin ich bei der Schleife gelandet, die Du oben in meinem Code siehst.
Ein einfaches Columns("A:A").TexttoColumns funktioniert super und ist viel kürzer.

Danke dafür!

Gruß,
Mick
 
  • Gefällt mir
Reaktionen: ChazyChaz und Alchemist
Funktioniert super und ist viel einfacher gelöst als meine umständliche Formel.
Danke!
 
Zurück
Oben