Hallo zusammen,
ich habe das folgende Beispiel gefunden. Hierbei wird der markierte Bereich im aktiven Tabellenblatt ausgelesen. Die Funktion geht die Auswahl im Tabellenblatt Zeile für Zeile und dann Spalte für Spalte durch. Jeder gefundene Wert wird in ein Element der Variablen Matrix gespeichert. Diese ist dann der Rückgabewert der Funktion MatrixFüllen():
Dim ZeileNr As Long ' Zeilenzähler
Dim SpalteNr As Long ' Spaltenzähler
Dim Matrix() As Double ' Matrix
' Matrix auf Zeilen- und Spaltenzahl der Auswahl bringen
' Dabei soll jeder Index bei 1 beginnen
ReDim Matrix(1 To Selection.Rows.Count, 1 To Selection.Columns.Count)
' Auswahl zeilenweise lesen
For ZeileNr = 1 To Selection.Rows.Count
' Auswahl spaltenweise lesen
For SpalteNr = 1 To Selection.Columns.Count
With Selection.Cells(ZeileNr, SpalteNr)
If IsNumeric(.Value) Then
' Matrix elementweise füllen
Matrix(ZeileNr, SpalteNr) = .Value
Else
' Fehlermeldung ausgeben
MsgBox "Zelle " & .Address & " enthält keine Zahl"
Exit Function
End If
End With
Next SpalteNr
Next ZeileNr
' Rückgabewert der Funktion
MatrixFüllen = Matrix
End Function
Jetzt weiss ich jedoch nicht, wie ich die einzelnen Werte wieder aufrufen kann.
Beispielsweise müsste der Wert "Matrix(1,1)" in das erste Textfeld vom SAP, der Wert "Matrix(1.2) in das zweite Textfeld usw.
geschrieben werden.
Mein Ziel ist, dass nach der Speicherung der Werte das SAP-Fenster geöffnet und das erste Textfeld aktiviert werden kann. Anschliessend
soll bespielsweise ein zweites Makro aktiviert werden können und die Werte werden dann automatisch in die entsprechenden Textfelder geschrieben.
Da ich das SAP-Feld (Textfelder) nicht direkt ansprechen kann, würde ich dies über den Makrorecorder aufzeichen, so dass über die Mausbewebung
immer zum korrekten nächsten Textfeld springt und dann die nächsten Werte einträgt.
Ich bin euch für jede Hilfe dankbar.
Gruss
Andreas
|