Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Muß ein Code noch in XL97 laufen können?
02.02.2008 19:46:19
Reinhard
Hallo Wissende,
wenn ihr vba-Code schreibt, welche ist die unterste XL-Version auf der er laufen können muß?
(Lassen wir mal weg, ein Kunde beharrt darauf etws für Xl4 zu bekommen, o.ä.)
Ist das Xl97 oder XL2000? Oder gar noch höher?
Sicher, bei einem Kundenauftrag fragt ihr ab welche Versionen denn vorliegen, das meine ich nicht.
Ihr habt die Idee eines Add-Ins um das zu vermarkten, und es soll natürlich auf "allen" Versionen laufen, nur welche ab welcher Version sind "alle"?
XL4,XL5, XL8,...?
Man könnte meine Frage auch so sehen, wer benutzt denn überhaupt noch XL97, außer mir und Boris von Excelformeln.de( :-) )?
Ich weiß, ich erzähle viel, verwirre dadurch, deshalb jetzt die wie ich hoffe eindeutige Frage:
Auf welchen Xl-Versionen muß eurer Meinung nach heute produzierter Vba-Code lauffähig sein?
(Besonderheiten wie irgendwelche light-Versionen für Palms,laptops und auch für Mac o.ä. mal weglassend)
Danke ^ Gruß
Reinhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Muß ein Code noch in XL97 laufen können?
02.02.2008 19:55:59
Volti
Hallo Reinhard,
hier zuhause habe ich noch XL97 und bin für meine Zwecke auch zufrieden damit. Ab und zu stoße ich aber auf Probleme, da auf der Arbeit mittlerweile XL2002 verwendet wird und nicht alles kompatibel ist.
Denke, Excel 5 oder gar 4 ist out.
viele Grüße
Karl-Heinz

AW: Muß ein Code noch in XL97 laufen können?
02.02.2008 20:01:49
Hajo_Zi
Hallo Reinhard,
das VBA was bei aktuelleen Versinen läuft, geibt es erst seit Version 97. Davor war der Code in eine Art Tabelle.
Ab 97 sollte das schon laufen.

Mind ab xl9, evtl auch noch xl8 (VB6) und...
02.02.2008 20:59:00
Luc:-?
...wenn's geht auch schon xl12, Reinhard... ;-)
Davor hatte xl ein anderes Objektmodell bzw gar eine andere Script-Sprache (xl4).
Gruß Luc :-?

Anzeige
Dankeschön für die Antworten
03.02.2008 15:58:00
Reinhard
Hallöchen,
ich habe mich jetzt in letzter Zeit damit beschäftigt Codes zu schreiben die sowohl in XL97 und auch höher laufen.
Dabei stiess ich auf die Abfrage
#IF VBA6=0
usw.
Da XL97 kein Split kennt, bastelte ich mir eine eigene Splitfunktion. Auch diese API-Funktionen damit man eine UF in XL97 modeless anzeigen kann fand ich im Netz. Und einiges mehr bastelte ich mir.
Da ich dabei sehr viel lernte will ich diese Erfahrung nicht missen, weil die ist ja unabhängig von XL97.
Jetzt dachte ich mir, lohnt sich das, abgesehen vom Lernen, dies weiter zu verfeinern. Also z.B. für Sort was zu basteln, daß man im Code die zusätzlichen Parameter angeben kann, die XL97 nicht kennt, und wenn halt der Code auf XL97 läuft, kein Fehler kommt, sondern daß die einfach ignoriert werden.
Ignorieren heißt jetzt nicht On Error Resume Next, aber ich denke, das ist klar.
Deshalb meine Anfrage hier, ob denn Codes heutzutage noch XL97 tauglich sein müssen.
Ich deute jetzt die Antworten so, ja, XL97 ist im Gegensatz zu Vorläufern durchaus noch aktuell, also macht es Sinn dies weiterauszubauen.
Okay, schon habe ich 2 Fragen zu Bugs in XL97.
Wenn ich mit OleObjects.Add z.B. eine ListBox auf einem Blatt erzeuge und dieser den Namen "LB1" gebe, so kann ich mit OleObjects("LB1") darauf zugreifen.
Aber wenn ich im Dokumentmodul des Blattes bin, wird sie als ListBox1 angezeigt.
Was für mich irritierend ist, ich kann sie als OleObjects("LB1") ansprechen, aber ihre Auswertung erfolgt so:
Private Sub ListBox1_Click()
usw.
und nicht
Private Sub LB1_Click()
Öffne ich die Datei mit XL2000, so ist alles okay, im Modul des Blattes wird sie als "LB1" angezeigt.
Schließe ich XL2000 und öffne mit XL97, so heißt die Listbox dann auch korrekterweise "LB1"
Kann man dem irgendwie beikommen?
Weiteres Problem bei XL97
Wenn ich eine FileSearch starte, so bricht XL97 bei
.FileFind "*.xls"
ab. (Habe jetzt grad den Code nicht da, könnte ich aber nachliefern, obwohl gar nicht nötig, ist der Code aus der Vba-Hilfe zu FileSearch)
Wie kann man dem beikommen?
Danke ^ Gruß
Reinhard

Anzeige
OT Frage auf noch offen gestellt
03.02.2008 16:00:20
Reinhard

AW: Dankeschön für die Antworten
03.02.2008 17:56:10
Josef
Hallo Reinhard,
warum FileSearch bei dir nicht funktioniert, kann ich jetzt nicht sagen, aber xl2007 unterstützt FileSearch nicht mehr.
Daher verwende ich eine selbst erstellte Funktion, die Versionsunabhängig läuft.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
'by J.Ehrensberger
Private Function FileSearchINFO(ByRef Files As Variant, ByVal InitialPath As String, Optional ByVal FileName As String = "*", _
    Optional ByVal SubFolders As Boolean = False) As Long


Dim fobjFSO As Object, ffsoFolder As Object, ffsoSubFolder As Object, ffsoFile As Object

Set fobjFSO = CreateObject("Scripting.FileSystemObject")

Set ffsoFolder = fobjFSO.GetFolder(InitialPath)

On Error Resume Next

For Each ffsoFile In ffsoFolder.Files
    If Not ffsoFile Is Nothing Then
        If LCase(fobjFSO.GetFileName(ffsoFile)) Like LCase(FileName) Then
            If IsArray(Files) Then
                Redim Preserve Files(UBound(Files) + 1)
            Else
                Redim Files(0)
            End If
            Set Files(UBound(Files)) = ffsoFile
        End If
    End If
Next

If SubFolders Then
    For Each ffsoSubFolder In ffsoFolder.SubFolders
        FileSearchINFO Files, ffsoSubFolder, FileName, SubFolders
    Next
End If

If IsArray(Files) Then FileSearchINFO = UBound(Files) + 1
On Error GoTo 0
Set fobjFSO = Nothing
Set ffsoFolder = Nothing
End Function

Sub test()
Dim a, b
Dim result As Long, l As Long

result = FileSearchINFO(a, "F:\", "*.xls", True)

If result <> 0 Then
    Redim b(UBound(a) + 1, 5)
    b(0, 0) = "Name"
    b(0, 1) = "Path"
    b(0, 2) = "Size/KB"
    b(0, 3) = "DateCreated"
    b(0, 4) = "DateLastModified"
    b(0, 5) = "DateLastAccessed"
    For l = 0 To UBound(a)
        b(l + 1, 0) = a(l).Name
        b(l + 1, 1) = a(l).Path
        b(l + 1, 2) = Cint(a(l).Size / 1024)
        b(l + 1, 3) = a(l).DateCreated
        b(l + 1, 4) = a(l).DateLastModified
        b(l + 1, 5) = a(l).DateLastAccessed
    Next
End If
Range(Cells(1, 1), Cells(UBound(b, 1) + 1, UBound(b, 2) + 1)) = b
Range(Cells(1, 1), Cells(UBound(b, 1) + 1, UBound(b, 2) + 1)).Columns.AutoFit
End Sub


Gruß Sepp



Anzeige
AW: Dankeschön für die Antworten
03.02.2008 18:47:00
Reinhard
Hallo Josef,
danke dir, habe deinen Code erstmal abgespeichert ohne zu schauen was drin steht.
Aber ich lese dich lange genug, der wird schon mehr als okay sein :-)
Btw: Ich habe vor langer Zeit schon mal Nepumuk gefragt weche Bücher er denn im Schrank hat und welche das denn sind, welche hast du für Excel? *sehr interessiert lausch*, achja, welche davon waren unnötig.
Danke ^ Gruß
Reinhard

Die von dir genannten Objekte müssen...
04.02.2008 00:45:48
dir
...immer mit ihrem Originalnamen angesprochen wdn, Reinhard.
Der sollte sich aber m.E. auch ändern lassen.
Gruß Luc :-?

AW: Die von dir genannten Objekte müssen...
06.02.2008 18:10:00
dir
Hallo Luc,
was issn da nun der Originalname?
Mit dem gleichen Code lege ich in XL97 und in XL2000 mit OleObjects.Add eine Listbox auf dem Tabellenblatt an.
Benenne es in beiden Fällen "LB1"
Im Modul des Blattes wird oben in der Auswahl bei XL97 trotz der Namensvergabe "ListBox1" angezeigt,
in XL2000 "LB1".
Nun heißt das Objekt in XL2000 "LB1" und dadurch kann ich es ansprechen.
In XL97 muß ich es mal als "ListBox1", mal als "LB1" ansprechen.
Dazu kommt, wenn ich diese in XL97 erstellte Datei mit Xl2000 öffne und wieder schließe, danach heißt es auch in XL97 "LB1".
Das verwirrt mich halt irschendwie :-)
Und das hat die Auswirkung, daß ich nicht weiß was du mit Originalnamen meinst.
Gruß
Reinhard
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige