PDA

Vollständige Version anzeigen : Listbox-Klick-Ereignis wird zweimal ausgeführt


Kentucky
03.07.2014, 14:56
Hallo liebe VBA Experten,

ich habe meine Listbox Inhalte mit je einer Word-Datei verknüpft.

Der erste (oberste) Eintrag den ich anklicke wird ganz normal einmal geöffnet.
Wenn ich dann in der selben Listbox (zusätzlich) den zweiten oder dritten Eintrag anklicke wird dieser zweimal geöffnet. (Beim 2. Word-Dok wird dann gefragt ob es als schreibgeschützte Kopie geöffnet werden soll und wenn man dann "Abbrechen" anklickt, wird ein Fehler im VBA verursacht)

Woher kommt so ein Fehler? Ich hab da überhaupt keinen Ansatz einer Idee.

Hier der Code aus der UserForm:


Private Sub ListBox2_Click()

Dim strLiBo2 As String, m
'strNummer = "14466" 'platzhalter für globale variable

If ListBox2.Value <> "" Then
strLiBo2 = ListBox2.Value

Select Case strNummer
Case "14466"
DINAufruf14466 strNummer, strLiBo2
Case "1028 - 1"
DINAufruf1028 strNummer, strLiBo2
Case "1846-2"
DINAufruf1846 strNummer, strLiBo2
Case "ISO 12100"
DINAufruf12100 strNummer, strLiBo2
End Select
End If

For m = 0 To ListBox2.ListCount - 1
ListBox2.Selected(m) = False
Next m

End Sub


An den "DINAufruf"-Prozeduren kann es nicht liegen weil die wirklich einfach strukturiert sind und da bin ich mir sicher das da alles stimmt. Die DINAufruf-Prozeduren übergeben dann an die WordÖffnen-Prozedur:


Code aus dem WordÖffnen Modul:

Sub WordÖffnen(strNormNummer_von_Sub_DINAufruf, _
strLiBo_Inhalt_von_Sub_DINAufruf As String)

Dim AppWD As Object

Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True

'AppWD.Documents.Open ActiveWorkbook.Path & "\DIN EN 14466" & "\5.1.1.doc"
AppWD.Documents.Open ActiveWorkbook.Path & "\DIN EN " & _
strNormNummer_von_Sub_DINAufruf & "\" & strLiBo_Inhalt_von_Sub_DINAufruf & ".doc"
On Error Resume Next
Set AppWD = Nothing

End Sub

Bitte gebt mir einen Tipp woran das liegen kann.
Bin echt ahnunglos.


Vielen, vielen Dank schonmal an alle Helfer.



Beste Grüße

Kentucky

R J
03.07.2014, 19:36
Hi Kentucky,

nimm das Change Ereignis...

Kentucky
04.07.2014, 07:14
Hallo RJ,

danke für deine Antwort. Leider funktioniert es nicht.
Er öffnet nach wie vor alle außer den obersten Eintrag zweimal.

Ich hab jetzt die Methode geändert.


Sub WordÖffnen(strNormNummer_von_Sub_DINAufruf, _
strLiBo_Inhalt_von_Sub_DINAufruf As String)

ActiveWorkbook.FollowHyperlink ActiveWorkbook.Path & "\DIN EN " & _
strNormNummer_von_Sub_DINAufruf & "\" & strLiBo_Inhalt_von_Sub_DINAufruf & ".doc"

End Sub



So funktioniert es erst mal, aber mich würde trotzdem die Lösung für das ursprüngliche Problem interessieren.


Beste Grüße

Kentucky

R J
04.07.2014, 07:30
...ha! Sehe gerade, Du hast ja am Ende des Click Ereignisses noch eine Schleife...
Ich gehe jetzt mal davon aus, dass Du Multiselect auf True hast? Falls nicht, nimm die Schleife raus, falls doch, dann sollten die selektierten Einträge in ein Array geschrieben werden und das dann im Aufruf für das Worddokument abgearbeitet werden...

Kentucky
04.07.2014, 08:28
Hallo RJ,

vielen Dank für deine Hilfe. Jetzt klappts.


Beste Grüße

Kentucky