Office: Variant Array in Range

Helfe beim Thema Variant Array in Range in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo mal wieder, Ich schreibe gerade eine Klasse "Film". Diese beinhaltet Informationen wie "Name", "Regisseur", "Erscheinungsjahr" etc. In der... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Till41, 25. Januar 2017.

  1. Variant Array in Range


    Hallo mal wieder,

    Ich schreibe gerade eine Klasse "Film".
    Diese beinhaltet Informationen wie "Name", "Regisseur", "Erscheinungsjahr" etc.

    In der Klasse gibt es außerdem eine Prozedur, die den Film in eine Liste in Excel schreibt. In dieser erstelle ich ein Variant-Array, welches dann mit einem Befehl in die Tabelle geschrieben werden soll.

    Hier der Code bis jetzt. Wenn euch etwas auffällt, was man so nicht macht - oder was ihr anders lösen würdet - dann schreibt das gerne!

    Das Eigentliche Problem tritt dann letztlich beim Einfügen auf. Das Array ist gefüllt und ich habe einen Bereich zugewiesen. Jetzt will ich das Array in den Bereich schreiben, aber es werden lediglich leere Zellen eingefügt. Sehr gut möglich, dass ich etwas simples übersehe, dann tut mir das leid.

    Code:
    Viele Grüße
    Till

    :)
     
  2. Hallo Till,

    so?
    Code:
    Die Variablen mMedium... haben auch einen Inhalt?

    UsedRange nutze ich wenig. Mag sein, dass man das nehmen kann. Ich würde dennoch über das bekannte Konstrukt .Cells(.Rows.Count,1).End(xlup).Row (bzw. angepasst auf Deine Bedingungen) gehen.

    Aber nicht extra für den vorstehenden Code, oder?

    Grüße
    EarlFred
     
    EarlFred, 27. Januar 2017
    #2
  3. Hey Fred,

    Der Grund warum ich UsedRange.Rows lieber nutze als .End.Row ist, dass ich bei UsedRange immer den gesamten Bereich bekomme und nicht nur diese Zeile/Spalte. Es ist ja möglich, dass in dieser Zeile der letzte Eintrag in Spalte 5 steht in der nächsten dafür aber in Spalte 10. Wenn das allerdings auch mit .End.Row geht, dann würde ich mich freuen, wenn du mir kurz aufzeigst, wie!

    Das eigentliche Thema: Mit deiner Idee fällt natürlich sehr viel Code weg und es ist einleuchtend - dumm von mir.

    Die Variablen haben einen Inhalt. Auch die Felder des Arrays hatten einen Inhalt. Ich habe sie mir im Direktbereich ausgeben lassen.

    Nein. Ich will auf Dauer eine Datenbank für meine Filme erstellen - vielleicht werde ich das auch in Access machen um dort etwas zu lernen. Daher die Klasse Film. Wenn ich jetzt einen neuen Film in meine Datenbank hinzufügen oder Informationen über einen gewinnen möchte, dann habe ich vor ein - wenn ich in Excel bleibe - Array von Objekten des Typs Film zu erstellen.

    Edit: Dein Code funktioniert super, danke dir! Ärgere mich nur, dass ich nicht selbst darauf gekommen bin - ist ja nicht gerade etwas ausgefallenes. *biggrin.gif*

    Viele Grüße
    Till
     
  4. Variant Array in Range

    Hallo LL (oder wie kürzt man Deinen Namen ab?)

    in meinen Listen nicht. Da gibt es eine Spalte, die immer gefüllt ist und in Datenbanken wohl Schlüssel genannt würde.

    Spätestens der Filmname sollte doch nie fehlen, oder?

    Apropos Schlüssel... Ja. Und Ja.

    Grüße
    EarlFred
     
    EarlFred, 27. Januar 2017
    #4
  5. Das stimmt. Würdest du das dann als sauberer bezeichnen oder ist das einfach ein anderer Stil?
     
  6. Die einen gestalten erst mal, damit es schön aussieht, und müssen dann beim Programmieren deswegen viele viele Extrarunden drehen.

    Die anderen legen Daten so ab, wie sie von der Maschine und den Methoden der verwendeten Anwendung unmittelbar und direkt, am besten mit den effizientesten Methoden, verwendet werden können. Gestaltung kommt hinterher, wenn ein Anwender etwas sehen soll und er bestimmte Ansichten braucht. In der gesparten Zeit dreht man dann seine Ehrenrunden oder trinkt Kaffee oder macht einfach weiter.

    So gibt es eben unterschiedliche Stile.
     
  7. Ich muss gestehen, dass ich nicht den Hauch einer Ahnung habe, was du mir damit mitteilen wolltest. Meine Frage war eigentlich lediglich, ob es einen Nachteil hat mit UsedRange zu arbeiten oder ob es sich um eine Programmierstilfrage bzw. Gewohnheiten handelt.

    Wenn du mir dazu eine Antwort gegeben hast, dann habe ich diese nicht verstanden.

    Viele Grüße
    Till
     
  8. Variant Array in Range

    Hey nochmal,

    Dieses mal ein sehr ähnliches Problem, deswegen der gleiche Thread.

    Ich lese eine Range in ein Variant Array ein, es handelt sich also um ein zweidimensionales Array. Dann will ich es aber alphabetisch sortieren. Der QuickSort Algorithmus, den ich von MSDN habe, kann aber nur Eindimensionale Arrays verarbeiten, deswegen mache ich mein Array eindimensional bevor ich es an den QuickSort Algorithmus übergebe. Danach wird es wieder zweidimensional gemacht, damit ich es wieder in eine Range einfügen kann.

    Ich gebe mir den Inhalt des Arrays im Direktbereich aus. Dort ist der Inhalt vorhanden. Wenn ich allerdings eine Range definiere und das Array dort hinein schreiben möchte, dann werden dort lediglich leere Zellen einfügt.

    Hat jemand eine Idee wieso - gibt es da eventuell einen oft gemachten Fehler?

    Im Großen und Ganzen das gleiche Problem wie zu Beginn des Threads nur kann ich es dieses mal nicht mit EarlFreds Vorschlag lösen.

    Viele Grüße
    Till
     
  9. Das Sortieren ist nun wahrlich keine Stärke eines Arrays.
    Der Praktiker würde die Sortierung auf den Range vornehmen.
     
  10. Habe es inzwischen hingekriegt. Dass das Sortieren nicht die Stärke des Arrays ist, ist klar. Aber es ist einfach schneller als die Sort Methode des Worksheets. Selbst bei kleinen Ranges sind die Unterschiede schon deutlich erkennbar.
     
  11. Hallo Till,

    Oft gemachter Fehler: Code & Link nicht zeigen - da hat man dann als Helfer auch wenig Ideen. *wink.gif*

    Widerspruch:
    Das mehrfache umstrukturieren des Arrays dient auch der Performance?
    Bau Dir Deine Sortierroutine doch so um, dass sie mit einem "transponierten eindimensionalen Array" arbeiten kann...

    Gratuliere.

    Grüße
    EarlFred
     
    EarlFred, 30. Januar 2017
    #11
  12. Hallo

    Habe das mal gefunden und etwas verändert. Vielleicht kannst du oder wer anders etwas damit anfangen.

    Code:
     
Thema:

Variant Array in Range

Die Seite wird geladen...
  1. Variant Array in Range - Similar Threads - Variant Array Range

  2. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  3. Informationen von ausgewählten Variante übertragen

    in Microsoft Excel Hilfe
    Informationen von ausgewählten Variante übertragen: Hallo zusammen, folgendes Problem kann ich nicht lösen: Ich habe beispielsweise mehrere Varianten zur Auswahl, die ich manuell eingebe in Excel. Am Ende entscheide ich mich für eine Variante,...
  4. Variant-Array auslesen // Array in Zellen einfügen

    in Microsoft Excel Hilfe
    Variant-Array auslesen // Array in Zellen einfügen: Hallo zusammen, per Variant hab ich eine Range eingelesen und möchte diesen nun Ausgaben, bekomme bei der aktuelle Variante allerdings einen Laufzeitfehler(9) wenn ich meinen aktuellen Code...
  5. Unterschiedliche Varianten eines Frontends durch direkte Anpassungen der Datei?

    in Microsoft Access Hilfe
    Unterschiedliche Varianten eines Frontends durch direkte Anpassungen der Datei?: Guten Morgen Zusammen, ich habe eine kurze Frage, um sicherzugehen, dass ich bei der Aufteilung meiner DB und der späteren Pflege/Entwicklung richtig vorgehe: Wenn ich die DB in Front- und...
  6. Formular, SetFocus wird nicht gesetzt (2 Varianten)

    in Microsoft Access Hilfe
    Formular, SetFocus wird nicht gesetzt (2 Varianten): Hallo, Ausgangslage: Formular mit 2 Textfeldern Problem: nachdem in Textfeld1 der String eingefügt ist, lässt sich der Fokus nicht auf das Textfeld2 verschieben. Sozusagen ein...
  7. Microsoft Team kostenlos, Anzeige der Besprechungen in der Windows Desktop Variante und IOS ...

    in Microsoft Teams Hilfe
    Microsoft Team kostenlos, Anzeige der Besprechungen in der Windows Desktop Variante und IOS ...: Ich habe beide Versionen installiert, a) auf einem Windows Computer und b) auf einem Iphone. Ich bin der Besitzer eines Teams und verwende jedesmal den gleichen Zugang. Während auf meinem Iphone...
  8. ListObject - Varinate A funktioniert, aber Variante B nicht?

    in Microsoft Excel Hilfe
    ListObject - Varinate A funktioniert, aber Variante B nicht?: Hallo, mal eine Frage. Ich möchte ein einfaches ListObject erstellen. Variante A funktioniert ohne Probleme. .ListObjects.Add(xlSrcRange, rngListRange, False, xlYes).Name =...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden