F2 + Enter für das ganze Worksheet

jerry0110

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem. Ich habe eine komplette Exceldatei bekommen.
Diese ist ein Export aus einer Datenbank. Um jetzt Formel nutzen zu können muss ich in jede Zelle mit "F2" rein und dann mit "Enter" wieder raus. Somit kann ich dann auch Formeln nutzen.

Jetzt habe ich mir schon mit der Suche folgendes Makro rausgesucht:

Public Sub Test_2500()
'Alle Werte in Zahlenwerte umwandeln
Dim zelle2 As Object
Sheets(1).Range("K1:K2499").Select
For Each zelle2 In Selection
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next zelle2
End Sub

Das klappt auch. Nur mein Problem ist, wenn ich die Range auf K1:K23000 ändere dann läuft das Makro genau nur bis zur 2500en Zelle. Die Spalte hat aber je Spalte 23500 Einträge. Was muss ich machen, damit das Makro durchläuft ohne bei 2500 zu halten?
 
Moin Jerry,

SendKeys halte ich für extrem suboptimal. Dieser Code sollte glatt durchlaufen:

Option Explicit

Sub Num2Num()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
If IsNumeric(c) And c > "" Then
c = CDbl(c)
c.NumberFormat = xlNumberFormatTypeDefault
End If
Next c
Application.ScreenUpdating = True
End Sub
 
Hi Drogist,

danke für den Code.
Wenn ich ihn ausführe, dann kommt eine Fehlermeldung, dass die Variable nicht definiert ist.

Grüße
 
Moin Jerry,

schwer nachvollziehbar ... Ich habe es eben noch einmal probiert, klappt!
Der Anhang sollte auch bei dir funktionieren ...

Edit: Du kannst natürlich statt
For Each c In Selection
gleich die gewünschte Range einsetzen:
For Each c In Range("K1:K2499")
dann ersparst du dir die völlig überflüssige Selectiererei :cool:

Gruß
Günther
 

Anhänge

Zuletzt bearbeitet:
Geht es dir darum das du die Inhalte nach dem Einlesen als Text in der Zelle stehen hast und du sie in eine Zahl umwandeln musst?

Dann gibt es noch einen anderen Trick für den du auch kein Makro brauchst.

1) Du schreibst irgendwo in deiner Excel Tabelle die Zahl 1 in eine Zelle. Diese Zelle markierst und kopierst du dann.

2) Als nächstes markierst du alle die Zellen die du umwandeln musst.

3) Du klickst bei "Einfügen" auf den Pfeil und dann auf "Inhalte einfügen".

4) In dem nun geöffneten Fenster markierst du bei "Vorgang" die Option "Multiplizieren" und klickst auf Ok.

Dadurch werden alle deine Inhalte mit dem Faktor 1 multipliziert. Dies verändert nichts am Wert selber aber er wird durch die Multiplikation in eine Zahl umgewandelt.

Gruß
Thomas
 
Zurück