Thema Datum  Von Nutzer Rating
Antwort
06.09.2021 15:20:55 Sascha
NotSolved
06.09.2021 15:59:29 Mase
NotSolved
08.09.2021 10:40:57 Sascha
NotSolved
Blau Tabelle in Zeilen und Spalten auflösen
08.09.2021 14:29:32 Mase
*****
Solved
14.09.2021 09:06:14 Sascha
NotSolved

Ansicht des Beitrags:
Von:
Mase
Datum:
08.09.2021 14:29:32
Views:
342
Rating: Antwort:
 Nein
Thema:
Tabelle in Zeilen und Spalten auflösen

Der Debug-Output spuckt unterschiedliche Arrays aus

Nicht ein einziges Array "spuckt" der Debug-Output aus. Es werden einzelne Werte verkettet im Direktfenster ausgegeben.

Praktisch um inmitten der Lösungsfindung Meilensteine zu setzen.



 

1
2
Dim MatrixArr   As Integer
Dim Z, r, c     As Integer

Sascha, das sieht herb aus. 

Der Datentyp Integer ist Deinem Fall ohnehin falsch gewählt.

Die Variablen Z und r werden so als Variant und nicht als Integer deklariert.

MatrixArr wird so nicht als Array deklariert.



 

Ich denke da fehlt es ziemlich an den Basics.

Hier ein paar Links - solltest Dir zu Gemüte führen

Visual Basic für Applikationen - Das VBA-Tutorial

WiseOwlTutorials - YouTube

VBA Articles - Excel Macro Mastery

 



 

Anmerkungen:

Mase: 

1
Set rngZeilen = Range("A2:A5")

Sascha:

1
 Set rngZeilen = Range("A1:AA5"

Frage:

WTF?

 

Weitere Anmerkungen:

Dass Du meine innere Schleife so verschandelt hast sollte Ich Dir persönlich nehmen ;)

Auch da: Sieht aus wie im wilden Westen.

 

By the way: Mein Testergebnis war mit Deinem händisch eingetragenen Zielzustand deckungsgleich.

 



Weiter im Programm:

Schau Dir mal folgende Lösung (ohne Array) an.

Es wird ein neues Arbeitsblatt erzeugt und das Ergebnis da reingeschrieben.

Habe Dir ausführlich kommentiert, sodass leserlicher und sich besser nachvollziehen lässt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Sub MatrixInListe()
     
    '*** Deklarationsteil
    Dim cZeilen         As Excel.Range
    Dim cSpalten        As Excel.Range
    Dim rngZeilen       As Excel.Range
    Dim rngSpalten      As Excel.Range
    Dim wksQuellBlatt   As Excel.Worksheet
    Dim wksErgbnisblatt As Excel.Worksheet
   
    '*** Definitionsteil
    Set wksQuellBlatt = Tabelle1                        '*** Referenz auf das Quellarbeitsblatt in einer Objektvariablen ablegen
    Set wksErgbnisblatt = ThisWorkbook.Worksheets.Add   '*** Referenz auf das Ergebnisblatt ablegen und gleich eins anlegen
    Set rngZeilen = wksQuellBlatt.Range("A2:A5")        '*** Referenz auf die Zeile A2 bis A5
    Set rngSpalten = wksQuellBlatt.Range("B1:AA1")      '*** Referenz auf die Spalten B1 bis AA1
           
    '*** ab hier Wertzuweisungen usw möglich
    wksErgbnisblatt.Name = "Ergebnis"                   '*** selbsterklärend
           
    For Each cZeilen In rngZeilen
               
            For Each cSpalten In rngSpalten
                 
                'Debug.Print cZeilen.Value & vbTab & cSpalten.Value & vbTab & cZeilen.Offset(0, cSpalten.Column - 1).Value   <~~ Meilenstein
                With wksErgbnisblatt
                    With .Cells(.Rows.Count, 1).End(xlUp)
                        .Offset(1, 0).Value = cZeilen.Value
                        .Offset(1, 1).Value = cSpalten.Value
                        .Offset(1, 2).Value = cZeilen.Offset(0, cSpalten.Column - 1).Value
                    End With
                End With
                 
            Next cSpalten
               
    Next cZeilen
     
     
     
     
End Sub

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.09.2021 15:20:55 Sascha
NotSolved
06.09.2021 15:59:29 Mase
NotSolved
08.09.2021 10:40:57 Sascha
NotSolved
Blau Tabelle in Zeilen und Spalten auflösen
08.09.2021 14:29:32 Mase
*****
Solved
14.09.2021 09:06:14 Sascha
NotSolved