auseinander liegende Spalten in ein Array bringen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox MsgBox
Bild

Betrifft: auseinander liegende Spalten in ein Array bringen
von: Peter Feustel
Geschrieben am: 28.02.2005 16:35:34
Hallo Excel Experten,
wie bekomme ich zwei auseinander liegende Spalten in ein Array gepackt?
Hier mein Versuch:


Sub LiBo_fuellen()
Dim PfaDat   As Object
Dim Pfad     As String
Dim Datei    As String
Dim arrWerte As Variant
   Application.ScreenUpdating = False
   
   Pfad = ThisWorkbook.Path
   Datei = "Mitarbeiter.xls"
   
   Sheets("Tabelle5").ListBox1.ColumnWidths = "5,5 cm; 6,5 cm"
   Sheets("Tabelle5").ListBox1.Clear
   
   Set PfaDat = GetObject(Pfad & "\" & Datei)
   
   arrWerte = PfaDat.Sheets(1).Range("A1:A20", "C1:C20")  ' <=== Problem !!!
   
   MsgBox arrWerte(1, 1) & " / " & arrWerte(1, 2) & vbLf & _
          arrWerte(2, 1) & " / " & arrWerte(2, 2)
   Sheets("Tabelle5").ListBox1.List = arrWerte
   PfaDat.Close False
   Set PfaDat = Nothing
          
   Application.ScreenUpdating = True
          
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Ich möchte unbedingt eine Lösung mit Array verwirklichen.
Gruß Peter
Bild

Betrifft: AW: auseinander liegende Spalten in ein Array brin
von: bst
Geschrieben am: 28.02.2005 18:44:54
Abend Peter,
tu's per Hand. Einen anderen Weg kenne ich nicht.
cu, Bernd
--
Option Explicit

Sub Bla()
   Dim arrwerte() As Variant
   Dim arrneu() As Variant
   Dim i As Integer
   
   arrwerte = Range("A1:C20")
   ReDim arrneu(1 To 20, 1 To 2)
   For i = 1 To 20
      arrneu(i, 1) = arrwerte(i, 1)
      arrneu(i, 2) = arrwerte(i, 3)
   Next
   Range("E1:F20") = arrneu
End Sub

Bild

Betrifft: AW: auseinander liegende Spalten in ein Array brin
von: Peter Feustel
Geschrieben am: 28.02.2005 22:10:30
Hallo Bernd,
da läuft leider nicht.
Der Array ist zweidimensional und kann offensichtlich Range("A1:C20") nicht verkraften, weil das drei Spalten sind. Es kommt Laufzeitfehler '13': Typen unverträglich als Fehlermeldung.
Deshalb suche ich ja die Konzentration auf meine beiden Spalten A1:A20 und C1:C20.
Danke trotzdem, Gruß Peter
Bild

Betrifft: AW: auseinander liegende Spalten in ein Array brin
von: bst
Geschrieben am: 01.03.2005 10:00:57
Morgen Peter,
sollte nun schon gehen.
Der Dim war allerdings etwas unglücklich. Ohne den () klappt's auch wenn vor dem Range noch etwas steht. Warum dem so ist weiß ich nicht.
HTH, Bernd
--

Sub LiBo_fuellen()
   Dim arrWerte As Variant
   Dim arrNeu As Variant
   Dim i As Integer
   
   Worksheets("Tabelle2").Activate ' NUR ZUM TEST !!!
   
   arrWerte = Worksheets(1).Range("A1:C20")
   ReDim arrNeu(LBound(arrWerte) To UBound(arrWerte), 1 To 2)
   
   For i = LBound(arrWerte) To UBound(arrWerte)
      arrNeu(i, 1) = arrWerte(i, 1)
      arrNeu(i, 2) = arrWerte(i, 3)
   Next i
   
   With Sheets("Tabelle5").ListBox1
      .ColumnCount = 2
      .ColumnWidths = "5,5 cm; 6,5 cm"
      .Clear
      .List = arrNeu
   End With
End Sub

Bild

Betrifft: AW: auseinander liegende Spalten in ein Array brin
von: Peter Feustel
Geschrieben am: 01.03.2005 10:30:35
Hallo Bernd,
so funktioniert es ganz gut. Es hakt zwar noch beim Einfügen in "Tabelle5", geht dann aber seltsamerweise mit Einzelschritt (F8) über den Fehler hinweg. Beim 2. Versuch wird die geschlossene Datei gar nicht wieder richtig angefasst, aber das sind Dinge, die ich wohl noch finden werde.
Danke also und Gruß, Peter
 Bild

Beiträge aus den Excel-Beispielen zum Thema "auseinander liegende Spalten in ein Array bringen"