Spalten-Sortierung festlegen(zB.CustomersDataGridView)in Tab

Moderator: ModerationP

Spalten-Sortierung festlegen(zB.CustomersDataGridView)in Tab

Beitragvon Twiti » 06. Okt 2017, 11:59

Hallo meine Freunde

Ich bekomme eine Exceltabelle mit mehrere Spalten möchte diese Spalten in ein andere/neue Reihenfolge Umsortieren.
Habe mit folgende Formel versucht, bekomme aber ein Fehlermeldung (Laufzeitfehler 424, Objekt erforderlich).
Code: Alles auswählen
Private Sub AdjustColumnOrderA()

    With customersDataGridView

        .Columns("KundAuft").DisplayIndex = 0
        .Columns("KdAPos").DisplayIndex = 1
        .Columns("erwStufe").DisplayIndex = 2
        .Columns("Material").DisplayIndex = 3
        .Columns("Bezeich").DisplayIndex = 4
        .Columns("BenennBez.").DisplayIndex = 5
        .Columns("Auftrag").DisplayIndex = 6
        .Columns("SerialNr").DisplayIndex = 7
        .Columns("XY").DisplayIndex = 8

 .Columns("SoBeschArt").Visible = False
    End With

End Sub


Die Spaltenreihenfolge sollte wie oben dargestellt werden.

Kann mir jemanden auf die Sprünge helfen oder eine andere Methode vorschlagen?
Danke und viele Grüße
Twiti
Windows 10/Office 2010
Dragon NaturallySpeaking statt Maus und Tastatur wegen Schwerbehinderung
Twiti
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 116
Registriert: 23. Apr 2016, 13:53

Re: Spalten-Sortierung festlegen(zB.CustomersDataGridView)in

Beitragvon 1Matthias » 06. Okt 2017, 19:56

Moin! (mal wieder :-) )
Also Excel erkennt dein
customersDataGridView
nicht als Object an. Es ist auch nicht ersichtlich, wo es herkommt bzw. wie es deklariert ist. Da du mit den .Columns auf eine Unterobject (ich nenne es mal so) zugreifen willst fehlt dann das übergeordnete Object. Habe jetzt mal gesucht. Es gibt wohl auch eine Klasse datagrid für windows. Ob man die in Excel irgendwie einbinden kann weiß ich nicht. Im Internet fand ich nur Beispiele um die Daten nach Excel zu verschieben. Bei meinem alten Excel brauche ich glaube ich auch nicht mit suchen anfangen. :-)
Alternativen wäre:
1. Die Spalten in der Reihe wie du sie brauchst ans Ende deines genutzten Bereiches kopieren und danach die Ausgangsspalten löschen
oder
2. Den Bereich in ein Array einlesen das Array umsortieren und dann wieder reinschreiben.
Vllt. hilft das ja weiter.
VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 95
Registriert: 15. Aug 2017, 18:36

Re: Spalten-Sortierung festlegen(zB.CustomersDataGridView)in

Beitragvon Twiti » 07. Okt 2017, 11:32

Servus Matthias,
schön wieder von dir zu hören.
Ich war ein paar Wochen außer Betrieb (krank) und wollte dich auf diesem Weg danken für deine Hilfe beim vorheriger Frage.
Habe noch kein Rückmeldung, die 1. Lösung läuft super und ich habe noch keine Zeit gehabt der neueste Lösung zu testen im Realbetrieb.

Deine Lösung 1 hätte ich mir auch schon gedacht und das ganze dann einfach mit dem Makrorecorder aufnehmen damit ich's wiederholen kann.
Dieses DataGridView Ding hatte ich gegoogelt und gehofft es funktioniert auch in Excel.

Ich werde mich mal versuchen mit dem Array einlesen usw.
Wenn ich dann noch Fragen habe schreibe ich dich an.
Danke für den Tipp und viele Grüße
Twiti
Windows 10/Office 2010
Dragon NaturallySpeaking statt Maus und Tastatur wegen Schwerbehinderung
Twiti
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 116
Registriert: 23. Apr 2016, 13:53

Re: Spalten-Sortierung festlegen(zB.CustomersDataGridView)in

Beitragvon Mullit » 07. Okt 2017, 12:35

Hallo,

da hast Du ein Objekt aus VB.NET beim Googeln erwischt, das ist in VBA nicht vorhanden, kannst Du (fast) immer über den Objektkatalog überprüfen, ist zunächst auch nicht nötig, Excel selbst ist ja i.Gr. ein GridView....

https://msdn.microsoft.com/de-de/library/wkfe535h(v=vs.110).aspx

Gruß, Mullit
Mullit
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 667
Registriert: 16. Jan 2015, 19:31

Re: Spalten-Sortierung festlegen(zB.CustomersDataGridView)in

Beitragvon juvee » 07. Okt 2017, 12:50

Hi,

folgendes Makro liest Daten aus A1:Jxx ein und gibt die Spalten in anderer Reihenfolge in K1:Txx aus

Code: Alles auswählen
Sub changeColumn()

arrIn = Cells(1).CurrentRegion.Resize(,10)
arrSerie = Array(2, 4, 6, 8, 10, 1, 3, 5, 7, 9)

For i = 0 To UBound(arrSerie)
  Cells(1, i + 11).Resize(UBound(arrIn)) = Application.Index(arrIn, 0, arrSerie(i))
Next
End Sub



VG Juvee
juvee
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1468
Registriert: 05. Jun 2014, 12:48

Re: Spalten-Sortierung festlegen(zB.CustomersDataGridView)in

Beitragvon Twiti » 11. Okt 2017, 07:36

Servus juvee,
danke so klappt's.

@Mullit
genau auf der Seite über GritView wie du angibst, habe ich es gefunden und wohl falsch interpretiert.
Danke für den Hinweis

Viele Grüße und vielleicht bis bald
Twiti
Windows 10/Office 2010
Dragon NaturallySpeaking statt Maus und Tastatur wegen Schwerbehinderung
Twiti
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 116
Registriert: 23. Apr 2016, 13:53


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: GMG-CC und 26 Gäste