Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

lacht nicht! (VBA Grundwissen?!)

Hi Leute.

Habe mal eine Frage zu meinem nicht so (denke ich) elegantem Programm. Gibt’s vllt. ne Möglichkeit das kürzer zu formulieren.
Dieses Programm soll mir Combobox Inhalte (pdf, docx, etc.) nach Auswahl drucken oder einfach nur öffnen. Es treten auch sehr oft Fehlermeldungen im endgültig laufenden Programm auf.
Zu mir: Ich habe mich nur am Rande mit dem Programmieren beschäftigt, weil ich es schon immer cool fand und ich diese kleine Anwendung hier brauche. Vllt. hat einer Zeit mir das ding auch mal in einer etwas neueren Sprache zu zeigen. Ich hab bis jetzt nur VBA 2015 dafür genutzt.

Danke!


[ code]

Public Class Form1
    Private Sub Button1_click(sender As Object, e As EventArgs) Handles Button1.Click

        ' Öffnen

        If ComboBox1.SelectedItem = "" Then
            MsgBox("Nichts ausgewählt!")
        End If

        If ComboBox1.SelectedItem = "1" Then
            System.Diagnostics.Process.Start("C:\1.docx")
        End If

        If ComboBox1.SelectedItem = "2" Then
            System.Diagnostics.Process.Start("C:\2.docx")
        End If
       
        If ComboBox1.SelectedItem = "3" Then
            System.Diagnostics.Process.Start("C:\3.xls")
        End If

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        ' Drücken

        If ComboBox1.SelectedItem = "" Then
            MsgBox("Nichts ausgewählt!")
        End If

        If ComboBox1.SelectedItem = "1" Then
            Dim externeanwendung As New System.Diagnostics.Process()
            externeanwendung.StartInfo.FileName = "C:\1.docx"
            externeanwendung.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            externeanwendung.StartInfo.Verb = "print"
            externeanwendung.Start()
        End If

        If ComboBox1.SelectedItem = "2" Then
            Dim externeanwendung As New System.Diagnostics.Process()
            externeanwendung.StartInfo.FileName = "C:\2.docx"
            externeanwendung.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            externeanwendung.StartInfo.Verb = "print"
            externeanwendung.Start()
        End If

        If ComboBox1.SelectedItem = "3" Then
            Dim externeanwendung As New System.Diagnostics.Process()
            externeanwendung.StartInfo.FileName = "C:\3.xls"
            externeanwendung.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            externeanwendung.StartInfo.Verb = "print"
            externeanwendung.Start()
        End If
       
     End Sub
     
End Class

[ /code]


Antworten zu lacht nicht! (VBA Grundwissen?!):

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich kenne jetzt kein VBA, aber machen die beiden Buttons nicht das gleiche? Also abhängig von der Auswahl "1.docx", "2.docx" oder "3.xls" öffnen?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

hi danke erstmal für die antwort.

also nein, der eine befehl öffnet die datei nach comboboxauswahl und der andere druckt sie direkt nach comboboxauswahl.

die Programmiersprache ist Basic oder Visual Basic und VBA ist das Programm von Microsoft zum coden Visual Basic for Applications.

Ich dachte vllt, dass es möglich wäre die dateien als Liste zu programmieren, dass ich nicht für jede einen eigenen "IF" Abschnitt brauche. (bzw. denke ich, dass das die Fehlermeldungen verursacht..)

Ich hab auch schon ne ganze menge zeit investiert und tonnen von seiten durchsucht.. aber wenn man eine Programmiersprache nicht von grund auf lernt, ist das meiner meinung nach nicht so einfach.

bzw. würde ich das programm auch in einer anderen Sprache schreiben, wenn mir einer eine Anleitung zeigt.

Danke!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was VBA ist weiß ich schon und mit BASIC habe ich auch mal angefangen, aber das war ein bisschen anders als dein VBA jetzt :-)


Welche Fehlermeldungen kommen denn? Dann kann man danach suchen und ich schau mir die VBA Syntax mal an!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Besser Spät, als Nie.

Also hier mal noch die dazugehörige Fehlermeldung. Da steht ja auch ein Hinweis am Ende. Nur so richtig kann ich damit nichts anfangen...
Eigentlich hatte ich noch auf jemanden gehofft, der mir das Ding als Liste schreibt (dass ich keinen eigenen Befehl für jedes Dokument brauche)


Hier die Meldung:


Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.ComponentModel.Win32Exception (0x80004005): Das System kann die angegebene Datei nicht finden
   bei System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   bei System.Diagnostics.Process.Start()
   bei System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   bei System.Diagnostics.Process.Start(String fileName)
   bei WindowsApplication1.Form1.Button1_click(Object sender, EventArgs e)
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3362.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
2018
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///Z:/Formbl%C3%A4tter/Formbl%C3%A4tter.exe.
----------------------------------------
Microsoft.VisualBasic
    Assembly-Version: 10.0.0.0.
    Win32-Version: 14.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3362.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3362.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3324.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3324.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Runtime.Remoting
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.7.3190.0 built by: NET472REL1LAST_C.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,
kann es sein, das wir hier nicht über VBA (Visual Basic für Applicationen)für Excel, Word und co. reden,sondern über VB (Visual Basic)?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ist denn das nicht das selbe?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nein, ganz und garnicht.

Nimm eine Exceltabelle oder ein Worddokument und drücke Alt + F11, dann bist Du im "Visual Basic für Applikationen". Da kann man schnell mal was hinfummeln.

VBA läuft nur mit der jeweiligen Anwendung, sprich Word, Excel, Access.
mit VB dagegen kann man eigenständige Programme erstellen. Dazu benötigt man aber die entsprechende Entwicklungsumgebung.
Schwierigkeitsgrad ist meiner Meinung nach nicht vergleichbar.


« Android Quellcode ändern?VBA: Fehler beim Kompilieren - ungültiger Bezeichner »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Zugriffszeit
In Milisekunden angegebene Zeit, die das Speichermedium zum Erreichen der gesuchten Daten braucht. Die Zeit ist abhängig vom technischen Verfahren des Mediums sowie ...