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
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige