ich bin über ein sehr merkwürdiges Problem gestoßen (Was mich das jetzt an Zeit gekostet hat!!):
Ich will mehrere Dateinamen auswählen (GetOpenFilename mit Multiselection = True). Wenn im aktiven Tabellenblatt eine bedingte Formatierung wie in der Beispieldatei ist, kommt GetOpenFilename TROTZ Multiselection mit einem String zurück - es sollte aber ein Array sein. Das geschieht aber auch nicht immer!
Meine Fragen nun:
* Könnt ihr den Fehler reproduzieren?
* Kann der Fehler behoben werden?
* Wenn nein, gibt es bessere Ideen als meinen Workaround unten?
-------------------------------------------------
Folgende Vorgehensweise sollte den Fehler in der Datei reproduzieren können:
Datei öffnen, Tabelle 1 Knopf drücken, irgendwelche Dateien auswählen, -> Ergebnis müßte irgendwas über 8000 sein
Knopf in Tabelle 2 drücken ...
bedingte Formatierung in Zelle A10 löschen
Knopf in Tabelle 2 drücken ...
bedingte Formatierung einsetzen (bitte selbe Formel: =ZEILE(A10)=$H$3)
Knopf in Tabelle 2 drücken ...
.
.
.
Kommt da irgendwann mal 8 als Ergebnis?
-------------------------------------------------
Mein Workaround derzeit:
' Dateien öffnen
' ****************************************************************
' Fehler im Dateien öffnen: Wenn im aktiven Tabellenblatt bedingte
' Formatierungen vorkommen, kommt es vor, daß GetOpenFilename trotz
' Multiselection nur einen String zurückliefert. Deswegen wird hier
' auf ein Blatt ohne bedingte Formatierung umgeschaltet, die Datei-
' selektion durchgeführt, dann zurückgeschaltet. ScreenUpdating wird
' abgeschaltet, dadurch merkt der Nutzer nix davon.
Name = ActiveSheet.Name
Application.ScreenUpdating = False
Worksheets("Übersicht").Activate
Dateien = Application.GetOpenFilename("alle Dateien (*.*),*.*", 1, "Dateien auswählen", , True)
If VarType(Dateien) = 11 Then Exit Sub
If VarType(Dateien) MsgBox "Excel-Fehler beim Laden der Dateien!" & vbCr & "Bedingte Formatierungen im Bereich entfernen!"
Exit Sub
End If
Worksheets(Name).Activate
Application.ScreenUpdating = True