Hauke_Rabauke
Grünschnabel
Moinsen Rabauken,
ich hab mal ne Frage an Euch Experten und hoffe ihr könnt mir als ambitionierten Quereinsteiger weiterhelfen.
Ich würde das jetzt eigentlich mit einr Do while Schleife lösen, will mich aber auch mal weiterentwoíckeln und versuchen das über ein Array zu lösen.
Würde den ganzen Prozess höchst wahrscheinlich performanter machen.
ALso hier das Problem:
Ich bekomme eine Auswertung aus einem HTML-Formular als *.xlsx in folgendem Format (ähnliches Beispiel als Anhang)

ich habe jetzt schon die Namen und Projekte mit folgendem Code in ein Array gelesen:
(im Original fängt der Werte Bereich in Cells(6,2) an)
Das funzt auch super, schwuppdiwupp ist das array eingelesen. Hammer hätt ich nie gedacht, dass das so schnell geht. Wenn ich mich hoffentlich bald besser mit Arrays auskenne, werde ich das häufiger nutzen. Aber nun zu meinem Problem.
In einem Ausgabesheet für eine Serienbrieffunktion (das ganze soll Teil einer bestehenden, umfangreicheren Anwendung werden...) soll das Ergebnis wie folgt ausgegeben werden.
Max Muster Projekt5 Projekt8
Es soll also der Vorname Nachname und das jeweilige Projekt ausgegeben werden wenn in der Zeile ne "1" steht.
Ich hoffe, das Problem ist für nicht zu profan, wie gesagt ich fange gerade erst an mich mit Arrays ins VBA zu beschäftigen.
Grüßle und besten Dank vorab
Hauke
ich hab mal ne Frage an Euch Experten und hoffe ihr könnt mir als ambitionierten Quereinsteiger weiterhelfen.
Ich würde das jetzt eigentlich mit einr Do while Schleife lösen, will mich aber auch mal weiterentwoíckeln und versuchen das über ein Array zu lösen.
Würde den ganzen Prozess höchst wahrscheinlich performanter machen.
ALso hier das Problem:
Ich bekomme eine Auswertung aus einem HTML-Formular als *.xlsx in folgendem Format (ähnliches Beispiel als Anhang)

ich habe jetzt schon die Namen und Projekte mit folgendem Code in ein Array gelesen:
(im Original fängt der Werte Bereich in Cells(6,2) an)
Code:
Public Function MatrixFüllen() As Variant()
Dim ZeileNr As Integer
Dim SpalteNr As Integer
Dim Matrix() As Variant
Dim intZeileMatrix As Integer
Dim intSpalteMatrix As Integer
' Matrix auf Zeilen- und Spaltenzahl der Auswahl bringen
' Dabei soll jeder Index bei 1 beginnen
ReDim Matrix(1 To 67, 1 To 51)
intZeileMatrix = 1
intSpalteMatrix = 1
' Auswahl zeilenweise lesen
For ZeileNr = 6 To ActiveSheet.UsedRange.Rows.Count
' Auswahl spaltenweise lesen
For SpalteNr = 2 To ActiveSheet.UsedRange.Columns.Count - 1
With Cells(ZeileNr, SpalteNr)
If Not IsEmpty(.Value) Then
' Matrix elementweise füllen
Matrix(intZeileMatrix, intSpalteMatrix) = Cells(ZeileNr, SpalteNr).Value
' Else
' ' Fehlermeldung ausgeben
' MsgBox "Zelle " & .Address & " enthält keine Zahl"
' Exit Function
End If
End With
intSpalteMatrix = intSpalteMatrix + 1
Next SpalteNr
intZeileMatrix = intZeileMatrix + 1
intSpalteMatrix = 1
Next ZeileNr
' Rückgabewert der Funktion
MatrixFüllen = Matrix
End Function
Das funzt auch super, schwuppdiwupp ist das array eingelesen. Hammer hätt ich nie gedacht, dass das so schnell geht. Wenn ich mich hoffentlich bald besser mit Arrays auskenne, werde ich das häufiger nutzen. Aber nun zu meinem Problem.
In einem Ausgabesheet für eine Serienbrieffunktion (das ganze soll Teil einer bestehenden, umfangreicheren Anwendung werden...) soll das Ergebnis wie folgt ausgegeben werden.
Max Muster Projekt5 Projekt8
Es soll also der Vorname Nachname und das jeweilige Projekt ausgegeben werden wenn in der Zeile ne "1" steht.
Ich hoffe, das Problem ist für nicht zu profan, wie gesagt ich fange gerade erst an mich mit Arrays ins VBA zu beschäftigen.
Grüßle und besten Dank vorab
Hauke
Anhänge
Zuletzt bearbeitet: