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

Von Array in Tabelle schreiben

Von Array in Tabelle schreiben
19.07.2003 16:48:38
Jens_Pu
Hallo Excelfreunde,
brauche mal wieder Eure Hilfe.
Momentan schreibe ich die in einem Array befindlichen Werte mit einer Schleife in ein Tabellenblatt. Das dauert aber relativ lange. Das geht doch auch schneller. Ich bekomme das aber nicht hin.
Mein Code sieht bisher so aus:
Option Explicit
Public Type Mitglied 'Benutzerfefinierter Datentyp
nr As Long '1
NN As String * 25 '2
VN As String * 20 '3
Geschl As String * 1 '4
P(1 To 8) As Integer '5-12 Paarung 1-8
E(1 To 8) As Integer '13-20 Ergebnis 1-8
SumE As Integer '21 Summe der Ergebnisse 1-8
Punkte(1 To 8) As Integer '22-29 Punkte 1-8
SumPunkte As Integer '30 Summe Punkte 1-8
Spieldiff(1 To 8) As Integer '31-38 SpieleDifferenz 1-8
SumSpieldiff As Integer '39 Summe Spieldiff 1-8
Rang(1 To 8) As Integer '40-47 Rang pro Runde und gesamt
RangGes As Integer '48 Rang Gesamt
End Type
Public gTln() As Mitglied
Public gAnzTeilnehmer As Long 'Anzahl der Teilnemer

Sub Drucken(listArt As Integer, listOpt As Integer)
Dim l As Long
Application.ScreenUpdating = False
'Blatt Ausdruck leer machen
wksDruck.UsedRange.Delete
'TeilnehmerListe in Array einlesen
Call LeseTeilnehmerListe(True)
'Listen erzeugen
Select Case listArt
Case 1                        'Teilnehmerliste
If listOpt = 1 Then         'alle
For l = 1 To gAnzTeilnehmer
With wksDruck
.Range(.Cells(l, 1), .Cells(l, 1)).Value = gTln(l - 1).nr
.Range(.Cells(l, 2), .Cells(l, 2)).Value = _
Trim(gTln(l - 1).NN) & " " & Trim(gTln(l - 1).VN)
End With
Next l
ElseIf listOpt = 2 Then     'm
ElseIf listOpt = 3 Then     'w
End If
Case 2                        'Liste2
Case 3                        'Liste3
End Select
Application.ScreenUpdating = True
MsgBox ("Liste erzeugt!")
End Sub

Gruss Jens

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von Array in Tabelle schreiben
19.07.2003 18:47:44
ChrisL
Hi Jens
...oder vielleicht so:

Sub test()
' Irgendein Test-Array wird erstellt
Dim i As Integer
ReDim MyArray(3, 2)
For i = 0 To 3
MyArray(i, 0) = i
MyArray(i, 1) = i
MyArray(i, 2) = i
Next i
' Array in Tabelle eintragen
Range("A1:C" & UBound(MyArray) + 1) = MyArray
End Sub

(UBound ermittelt die Länge des Array)
Gruss
Chris

AW: Von Array in Tabelle schreiben
19.07.2003 19:25:11
Jens_Pu
Hallo Chris,
danke für Deine Antwort.
Siehe meine Antwort an Hajo.
Gruss Jens

AW: Von Array in Tabelle schreiben
19.07.2003 17:08:50
Hajo_Zi
Hallo Jens
meinst Du so was
Option Explicit
Option Base 1

Sub Test()
Dim Werte(25) As Byte
Dim ByI As Byte
For ByI = 1 To 25
Werte(ByI) = ByI
Next ByI
Worksheets("Tabelle1").Range("A1:A25").Value = WorksheetFunction.Transpose(Werte)
End Sub

Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
19.07.2003 19:23:48
Jens_Pu
Hallo Hajo,
danke für Deine Antwort.
Ich stehe da momentan irgendwie auf der Leitung.
In meinem Array besteht aus benutzerdefiniertem Typ und teilweise festen Stringlängen.
Außerdem soll nicht das komplette Array in die Tabelle eingetragen werden.
Müßte ich dann evtl. erst ein Hilfsarray erstellen?
Ich glaube die Sonne hat mir heute den Kopf verbrannt.
Gruß Jens

AW: Von Array in Tabelle schreiben
19.07.2003 19:29:17
Hajo_Zi
Hallo Jens
gerade in VBA muß die Aufgabenstellung klar sein. Welche Werte??
Option Explicit
Option Base 1

Sub Test()
Dim Werte(25) As Byte
Dim ByI As Byte
For ByI = 1 To 25
Werte(ByI) = ByI
Next ByI
Worksheets("Tabelle1").Range("A1:A20").Value = WorksheetFunction.Transpose(Werte)
End Sub

Mit Deinem Hinweis
"In meinem Array besteht aus benutzerdefiniertem Typ und teilweise festen Stringlängen."
kann ich nichts anfangen.
Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
19.07.2003 19:38:05
Jens_Pu
Hallo Hajo,
in meinem ersten Posting ist doch der Code drin, mit Type Deklaration etc.
Jetzt bin ich erst richtig verwirrt.
Gruß Jens

AW: Von Array in Tabelle schreiben
19.07.2003 19:47:07
Hajo_Zi
Hallo Jens
ich arbeite mich selten in vorhandenen Code ein (meist zu Zeitaufwendig), weil jeder seine eigene Methode hat zu programmieren. Und Du hast ja geschrieben "VBA Kenntnisse gut" und da habe ich mich mit einem Ansatz begnügt.
Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
19.07.2003 23:28:38
Jens_Pu
Hallo Hajo,
da führt die Aufteilung von Hans vielleicht etwas zur Verwirrung.
Wenn ich zur Auswahl habe:
Keine VBA-Kenntnisse, VBA-Gut oder Profi, so zähle ich mich weder zu den Unwissenden, noch zu den Profis. Würde ich mich zu den Profis zählen, müßte ich meine Frage vermutlich nicht stellen. Hätte ich keine VBA-Kenntnisse, hätte bestimmt keinen benutzerdefinierten Type und den Rest des Codes zusammengebracht.
Evtl. sollte Hans die Aufteilung noch besser differenzieren.
Eine solche Selbsteinschätzung ist eben immer sehr relativ. In meinem Bekanntenkreis bezeichnen mich alle als Excelprofi. Ich mache es aber nicht professionell.
Ich kenne aber auch Profis, die das professionell machen und denen mache ich bei manchen Themen was vor.
Schöne Grüße aus dem Frankenland
Jens
PS: Mit meinem Problem bin ich jetzt allerdings auch noch nicht weiter.

Anzeige
AW: Von Array in Tabelle schreiben
20.07.2003 07:49:05
Hajo_Zi
Hallo Jens
es können keine weiter Antworten kommen, da Du nicht alle Fragen beantwortest hast. Nich weil ich einschätze das Du e selber lösen köntest.
"gerade in VBA muß die Aufgabenstellung klar sein. Welche Werte??"
Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
20.07.2003 08:13:07
Jens_Pu
Hallo Hajo,
ich möchte verschiedene Arten von Listen erzeugen, die immer nur einen Teil der Gesamtinformationen des Arrays enthalten.
Bei der Teilnehmerliste sollen z.B. nur die Angaben Teilnehmernummer (nr), Nachname (NN) und Vorname (VN) in das Tabellenblatt eingetragen werden.
Je nach Auswahl in einer Userform sollen so die verschiedensten Listen erzeugt werden (z.B. Teilnehmerliste männlich). D.h. auf dem Tabellenblatt wksDruck werden immer nur Teilmengen des gesamten Arrayinhalts ausgegeben.
Bisher mache ich das eben so wie unten im Codeschnipsel.
Nachdem das relativ lange dauert zielte meine Frage darauf hin, ob das nicht irgendwie schneller zu machen wäre.
Gruss Jens
Auszug:


  Select Case listArt
      Case 1                        'Teilnehmerliste
        If listOpt = 1 Then         'alle
          For l = 1 To gAnzTeilnehmer
            With wksDruck
              .Range(.Cells(l, 1), .Cells(l, 1)).Value = gTln(l - 1).nr
              .Range(.Cells(l, 2), .Cells(l, 2)).Value = _
                Trim(gTln(l - 1).NN) & " " & Trim(gTln(l - 1).VN)
            End With
          Next l
        ElseIf listOpt = 2 Then     'm
        ElseIf listOpt = 3 Then     'w
        End If
      Case 2                        'Liste2
      Case 3                        'Liste3
  End Select

     Code eingefügt mit Syntaxhighlighter 2.1


Anzeige
AW: Von Array in Tabelle schreiben
20.07.2003 08:31:18
Hajo_Zi
Hallo Jens
Du machst es den Leuten im Forum nicht einfach Dein Problem nachzubauen.
Ich hätte ja vermutet mit einzelnen Arrays würde es gehen, aber da spricht das Range dagegen.

Sub Drucken(listArt As Integer, listOpt As Integer)
Dim l As Long
Application.ScreenUpdating = False
'Blatt Ausdruck leer machen
'    wksDruck ist irgendwo schon definiert
wksDruck.UsedRange.Delete
'TeilnehmerListe in Array einlesen
'    ' das Makro fehlt 
Call LeseTeilnehmerListe(True)
'Listen erzeugen
'    woher kommt listArt 
Select Case listArt
Case 1                        'Teilnehmerliste
'  woher kommt nun listOpt gAnzTeilnehmer 
If listOpt = 1 Then         'alle
For l = 1 To gAnzTeilnehmer
With wksDruck
'  Range sieht schon eigenartig aus ich vermute mal die
' Werte sind über das gesamte Blatt verteilt 
.Range(.Cells(l, 1), .Cells(l, 1)).Value = gTln(l - 1).nr
.Range(.Cells(l, 2), .Cells(l, 2)).Value = _
Trim(gTln(l - 1).NN) & " " & Trim(gTln(l - 1).VN)
End With
Next l
ElseIf listOpt = 2 Then     'm
ElseIf listOpt = 3 Then     'w
End If
Case 2                        'Liste2
Case 3                        'Liste3
End Select
Application.ScreenUpdating = True
MsgBox ("Liste erzeugt!")
End Sub

Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
20.07.2003 08:53:10
Jens_Pu
Hallo Hajo,
vielen Dank für Deine Geduld.
Sicherlich sind die verschiedenen Variablen definiert, die fehlenden Makros sind vorhanden und listArt und listOpt werden als Parameter an das Makro übergeben.
Ich habe ja nur die relevanten Codeausschnitte gepostet.
Schätze so kommen wir nicht weiter, sonst würde das Posting ja Meter lang.
Danke trotzdem.
Gruss Jens

AW: Von Array in Tabelle schreiben
20.07.2003 09:23:12
Hajo_Zi
Hallo Jens
mir scheint es das Du es drauf hast immer auf die wichtigen Sachen nicht zu Antworten. Das die Variablen definiert sind und das Makro vorhanden ist war mir schon klar. Es war nur ein Hinweis das jemand der das nachbauen will Probleme hat.
Mein Hinweis mit dem Range ist völlig untergegangen.
Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: Von Array in Tabelle schreiben
22.07.2003 22:07:06
Jens_Pu
Hallo Hajo,
noch mal Danke für Deine Bemühungen, trotz unserer Verständigungsprobleme.
Ich habe das jetzt mit einem Hilfsarry gelöst, in das ich erst die gewünschten Werte aus dem "Haupt"-Array schreibe. Dann schreibe ich das Hilfsarray komplett in die Tabelle.
So funktioniert es jedenfalls.
Danke und Gruss
Jens
Aus meinem

27 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige