Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1588to1592
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
Inhaltsverzeichnis

Division mit cells

Division mit cells
04.11.2017 11:50:04
Sema
Hallo,
ich möchte nach Eingaben in einer Textbox in einer Tabelle noch eine Division durchführen.
Leider meldet mir Excel einen Laufzeitfehler, der durch meine letzte Zeile hervorgerufen wird. Lasse ich das /1.2 weg, tritt der Fehler nicht auf..ich möchte aber durch 20 Dividieren.
Private Sub CommandButton1_Click()
Cells(Cells(Rows.Count, "B").End(xlUp).Row + 1, "B").Value = TextBox1 'erste freie Zelle in SpalteB
Cells(Cells(Rows.Count, "C").End(xlUp).Row + 1, "C").Value = TextBox2 'erste freie Zelle in SpalteC
Cells(Cells(Rows.Count, "D").End(xlUp).Row + 1, "D").Value = TextBox3 'erste freie Zelle in SpalteD
Cells(Cells(Rows.Count, "F").End(xlUp).Row + 1, "F").Value = TextBox4 'erste freie Zelle in SpalteE
Cells(Cells(Rows.Count, "G").End(xlUp).Row + 1, "G").Value = TextBox5 'erste freie Zelle in SpalteG
Cells(Cells(Rows.Count, "K").End(xlUp).Row + 1, "K").Value = CCur(TextBox6) 'erste freie Zelle in SpalteK
Range(Cells(6, 9), Cells(100, 9)).Value = Range(Cells(6, 11), Cells(100, 11)).Value / 1.2
Danke vielmals für einen Tipp

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Division mit cells
04.11.2017 12:08:08
Sema
Fehler im Text-...ich möchte aber durch 1,2 Dividieren
AW: Division mit cells
04.11.2017 12:29:19
Daniel
Hi Sema
das geht so leider nicht.
du kannst in VBA Berechnungen immer nur mit Einzelzellen durchführen, aber nicht mehrere Zellen gleichzeitig.
der Workaround wäre hier, die Berechnung als Formel durchzuführen und hinterher die Formel durch ihre Werte zu ersetzen:
With Range(Cells(6, 9), Cells(100, 9))
.FormulaR1C1 = "=RC11*1.2"
.Formula  = .Value
End with
eine andere Methode wäre mit Copy-Paste zu arbeiten.
um die Division durchzuführen, musst du das 1.2 in eine freie Zelle schreiben, diese kopieren und dann mit Inhalte Einfügen - Vorgang: Dividieren in die andren Zellen einfügen.
würde als Code dann so aussehen:
Range(Cells(6, 9), Cells(100, 9)).Value = Range(Cells(6, 11), Cells(100, 11)).Value
With Range("Z1")
.Value = 1.2
.Copy
Range(Cells(6, 9), Cells(100, 9)).PasteSpecial xlpastevalues, operation:=xldivide
.ClearContents
End with

eine dritte Variante wäre, die Werte aus der Spalte K zunächst in ein Array zu laden, dort die Berechnung per Schleife durchzuführen und dann das Array in die Spalte I zurückschreiben.
(man könnte die Schleife auch direkt mit den Zellen machen, aber as ist in der Regel recht langsam und bei größeren Datenmengen ungeeignet)
dim arr
dim z as long
arr = Range(Cells(6, 11), Cells(100, 11)).Value
for z = 1 to ubound(arr, 1)
if isnumeric(arr(z, 1) Then arr(z, 1) = arr(z, 1) * 1.2
Next
Range(Cells(6, 9), cells(100, 9)).value = arr
Gruß Daniel
Anzeige
AW: Division mit cells
04.11.2017 12:46:01
Gerd
Hallo,
du kannst an der Quelle ansetzen.
If IsNumeric(TextBox6) Then _
Cells(Rows.Count, 11).End(xlUp).Offset(1, -2).Value = CCur(TextBox6) / 1.2

Gruß Gerd
AW: Division mit cells
05.11.2017 08:41:08
Sema
Danke Gerd !!
Das Ergebnis hat sich um eine Zeile nach unten verschoben...bei .offset(0, -2).Value ... klappt es dann.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige