Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
660to664
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
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nepumuk und andere-array laden

Nepumuk und andere-array laden
03.09.2005 12:08:00
Stan
Hallo Nepumuk (und andere),
Nachdem Nepumuk mir gesagt hat, dass der Fehler in meinem Programm mit der Dimesionierung meines Arrays zu tun hatte, habe ich es geändert und jetzt gibt er mir die richtigen Daten zurück. Nun versuche ich die Anzahl der Einkaufsregionen der Variable AnzEinkaufsregion wieder zuzuweisen aber er gibt mir die Gesamtanzahl der Element wieder und ich will die Elemente einer Dimension!?

Private Sub ReadArray()
Dim l As Integer
Dim F As Integer
Dim nCount As Long
Dim sFile As String
sFile = ThisWorkbook.Path & "\arrayABregion.dat"
' Datei im BinaryMode öffnen
If Len(Dir$(sFile)) > 0 Then
F = FreeFile
Open sFile For Binary As #F
' Anzahl Elemente lesen
Get #F, , nCount
' Array dimensionieren und einlesen
AnzEinkaufsregion = nCount
Get #F, , NameEinkaufsregion
Close #F
End If
MsgBox (AnzEinkaufsregion)
End Sub

Gruß
Stan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nepumuk und andere-array laden
03.09.2005 12:32:51
Nepumuk
Hi Stan,
das habe ich jetzt nicht verstanden was du willst. Was verstehst du unter "Elemente einer Dimension"? Hast du ein mehrdimensionales Array in der Textbox?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Nepumuk und andere-array laden
03.09.2005 14:30:20
stan
Hi Nepumuk,
ja meine Arrays werden durch userforms erzeugt. die userforms werden aufeinander aufgebaut und jedesmal bekommt das array eine zusäztliche Dimension, da es von dem vorherigen userform abhängt,so dass mein letzt gespeichertes array von dem letzten userform 5 dimensionen hat. ich versuche deshalb alle meine array in textdatei zu speichern so dass ich nicht jedesmal wenn ich meine excel datei öffne, die Daten in den userforms eingeben muss.
mit diesem Programm gibt er schon die Einkaufsregionen zurück aber ich möchte die Anzahl der Elemente haben (die Anzahl der Einkaufsregionen die in der UF eingegeben wurde) und er gibt mir die Dimension zurück.
Wenn du andere Ideen hast um mehrdimensionale array zu speichern und wieder zu laden würde mich interessieren denn ich fange an vezweifelt zu sein!!!
Gruß
Stan
Anzeige
AW: Nepumuk und andere-array laden
03.09.2005 14:43:59
Nepumuk
Hi Stan,
ist das wirklich ein fünfdimensionales Array oder ein zweidimensionales mit 5 Spalten?
fünfdimensional = Dim Array(1 to 10, 1 to 10, 1 to 10, 1 to 10, 1 to 10)
zweidimensional fünfspaltig = Dim Array(1 to 10, 1 to 5)
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Nepumuk und andere-array laden
03.09.2005 15:18:29
stan
Hi Nepumuk,
hier sind meine Arrays(sind im Modul deklariert)
Const AW = 8 'Max Anzahl Werke
Const AA = 8 'Max Anzahl Anlage (Sorte)
Const AM = 8 'Max Anzahl Maschinen (pro Anlage)
Const AU = 2 'Überstunden
Public AnzWerke As Byte
Public NameWerke(AW) As String
Public AnzAnlage(AA, AW) As String
Public NameAnlage(AA, AW, AM, AU) As String
gruß
stan
Anzeige
AW: Nepumuk und andere-array laden
03.09.2005 15:34:48
Nepumuk
Hi Stan,
wenn du die Arrays sowieso über Konstanten dimensionierst, dann benutze diese doch auch beim Auslesen der Textdateien. Dann kannst du dir auch das schreiben der Anzahl der Datensätze in die Textdatei ersparen.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Nepumuk und andere-array laden
03.09.2005 15:45:55
stan
Hi Nepumuk,
ja aber die Konstante dienen eigentlich nur dazu, um einen Max an zB AnzahlWerke zu bestimmen. wenn ich in meinem textbox in der Userform 4 Werke eingegeben habe, wie soll ich diese Zahl wiederherkriegen?
gruß stan
AW: Nepumuk und andere-array laden
03.09.2005 16:04:49
Nepumuk
Hi Stan,
Beispiel:
Dim Array(10, 10)
Du schreibst 4 Einträge in der ersten Dimension und 4 Einträge in der zweiten Dimension. Dieses Array speicherst du in der Textdatei. Die Textdatei schaut dann sinngemäß so aus:
Eintrag, Eintrag, Eintrag, Eintrag, , , , , , , , Eintrag, Eintrag, Eintrag, Eintrag, , , , , , , .
Wenn du jetzt nur die ersten vier Einträge liest und dann die zweiten vier, dann bekommst du für die zweiten vier nur leere Einträge, weil da von schreiben her nichts drin steht. Du musst die Datei mit dem selben Array auslesen mit dem du es geschrieben hast. Jetzt klarer?
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Nepumuk und andere-array laden
03.09.2005 16:25:43
stan
hi Nepumuk,
so habe ich es gemacht aber ich versuche diese Anzahl von Einträge in einer anderen Variable zu speichern. das array in dem die Einträge gespeichert sind bleibt gleich. nur beim auslesen versuche ich aus diesem array die Anzahl der Einträge in einer anderen Variable zu speichern.
Gruß
stan

AW: Nepumuk und andere-array laden
03.09.2005 17:18:27
Nepumuk
Ach Stan,
bei deinen paar Werten würde ich das mit dem Array sowieso vergessen. Um mit Put Daten in eine Textdatei zu schreiben benötigt mein Rechner für 10.000 Datensätze gerade mal 0,03 Sekunden. Um die 10.000 Datensätze wieder auszulesen 0,01 Sekunden. Die Array - Methode rentiert sich erst bei mehreren hunderttausend Datensätzen.
Aber wenn du sie schon benutzt, dann arbeite mit einem benutzerdefinierten Datentyp. Dieses Array kannst du dynamisch machen, wäre für deine Zwecke wesentlich besser geeignet und du müsstest dir auch keine Gedanken um die Anzahl der Datensätze machen.
Mal ein Beispiel:
' **********************************************************************
' Modul: Modul4 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Type Datensatz
    Firma As String
    Maschine As String
    Produkt As String
End Type

Public Sub schreiben()
    Dim intIndex As Integer, intFile As Integer
    Dim MeinDatensatz(1 To 10) As Datensatz
    For intIndex = 1 To 10
        With MeinDatensatz(intIndex)
            .Firma = "Firma " & CStr(intIndex)
            .Maschine = "Maschine " & CStr(intIndex)
            .Produkt = "Produkt " & CStr(intIndex)
        End With
    Next
    intFile = FreeFile
    Open "C:\Test.txt" For Binary As #intFile
    Put #intFile, , UBound(MeinDatensatz)
    Put #intFile, , MeinDatensatz
    Close #intFile
End Sub

Public Sub lesen()
    Dim lngIndex As Long, intFile As Integer
    Dim MeinDatensatz() As Datensatz
    intFile = FreeFile
    Open "C:\Test.txt" For Binary As #intFile
    Get #intFile, , lngIndex
    Redim MeinDatensatz(1 To lngIndex)
    Get #intFile, , MeinDatensatz
    Close #intFile
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Nepumuk und andere-array laden
03.09.2005 19:13:51
Stan
Nepumuk,
vielen Dank für deine Mühe und deine Geduld. ich werde den Code bei mir probieren aber das Pbm ich kann nicht mehr so viel ändern. es ist meine Diplomarbeit und ist schon über 3mb groß. ich habe wahrscheinlich nicht sehr VBA-professionell angefangen und muss leider mit meinen deklarierten array weiterarbeiten !!!! :-(
Gruß
stan

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige