Erklärung Exceltool VBA-Programm
21.06.2021 11:03:54
Lukas
ich habe bereits zu nachfolgenden Thema zwei Fragen gestellt und diese wurden schnell und sehr verständlich beantwortet. Hierzu noch einmal ein großes Dankeschön.
Es handelt sich bei dem Programm um ein Exceltool, dass ein Kollege erstellt hat der leider schon einige Zeit aus dem Büro aus Altergründen ausgeschieden ist. Der Kollege hat seiner Zeit jedoch ein Exceltool erstellt zur Baukostenberechnung.
Mir wurde nun die ehrenwerte Aufgabe zuteil, dass Programm etwas anzupassen ( ich bin kein Excel Experte aber der jüngste im Büro... der Reste erklärt sich von selbst). Die Anpassungen konnte ich mit Hilfe des Webs und mit Hilfe des Forums auch tatsächlich durchführen.
Nun habe ich aber festgestellt, dass Excel in Verbindung mit VBA eine recht große Hilfe und und Möglichkeiten bietet ( wen man es beherrscht). Also habe ich mich dazu entschieden mich etwas intensiver damit auseinander zu setzen, darum wollte ich Fragen ob mir jemand den Code der besagten Baukostenberechnung erklären kann damit ich verstehe was da genau passiert.
Das Programm ist unter : https://www.herber.de/bbs/user/146688.xlsm zu finden
Code Position hinzufügen:
Option Explicit
Private Sub Beschreibung_Change()
End Sub
Private Sub Cancel_Click()
'Eingabefenster schliessen
Unload Positionhinzufügen
End Sub
Private Sub CommandButton1_Click()
'Eingaben in Zellen übernehmen
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(last, 1).Value = Positionhinzufügen.Ordnungszahl.Value
ActiveSheet.Cells(last, 2).Value = Positionhinzufügen.Gewerk.Value
ActiveSheet.Cells(last, 3).Value = Positionhinzufügen.Leistungsbeschreibung.Value
ActiveSheet.Cells(last, 4).Value = Positionhinzufügen.Mengeneinheit.Value
ActiveSheet.Cells(last, 5).Value = CCur(Positionhinzufügen.Einheitspreisniedrigst.Value)
ActiveSheet.Cells(last, 6).Value = CCur(Positionhinzufügen.Einheitspreisdurchschnittlich.Value)
ActiveSheet.Cells(last, 7).Value = CCur(Positionhinzufügen.Einheitspreishöchst.Value)
Unload Positionhinzufügen
End Sub
Private Sub UserForm_Initialize()
'Mengeneinheiten
With Positionhinzufügen.Mengeneinheit
.AddItem "m"
.AddItem "St"
.AddItem "m²"
.AddItem "m³"
.AddItem "psch"
.AddItem "m²/Wo"
.AddItem "m/Wo"
.AddItem "Monat"
End With
'Gewerke
With Positionhinzufügen.Gewerk
.AddItem "Baustelleneinrichtung"
.AddItem "Erd- und Entwässerungsarbeiten"
.AddItem "Beton- und Stahlbetonarbeiten"
.AddItem "Maurerarbeiten"
.AddItem "Gerüstbauarbeiten"
.AddItem "Trockenbauarbeiten"
.AddItem "Fensterbauarbeiten"
.AddItem "Installationsarbeiten Heizung/Sanitär"
.AddItem "Installationsarbeiten Elektro"
.AddItem "Verputzarbeiten"
.AddItem "Estricharbeiten"
.AddItem "Malerarbeiten"
.AddItem "Fliesenleger-/Bodenbelagsarbeiten"
.AddItem "Tischlerarbeiten"
.AddItem "Galabauarbeiten"
End With
End Sub
Private Sub Ordnungszahl_Change()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub Gewerk_Change()
End Sub
Code restliche Funktionen: Option Explicit
Sub Schaltfläche1_Klicken()
'Öffnen des Eingabefensters
Positionhinzufügen.Show
End Sub Sub Speichernunter1()
'Öffnet Speichern unter
Dim strDateiname As String
ChDrive "c:\"
ChDir "c:\Users\Lars\Documents"
strDateiname = ("Baukostenberechnung.pdf")
Application.Dialogs(xlDialogSaveAs).Show (strDateiname)
End Sub Sub SpaltenAusblenden()
Sheets("Baukostenberechnung").Activate
Columns("C:F").EntireColumn.Hidden = True
Columns("I").EntireColumn.Hidden = True
End Sub Sub SpaltenEinblenden()
Sheets("Baukostenberechnung").Activate
Columns("C:F").EntireColumn.Hidden = False
Columns("I").EntireColumn.Hidden = False
End Sub Sub Sortieren()
Sheets("Datenbank").Activate
Range("A1:G100").Sort Key1:=Range("A2"), Header:=xlYes
End Sub Ich hoffe das Sprengt nicht den Rahmen falls doch, möchte ich mich trotzdem nochmal für die beiden vorherigen Antworten bedanken Ihr habt mir damit sehr geholfen.
Grüße
Lukas