Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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

Zeile festlegen, spalte flexibel

Zeile festlegen, spalte flexibel
20.12.2016 15:26:53
ALO
Hallo zusammen,
leider bin ich blutiger Anfänger und brauche deswegen Hilfe.
Ich habe mir berechnungstool gebastelt, das eigentlich nur aus Functions besteht.
Zur Erklärung es geht um eine Behälterberechnung. Ich habe jetzt in jede Zelle die jeweiligen Funktionen geschrieben. Das ganze soll nun auch auf Basis eines anderen Volumens funktionieren, am liebsten über das betätigen der Schaltfläche.
Mein Problem ist jetzt, dass funktioniert soweit auch, aber ich habe immer mit Cells(x,y) gearbeitet, damit lege ich ja die genaue position fest. Ich möchte aber, dass die berechnung mehrfach durchgeführt werden kann und in das Tabellenblatt geschrieben wird. Also Volumen 1 in spalte G, Volumen 2 in Spalte H usw.
Vielen Dank schonmal im vorraus!
Der Code schaut so aus.
Option Explicit

Sub SkaBehaelter()
'1. Kopieren von konstanten Werten______________________________
Range("D8:D10").Copy Destination:=Range("G8:G10") 'konstanten Werte kopieren und schreiben ( _
Viskosität,Dichte,Temperatur)
Range("D17:D18").Copy Destination:=Range("G17:G18") 'konstanten Werte kopieren und schreiben (   _
_
_
Behälterform)
Range("D15").Copy
Cells(15, 7).PasteSpecial Paste:=xlValues 'nur den Wert von H/D übernehmen
'2. Hilfswerte Abfragen
Select Case Cells(13, 7) 'Wandstärke Zarge
Case 0 To 100
Cells(24, 7) = Sheets("Hilfsdaten").Range("L21").Value
Case 101 To 500
Cells(24, 7) = Sheets("Hilfsdaten").Range("L22").Value
Case 501 To 2000
Cells(24, 7) = Sheets("Hilfsdaten").Range("L23").Value
Case Else
Cells(24, 7) = "keine Hilfsdaten vorhanden"
End Select
Select Case Cells(17, 7) 'Wandstärke Deckel
Case "gewölbter Boden"
Select Case Cells(13, 7)
Case 0 To 100
Cells(25, 7) = Sheets("Hilfsdaten").Range("M21").Value
Case 101 To 500
Cells(25, 7) = Sheets("Hilfsdaten").Range("M22").Value
Case 501 To 2000
Cells(25, 7) = Sheets("Hilfsdaten").Range("M23").Value
Case Else
Cells(25, 7) = "keine Hilfsdaten vorhanden"
End Select
Case "Flacher Boden"
Select Case Cells(13, 7)
Case 0 To 100
Cells(25, 7) = Sheets("Hilfsdaten").Range("N21").Value
Case 101 To 500
Cells(25, 7) = Sheets("Hilfsdaten").Range("N22").Value
Case 501 To 2000
Cells(25, 7) = Sheets("Hilfsdaten").Range("N23").Value
Case Else
Cells(25, 7) = "keine Hilfsdaten vorhanden"
End Select
End Select
Select Case Cells(17, 7) 'Wandstärke Boden
Case "gewölbter Boden"
Select Case Cells(13, 7)
Case 0 To 100
Cells(26, 7) = Sheets("Hilfsdaten").Range("O21").Value
Case 101 To 500
Cells(26, 7) = Sheets("Hilfsdaten").Range("O22").Value
Case 501 To 2000
Cells(26, 7) = Sheets("Hilfsdaten").Range("O23").Value
Case Else
Cells(26, 7) = "keine Hilfsdaten vorhanden"
End Select
Case "Flacher Boden"
Select Case Cells(13, 7)
Case 0 To 100
Cells(26, 7) = Sheets("Hilfsdaten").Range("P21").Value
Case 101 To 500
Cells(26, 7) = Sheets("Hilfsdaten").Range("P22").Value
Case 501 To 2000
Cells(26, 7) = Sheets("Hilfsdaten").Range("P23").Value
Case Else
Cells(26, 7) = "keine Hilfsdaten vorhanden"
End Select
End Select
'Hilfswerte Berechnung
Cells(38, 7) = (3.5 * Cells(25, 7)) 'Bordhöhe Klöpperboden Deckel
Cells(39, 7) = (3.5 * Cells(26, 7)) 'Bordhöhe Klöpperboden Boden
Cells(40, 7) = (Cells(21, 7) + (2 * Cells(26, 7))) 'Außendurchmesser ohne Mantel
'3. Neuberechnung vom Innendurchmesser
Cells(21, 7) = InnD((Cells(13, 7)), (Cells(15, 7)), (Cells(18, 7))) * 1000
'4. Berechnung zylindrische Höhe
Cells(19, 7) = (Cells(19, 4) / Cells(21, 4)) * Cells(21, 7)
'5. Innenhöhe berechnen
Cells(20, 7) = InnH(Cells(19, 7), Cells(21, 7), Cells(17, 7), Cells(18, 7), Cells(25, 7), Cells( _
_
_
26, 7))
'___________________________________________________________________________________
'6. Flüssigkeitshöhe
Cells(22, 7) = hfl(Cells(21, 7), Cells(39, 7), Cells(18, 7), Cells(13, 7), Cells(26, 7))
'7. Innenfläche
Cells(23, 7) = InnA(Cells(21, 7), Cells(19, 7), Cells(38, 7), Cells(39, 7), Cells(18, 7), Cells( _
_
_
17, 7))
'8. Massen
Cells(30, 7) = M_Deckel(Cells(21, 7), Cells(38, 7), Cells(17, 7), Cells(24, 7), Cells(25, 7)) '  _
_
_
Deckel
Cells(31, 7) = M_Zyl(Cells(21, 7), Cells(19, 7), Cells(24, 7)) 'Zarge
Cells(32, 7) = M_Boden(Cells(21, 7), Cells(39, 7), Cells(18, 7), Cells(24, 7), Cells(26, 7)) '   _
_
_
Boden
Cells(34, 7) = Cells(9, 7) * (Cells(13, 7) / 1000) 'Inhalt
Cells(35, 7) = WorksheetFunction.Sum(Range("G30:G34").Value)
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Berechnungen sind keine "Functions"
21.12.2016 09:19:26
lupo1
... da letztere eine Terminologie von VBA sind.
Eigentlich wären sie denn dann auch Deine Wahl, um Ergebnisse frei an gewünschter Stelle auszugeben (als Array-Function). Das geht aber auch mit einer Sub, wenn Du eine Ausgangszelle abfragst und dann relativ dazu Deine Cells bestimmst.
Um Dein Makro so lassen zu können, folgendes:
21.12.2016 10:50:28
lupo1
Vor End Sub die Zeile
Columns("G:G").Insert
einfügen. Dann rutschen die vorherigen Berechnungen einfach nach rechts.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige