Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisches Runden

Automatisches Runden
14.12.2005 12:54:15
Jörg
Hallo,
ich habe ein Problem mit einen Script , das mir eine Datei in eine Excelmappe läd,und rundet einige Spalten.
Nun unter Excel 2003 geht das ganze nicht mehr:
' einlesen des Sollwertes und runden auf ganze Zahlen Spalte F
If [F65536] = "" Then
LoLetzte = [F65536].End(xlUp).Row
Else: LoLetzte = 65536
End If
For LoI = 1 To LoLetzte
With Cells(LoI, 6)
If IsNumeric(.Value) Then
.NumberFormat = "#0"
.Value = Application.WorksheetFunction.Round(.Value, 0)
End If
End With
Next LoI
With Columns("G")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
With Columns("H")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
Cells.EntireColumn.AutoFit
Sheets("Auswert").Visible = True
Sheets("Auswert").Select
ActiveSheet.Unprotect
Sheets("Auswert").Select
Columns("A:H").Select
Selection.ClearContents
Range("A1").Select
Sheets("Simpati-Daten").Select
Range("E3").Select
Rows("3:3").Select
ActiveWindow.FreezePanes = True
Range("E3").Select
Sheets("Auswert").Visible = False
wie muss ich dieses Script ändern , damit es in alles Excel-Versionen läuft.
Gruss Jörg

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisches Runden
14.12.2005 23:08:40
Berber
Hallo,
also betreffend der Rundenfunktion gibt es in 2003 kein Problem.
Der Code läuft bei mir

Sub runden()
Worksheets(1).Cells(1, 1).NumberFormat = "#0"
Worksheets(1).Cells(1, 1).Value = Application.WorksheetFunction.Round(Worksheets(1).Cells(1, 1).Value, 0)
End Sub

Schau Dir mal an was For LoI = 1 To LoLetzte als LoLetzte zurückgibt als Zahlenwert
und was If IsNumeric(.Value) zurückgibt (wahr oder falsch)
Gruss
Berber
AW: Automatisches Runden
15.12.2005 13:47:25
Jörg
Hallo,
danke für die Antwort ...
Dann muss es an den Ländereinstellungen liegen .....,
ich werde es mal überprüfen.
Gruss Jörg
Anzeige
AW: Automatisches Runden
22.12.2005 10:29:53
Jörg
Hallo,
ich hjabe nun ebenfalls Excel 2003 auf meinen Rechner und habe
das Problem nun auf meinen Schirm.....
Hier nochmals der ganze Code zum Import:
Aktuell_Datei = ActiveWorkbook.Name
strVerzeichnis = "C:\Eigene Dateien\"
StrTyp = "*.xls"
Dateiname = (strVerzeichnis & Aktuell_Datei & StrTyp)
dat = Application.GetOpenFilename("Simpatidateien (*.x0*), *.*")
If dat = False Then Exit Sub
If dat "Falsch" Then Workbooks.OpenText dat, Origin _
:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
Cells.Select
Selection.Copy
Windows(Aktuell_Datei).Activate
Sheets("Simpati-Daten").Visible = True
Sheets("Simpati-Daten").Select
Cells.Select
ActiveSheet.Paste
Cells.EntireColumn.AutoFit
Columns("A:A").Select
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter
Columns("A:A").Select
Rows("3:3").Select
Selection.Delete Shift:=xlUp
Rows("1:2").Select
Selection.RowHeight = 27
Range("A1").Select
With Columns("C")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
' einlesen des Sollwertes und runden auf ganze Zahlen Spalte D
Dim LoLetzte As Long
Dim LoI As Long
If [D65536] = "" Then
LoLetzte = [D65536].End(xlUp).Row
Else: LoLetzte = 65536
End If
For LoI = 1 To LoLetzte
With Cells(LoI, 4)
If IsNumeric(.Value) Then
.NumberFormat = "#0"
.Value = Application.WorksheetFunction.Round(.Value, 0)
End If
End With
Next LoI
With Columns("E")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
' einlesen des Sollwertes und runden auf ganze Zahlen Spalte F
If [F65536] = "" Then
LoLetzte = [F65536].End(xlUp).Row
Else: LoLetzte = 65536
End If
For LoI = 1 To LoLetzte
With Cells(LoI, 6)
If IsNumeric(.Value) Then
.NumberFormat = "#0"
.Value = Application.WorksheetFunction.Round(.Value, 0)
End If
End With
Next LoI
With Columns("G")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
With Columns("H")
.NumberFormat = "#,##0.0000"
.Value = .Value
End With
Cells.EntireColumn.AutoFit
Sheets("Auswert").Visible = True
Sheets("Auswert").Select
ActiveSheet.Unprotect
Sheets("Auswert").Select
Columns("A:H").Select
Selection.ClearContents
Range("A1").Select
Sheets("Simpati-Daten").Select
Range("E3").Select
Rows("3:3").Select
ActiveWindow.FreezePanes = True
Range("E3").Select
Sheets("Auswert").Visible = False
Application.ScreenUpdating = True
WEnn ich mir nun die geöffnete dAtei anschaue, dann sehe ich, das hier
alle Felder als Text zu finden sind.
Daher ändere ich ja dies mit dem Macro um , aber warum klappt dies so bis Office 2000?
Gruss Jörg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige