Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1528to1532
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
Inhaltsverzeichnis

Zeilen einfügen

Zeilen einfügen
15.12.2016 12:26:10
Martin
Guten Tag,
ich wurde von einem Kumpel auf dieses Forum aufmerksam gemacht. Vielleicht kann mit jemand bei meinen ersten Programmiererfahrungen weiterhelfen, bislang hatte ich nicht viel mit Makros zu tun.
Ich habe diesen Code von einem Arbeitskollegen bekommen.

Sub Exercise()
Dim MyArray(1, 4) As Integer
Dim zaehler As Integer
MyArray(0, 0) = 69
MyArray(0, 1) = 87
MyArray(0, 2) = 130
MyArray(0, 3) = 280
MyArray(0, 4) = 560
MyArray(1, 0) = 1100
MyArray(1, 1) = 990
MyArray(1, 2) = 870
MyArray(1, 3) = 420
MyArray(1, 4) = 120
Set shNeu = Sheets.Add
shNeu.Activate
[A1:B1] = Array("Daten_Ordinate :", "Daten_Abszisse :")
Length = UBound(MyArray(), 2)
For zaehler = 0 To Length
Cells(2 + zaehler, 1).Value = MyArray(0, zaehler)
Cells(2 + zaehler, 2).Value = MyArray(1, zaehler)
Next zaehler
End Sub

Der Code beinhaltet ein Datenfeld welches in ein Tabellenblatt geschrieben werden soll. Aus dieser Tabelle wird ein Diagramm generiert.
Mit dem Code erzeuge ich folgendes Bild:
Userbild
Ich möchte aber gerne folgendes Bild erzeugen. Die grauen Zeilen sollen eingefügt werden.
Userbild
Lässt sich soetwas "einfach" umsetzen?
Grüße,
Martin

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen einfügen
15.12.2016 12:50:52
Daniel
Hi
es läßt sich umsetzen, ob es "einfach" ist, hängt immer vom Wissenstand ab.
so geht's:

Sub Exercise()
Dim MyArray(1, 4) As Integer
Dim shNeu As Worksheet
Dim MaxWert As Long
MyArray(0, 0) = 69
MyArray(0, 1) = 87
MyArray(0, 2) = 130
MyArray(0, 3) = 280
MyArray(0, 4) = 560
MyArray(1, 0) = 1100
MyArray(1, 1) = 990
MyArray(1, 2) = 870
MyArray(1, 3) = 420
MyArray(1, 4) = 120
Set shNeu = Sheets.Add
With shNeu
.Range("A1:B1") = Array("Daten_Ordinate :", "Daten_Abszisse :")
With .Range("A2").Resize(UBound(MyArray, 2) + 1, UBound(MyArray, 1) + 1)
.Value = WorksheetFunction.Transpose(MyArray)
MaxWert = WorksheetFunction.Floor(WorksheetFunction.Max(.Columns(1)), 50)
With .Offset(.Rows.Count).Cells(1, 1)
.Value = 50
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=50, Stop:=MaxWert, Trend:= _
False
End With
End With
With .Range("A1").CurrentRegion
.RemoveDuplicates 1, xlYes
.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Zeilen einfügen
16.12.2016 08:23:23
Martin
Das ist wirklich ein tolles Forum!
Ich bin von Eurer Hilfsbereitschaft wirklich beeindruckt!
Vielen Dank für dein Beispiel, Martin!
Ich hab versucht die Quellcode nachzuvollziehen, muss aber noch etwas Zeit investieren bzw. lernen... ;)
Eine letzte Frage habe ich noch zu diesem komplexen Thema.
In dem veröffentlichten Beispiel werden zwei Datenfelder bearbeitet. Was mache ich, wenn in diesem Beispiel 3 Datenfelder vorhanden sind, für die Auswertung soll aber nur Datenfeld 2 und Datenfeld 3 berücksichtig werden.
Sub Array_Exercise()
Dim MyArray(2, 4) As Integer
MyArray(0, 0) = 1021
MyArray(0, 1) = 990
MyArray(0, 2) = 950
MyArray(0, 3) = 870
MyArray(0, 4) = 650
MyArray(1, 0) = 69
MyArray(1, 1) = 87
MyArray(1, 2) = 130
MyArray(1, 3) = 280
MyArray(1, 4) = 560
MyArray(2, 0) = 1100
MyArray(2, 1) = 990
MyArray(2, 2) = 870
MyArray(2, 3) = 420
MyArray(2, 4) = 120
'erzeugt ein neues Tabellenblatt und fügt die Daten aus dem Datenfeld ein inkl. Platzhalter in  _
50er Schritten
Set shNeu = Sheets.Add
With shNeu
.Range("A1:B1") = Array("Daten_Ordinate :", "Daten Abszizze .")
With .Range("A2").Resize(UBound(MyArray, 2) + 1, UBound(MyArray, 1) + 1)
.Value = WorksheetFunction.Transpose(MyArray)
MaxWert = WorksheetFunction.Floor(WorksheetFunction.Max(.Columns(1)), 50)
With .Offset(.Rows.Count).Cells(1, 1)
.Value = 50
.DataSeries rowcol:=xlColumns, Type:=xlLinear, step:=50, stop:=MaxWert, Trend:= _
False
End With
End With
With .Range("A1").CurrentRegion
.RemoveDuplicates 1, xlYes
.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
End With
End With
End Sub
Folgendes Ergenis wird im Tabellenblatt gezeigt:
Userbild
Dieses Ziel wird angestrebt:
Userbild
Falls Ihr mir nicht weiterhelfen könnt, bedanke ich mich noch mals für die klasse Unterstützung und wünsche Euch besinnliche Tage.
Grüße,
Martin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige