Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige