Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox Multiselect Automatisierungsfehler

Listbox Multiselect Automatisierungsfehler
16.02.2009 21:24:00
Leon
Hallo
Ich habe ein kleines Problem:
Wenn ich keines der Blätter ausgewählt habe in der Listbox Multiselect und ungewollt auf den Commandbutton komme, bringt er mir den Fehler= Automatisierungsfehler, das Objekt wurde vom Clients getrennt.
Wie kann ich das verhindern?

Private Sub Commandbutton1_Click()
Dim varPrintTable() As String
Dim iTable As Integer, iVar As Integer
iVar = 1
For iTable = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iTable) Then
ReDim Preserve varPrintTable(iVar)
varPrintTable(iVar) = ListBox1.List(iTable)
iVar = iVar + 1
End If
Next iTable
Sheets(varPrintTable).PrintOut
End Sub


Für Hilfestellungen danke ich
Gruß
Leon

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Multiselect Automatisierungsfehler
16.02.2009 21:37:00
fcs
Hallo Leon,
eine Prüfung, ob der Array-Zähler noch auf 1 steht sollte das Problem bereinigen.
Gruß
Franz

Private Sub Commandbutton1_Click()
Dim varPrintTable() As String
Dim iTable As Integer, iVar As Integer
iVar = 1
For iTable = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iTable) Then
ReDim Preserve varPrintTable(iVar)
varPrintTable(iVar) = ListBox1.List(iTable)
iVar = iVar + 1
End If
Next iTable
If iVar = 1 Then
MsgBox "Es ist kein Tabellenblatt zum Drucken gewählt!"
Else
Sheets(varPrintTable).PrintOut
End If
End Sub


Anzeige
AW: Listbox Multiselect Automatisierungsfehler
16.02.2009 21:43:00
Josef
Hallo Leon,
eine Möglichkeit.
' **********************************************************************
' Modul: Modul5 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Private Declare Sub GetSafeArrayPointer Lib "msvbvm60.dll" Alias "GetMem4" _
    (pArray() As Any, sfaPtr As Long)



Private Sub Commandbutton1_Click()
    Dim varPrintTable() As String
    Dim iTable As Integer, iVar As Integer
    Dim sfaPtr As Long
    
    iVar = 1
    For iTable = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(iTable) Then
            Redim Preserve varPrintTable(iVar)
            varPrintTable(iVar) = ListBox1.List(iTable)
            iVar = iVar + 1
        End If
    Next iTable
    
    GetSafeArrayPointer varPrintTable, sfaPtr
    
    If sfaPtr > 0 Then Sheets(varPrintTable).PrintOut
    
End Sub

Gruß Sepp

Anzeige
AW: Fehler ist durch Euch beide gelöst. Danke
16.02.2009 23:18:00
Leon
Hallo Franz, hallo Sepp
Beide Varianten sind einfach spitze. Wie kann ich Euch danken?
Möchte mich nochmals für Eure Hilfe bedanken.
danke an Euch beide
Gruß
Leon
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige