Hallo,
ich bin ein relativer Newbie was VBA Programmierung an geht und bin auf der Suche nach einer Lösung für folgendes Problem.
Ich möchte ein Raster in einer Excel-Tabelle ausgeben was aus einer definierten Punktzahl besteht, die jeweils über eine X und Y Koordinate beschrieben werden.
Das Raster soll auf einem Feld von 65536 x 65536 Punkten erstellt werden. Ziel ist es also das Raster auf diesem Feld mit der definierten Punkteanzahl (max. 1000) abzubilden. Programmablauf wäre folgender:
1. Abfrage nach der Punktzahl, Variable „Punkte_ges“ wird gesetzt
2. Berechnung der möglichen Punkte in X- und Y-Richtung über „Punkte_ = Sqr (Punkte_ges) – 1“
z.B.: Will ich einer Raster aus 9 Punkten (Punkte_ges = 9) generieren so habe ich in X und Y Richtung 3 Reihen ((Wurzel aus 9 )-1)
3. Da ich jetzt die Anzal der Reihen/Spalten kenne, kann ich über die Feldbreite das Delta zwischen den einzelnen Punkten berechnen
z.B.: 65536 / 3 -1 = 32768 aller 32768 Punkte eine Rasterpunkt
Jetzt habe ich Excel soweit, dass er mir die Korrekten Koordinaten bei y = 0 ausgibt. Diese aber auf die restlichen Punkte (Y+Delta) abzubilden fällt mir schwer.
Es müssen quasi alle möglichen X/Y Koordinaten über die Variablen abgebildet werden ohne dass sich diese doppeln. Ich bin für jegliche Gedankenstützen dankbar.
Mein Programm sieht aktuell so aus:
Sub Raster_n()
'___Raster aus beliebigen Punkten generieren
Dim Punkte_ges As Integer
Dim Punkte_ As Single
Dim Delta As Single
Dim x_neu As Single
Dim y_neu As Single
Punkte_ges = InputBox("Aus wievielen Punkten soll das Raster generiert werden?", "Punkteanzahl")
Punkte_ = Sqr(Punkte_ges) - 1
Punkte_1 = Punkte_
Delta = 65536 / Punkte_
Range("H4").Select
Do Until Punkte_ < 1
Punkte_ = Punkte_ - 1
x_neu = x_neu + Delta
ActiveCell.Value = x_neu
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = 0
ActiveCell.Offset(1, -1).Select
Loop
End Sub
|