Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Letzte Ziffer in einer Tabelle weg Trimmen..
#1
Hallo,
 
Hoffentlich kann mir wer helfen, hab absolut keine Ahnung wie ich das veranstalten soll.
Ich habe einen Code in einer Tabelle diese beginnt immer auf D28 die Reihe und die Spalte ist jeweils unterschiedlich lange.
 
Ich selektiere sie wie folgt:
 
Code:
[color=#1f497d]'Find the last used column in a Row: row 28 in this example[/color]
[color=#1f497d]    Dim LastCol As Integer[/color]
[color=#1f497d]    With ActiveSheet[/color]
[color=#1f497d]        LastCol = .Cells(17, .Columns.Count).End(xlToLeft).Column ' - 1[/color]
[color=#1f497d]    End With[/color]
[color=#1f497d]    [/color]
[color=#1f497d]'Find the last used row in a Column: column C in this example[/color]
[color=#1f497d]    Dim LastRow As Long[/color]
[color=#1f497d]    With ActiveSheet[/color]
[color=#1f497d]        LastRow = .Cells(.Rows.Count, "C").End(xlUp).row[/color]
[color=#1f497d]    End With  [/color]

 
Jetzt würde ich gerne mit einer selection: (alle angaben ohne gewähr)
 
Code:
[color=#1f497d]    Range("D28").Select[/color]
[color=#1f497d]    Range(Cells(28, 4), Cells(LastRow, 4)).Select[/color]

 
Die letzte ziffer, der zahlen in der Tabelle löschen.. also z.b. 1.1116, wenn ich runden würde, würde excel 1.1120 drauß machen und wenn es 1.1111 ist würde es 1.1110 draus machen, ich hätte aber gerne das er die letzte
Zahl einfach weg „Trimt“ also das 1.1116 zu 1.111 wird ohne zu runden.
 
Wie könnte ich das am besten in meinem Code verbauen? L
 
Hab schon soviele Seitem in Netz durch geschaut, aber finde einfach nichts.
 
Würde ich sehr freuen wenn mir jemand helfen könnte..
 
Lizzz
Antworten Top
#2
Hallo,

z.B.:

Code:
Sub aaa()
  Dim rngZ As Range
  For Each rngZ In Range(Cells(28, 4), Cells(Cells(Rows.Count, 3).End(xlUp).Row, 4))
    rngZ.Value = Fix(rngZ.Value / 10)
  Next rngZ
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lizz96
Antworten Top
#3
Vielen Dank für deine Hilfe Uwe, bin immer wieder beeindruckt wenn jemand sowas aus dem Ärmelschüttelt :)

Leider macht es nicht ganz was es soll, werd mal noch damit rum spielen vielleicht komme ich drauf :) 

Aktuell löscht es in der Spalte D, ab Zeile 28 alle .. Also setzt quasi 1.0011 auf 0.0000 .. die anderen bleiben unberührt, aber wenigstens macht es etwas, das bringt mich schon mal näher :)

Liebe grüße und eine Schöne Nacht! :)


Angehängte Dateien Thumbnail(s)
   

.xlsm   TEST - Kopie.xlsm (Größe: 31,36 KB / Downloads: 2)
Antworten Top
#4
Hallo,

wenn es um Nachkommastellen geht, so z.B.:

Code:
Sub Button1_Click()
'
' Button1_Click Macro
  Dim rngZ As Range
  With Range(Cells(28, 4), Cells(Cells(Rows.Count, 3).End(xlUp).Row, 4))
    For Each rngZ In .Cells
      'rngZ.Value = Fix(rngZ.Value * 1000) / 1000
      'oder mit Excelfunktion ABRUNDEN()
      rngZ.Value = Application.RoundDown(rngZ.Value, 3)
    Next rngZ
    .NumberFormat = "#,##0.000"
  End With
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lizz96
Antworten Top
#5
Guten Morgen,
 
Vielen Lieben Dank, du schläft ja nie J
 
Der Code ist mal wieder der Wahnsinn, klappt super.. ABER leider immer noch nur in Spalte D, in E, F, G usw. wird nur gerundet. L

(Also in Spalte D, passiert genau was es soll.. nur in den anderen leider nicht.. :)
 
Vielen Dank J
Antworten Top
#6
Hallo,

Code:
Sub Button1_Click()
'
' Button1_Click Macro
  Dim rngZ As Range
  With Range(Cells(28, 4), Cells(Cells(Rows.Count, 3).End(xlUp).Row, Cells(17, Columns.Count).End(xlToLeft).Column - 1))
    For Each rngZ In .Cells
      'rngZ.Value = Fix(rngZ.Value * 1000) / 1000
      'oder mit Excelfunktion ABRUNDEN()
      rngZ.Value = Application.RoundDown(rngZ.Value, 3)
    Next rngZ
    .NumberFormat = "#,##0.000"
  End With
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lizz96
Antworten Top
#7
Was soll ich da noch sagen..
 
Ich habs die ganze Zeit mit Range versucht, aber hab es einfach nicht geschafft das ganze so zu verpacken das er die LastCol / LastRow aktzeptiert.

Code:
  Dim rngZ As Range
  With Range(Cells(28, 4), Cells(Cells(Rows.Count, 3).End(xlUp).row, 4))
'    For Each rngZ In .Cells
    For Each rngZ In Range("D28:P51")
      rngZ.Value = Application.RoundDown(rngZ.Value, 3)
    Next rngZ
'    .NumberFormat = "#,##0.000"

 
Du hast mir sehr sehr sehr geholfen!
 
Vielen Dank für deine Geduld! <3
Antworten Top


Gehe zu:


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