03.03.2020, 12:05 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2020, 12:06 von Zeichner.)
Hi zusammen
Ich habe folgendes Problem: Mehrere Mitarbeiter sollen ein Formular ausfüllen welche ich über eine Excel VBA Userform erstellt habe. Diese Daten werden dann direkt in Excel in eine "Datenbank" eingelesen. Jetzt hätte ich allerdings gerne das sie nur das Formular bearbeiten können ohne das sie die Excel Datenbank öffnen.
Dim objExcel Dim objWshShell Set objExcel = WScript.CreateObject("Excel.Application") Set objWshShell = CreateObject("WScript.Shell") objExcel.Visible = FALSE objExcel.DisplayAlerts = FALSE
03.03.2020, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2020, 12:53 von Zeichner.)
Hi noch einmal
Nächstes Problem; wenn alle 4 Formulare ausgefüllt sind werden per Knopdruck alle eingaben in die Excel eingetragen, das Funktioniert wenn ich das Makro mit geöffneter Excel starte einwandfrei, allerding mit diesem Code leider nicht... Wo muss ich der Code anpassen das das Funktioniert? Im Userform oder in der .vbs Datei?
Der Code im UserForm4:
Code:
Option Explicit
Private Sub Bestätigen_Click()
'erste Freie Zeile ausfindig machen Dim Last As Integer Worksheets("Datenbank").Activate Last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If UserForm1.CheckBox_WandSchalung = True Then Cells(Last, 14).Value = "R" If UserForm1.CheckBox_Deckenschalung = True Then Cells(Last, 15).Value = "R" If UserForm1.CheckBox_Armierung = True Then Cells(Last, 16).Value = "R" If UserForm1.CheckBox_Mauerwerk = True Then Cells(Last, 17).Value = "R" If UserForm1.CheckBox_FBFolie = True Then Cells(Last, 18).Value = "R" If UserForm1.CheckBox_Dämmung = True Then Cells(Last, 19).Value = "R" If UserForm1.CheckBox_Elemente = True Then Cells(Last, 20).Value = "R" If UserForm1.CheckBox_KanalisationWerkleitungen = True Then Cells(Last, 21).Value = "R"
If UserForm2.CheckBox_Bauprogramm = True Then Cells(Last, 25).Value = "R" If UserForm2.CheckBox_Grobprogramm = True Then Cells(Last, 26).Value = "R" If UserForm2.CheckBox_Etappierung = True Then Cells(Last, 27).Value = "R" If UserForm2.CheckBox_InstallationLogistik = True Then Cells(Last, 28).Value = "R" If UserForm2.CheckBox_BauablaufVideo = True Then Cells(Last, 29).Value = "R" If UserForm2.CheckBox_Mengenüberprüfung = True Then Cells(Last, 30).Value = "R" If UserForm2.CheckBox_DefinitionPauschale = True Then Cells(Last, 31).Value = "R" If UserForm2.CheckBox_NPKNr = True Then Cells(Last, 32).Value = "R" If UserForm2.CheckBox_Kalkulation = True Then Cells(Last, 33).Value = "R" If UserForm2.CheckBox_Potential = True Then Cells(Last, 49).Value = "R" If UserForm2.CheckBox_AGBs = True Then Cells(Last, 50).Value = "R" If UserForm2.CheckBox_Ergänzung = True Then Cells(Last, 51).Value = "R" If UserForm2.CheckBox_Kranoptik = True Then Cells(Last, 36).Value = "R" If UserForm2.CheckBox_Personalplanung = True Then Cells(Last, 37).Value = "R" If UserForm2.CheckBox_LeistungsabhängigeKosten = True Then Cells(Last, 38).Value = "R" If UserForm2.CheckBox_SchalungBewehrungBeton = True Then Cells(Last, 39).Value = "R" If UserForm2.CheckBox_Mauerwerk = True Then Cells(Last, 40).Value = "R" If UserForm2.CheckBox_Planlieferprogramm = True Then Cells(Last, 41).Value = "R" If UserForm2.CheckBox_Elementlieferprogramm = True Then Cells(Last, 42).Value = "R" If UserForm2.CheckBox_Zahlungsplan = True Then Cells(Last, 43).Value = "R" If UserForm2.CheckBox_TerminplanBL = True Then Cells(Last, 48).Value = "R"
'Userform3 If Userform3.CheckBox_BimModell = True Then Cells(Last, 53).Value = "R" If Userform3.CheckBox_Architektenpläne = True Then Cells(Last, 54).Value = "R" If Userform3.CheckBox_Ingenieurpläne = True Then Cells(Last, 55).Value = "R" If Userform3.CheckBox_Etappierungspläne = True Then Cells(Last, 56).Value = "R" If Userform3.CheckBox_Aushubplan = True Then Cells(Last, 57).Value = "R" If Userform3.CheckBox_Kanalisation = True Then Cells(Last, 58).Value = "R" If Userform3.CheckBox_Umgebungsplan = True Then Cells(Last, 59).Value = "R" If Userform3.CheckBox_InstallationLogistik = True Then Cells(Last, 60).Value = "R" If Userform3.CheckBox_MateriallisteStückliste = True Then Cells(Last, 61).Value = "R" If Userform3.CheckBox_LeistungverzeichnisDevis = True Then Cells(Last, 62).Value = "R" If Userform3.CheckBox_Werkvertrag = True Then Cells(Last, 63).Value = "R" If Userform3.CheckBox_Grobterminplan = True Then Cells(Last, 64).Value = "R" If Userform3.CheckBox_Bauablauf = True Then Cells(Last, 65).Value = "R" If Userform3.CheckBox_BesondereBestimmungen = True Then Cells(Last, 66).Value = "R" If Userform3.CheckBox_AGBs = True Then Cells(Last, 67).Value = "R" If Userform3.CheckBox_Auflagen = True Then Cells(Last, 68).Value = "R" If Userform3.CheckBox_GeologischesGutachten = True Then Cells(Last, 69).Value = "R" If Userform3.CheckBox_Nutzungsvereinbarung = True Then Cells(Last, 70).Value = "R" If Userform3.CheckBox_Kontrollplan = True Then Cells(Last, 71).Value = "R" If Userform3.CheckBox_ARGLogo = True Then Cells(Last, 72).Value = "R"
UserForm4.Hide
End Sub
Private Sub Zurück_Click() UserForm4.Hide Userform3.Show End Sub
was ist ein VBS Script? Wo stellt man das genau ein?
Code:
objExcel.Run "Test.xlsb!UserformExternAufrufen"
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
03.03.2020, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2020, 14:50 von snb.)
Code:
Private Sub Workbook_open() application.visible=false Useform1.show End sub
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(listbos1.List) + 1, UBound(listbos1.List, 2)) = listbox1.List Application.visible=true End Sub