ich importiere mit Hilfe von MS-Query Daten aus verschiedenen Datenquellen (meist über ODBC) in Excel. Das Problem dabei ist, dass einige Zahlenwerte als Text geliefert werden. Folgende Lösung habe ich bis jetzt:
Sub Makro1()
Range("N2").Select
ActiveCell.FormulaR1C1 = "=RC[-7]*1"
Range("O2").Select
ActiveCell.FormulaR1C1 = "=RC[-7]*1"
Range("N2:O2").Select
Selection.Copy
Range("M2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("N2:O18993").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range("G2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Columns("N:O").Select
Selection.Delete Shift:=xlToLeft
End Sub
Also ich multipliziere die Textwerte einfach mit 1, kopiere sie über die Textwerte drüber und lösche die "Rechenspalten" wieder weg. Funktioniert auch alles spitze, aber wie kann ich den Teil "Range("N2:O18993").Select" durch einen variablen Wert für die Spalte O ersetzen, dass die Formel immer nur bis zum letzten Datensatz (also N2:O-letzter-DS) kopiert wird, da sich bei der nächsten Abfrage der Datenbereich durchaus um einige 100 Datensätze +/- schwanken kann, ich aber vermeiden möchte, dass die Rechnung über den Datenbereich hinaus durchgeführt wird. Oder kann man das Problem insgesamt eleganter lösen?
Ich bin mir sicher, dass ich, wie bislang immer, hier auf Leute mit Spitzenideen treffe... :-)
Danke im Voraus & Gruss
Gunnar