Registriert seit: 18.07.2016
Version(en): Office 2007
Hallo,
ich möchte ein Script erstellen um ein Diagramm zu erstellen.
Die Zellen mit denen die Säulen erstellt werden sollen, liegen
alle in einer Zeile.
Der Name liegt in Zelle A2 und der dazugehörige Wert in B2.
Die nächste Säule soll direkt neben der ersten als Vergleichswert liegen.
Der Name dieser Säule liegt in Zelle D2 und der Wert in E2.
Die Tabelle hänge ich an.
Hat mir jemand einen Tip.
Danke und Gruß
Günti
Angehängte Dateien
Auswertung_AB.xlsx (Größe: 9,2 KB / Downloads: 5)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Push!!
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 18.07.2016
Version(en): Office 2007
Hallo,
ich habe die Lösung für dieses Problem gefunden.
Aber wie kann ich auf Tabelle 2 nach jeder zweiten Zeile eine Leerzeile einfügen ?
Danke im voraus und Gruß
Günti
Code:
Sub prcForm_Excel_Dateien_einlesen()
Dim lngC As Long, lngA As Long
Dim strPath As String
Dim strDatei As String
Dim vntZellAdressen As Variant
Dim LastRow As Long
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
Dim Rng4 As Range
Dim ShName As String
lngC = 1
vntZellAdressen = Array("A2", "B2", "A3", "B3")
strPath = "C:\PG500\Inf-Files\"
strDatei = Dir(strPath & "*.xlsx")
Do While strDatei <> ""
Workbooks.Open (strPath & strDatei)
For lngA = 0 To UBound(vntZellAdressen)
ActiveWorkbook.Worksheets(3).Range(vntZellAdressen(lngA)).Copy ThisWorkbook.Worksheets(1).Cells(lngC, lngA + 1)
Next lngA
lngC = lngC + 1
ActiveWorkbook.Close False
strDatei = Dir
Loop
'Erste Zeile einfügen
Rows(r + 1).Insert Shift:=xlDown
'Spalten beschriften
Range("A1").Select
ActiveCell.FormulaR1C1 = "Prüfauftrag Monat A"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Yield Monat A in %"
Range("C1").Select
ActiveCell.FormulaR1C1 = "Prüfauftrag Monat B"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Yield Monat B in %"
'Anpassung der Spaltenbreite
Call ActiveSheet.Columns.AutoFit
'Arbeitsblatt umbenennen
ThisWorkbook.Worksheets(1).Name = "Yieldauswertung"
'Auflistung der Prüfmonate
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim lngZ As Long
Dim lngZZ As Long
Dim intS As Integer
Set wksQ = Worksheets(1) 'Quellblatt
Set wksZ = Worksheets(2) 'Zielblatt
lngZZ = 2
With wksQ
For lngZ = 2 To .Range("A100").End(xlUp).Row
wksZ.Cells(lngZZ, 1).Value = wksQ.Cells(lngZ, 1).Value
wksZ.Cells(lngZZ, 2).Value = wksQ.Cells(lngZ, 2).Value
lngZZ = lngZZ + 1
wksZ.Cells(lngZZ, 1).Value = wksQ.Cells(lngZ, 3).Value
wksZ.Cells(lngZZ, 2).Value = wksQ.Cells(lngZ, 4).Value
lngZZ = lngZZ + 1
Next
End With
'Auf Tabelle2 (Blatt2) wechseln
Sheets("Tabelle2").Activate
'Zahlenformat festlegen
Range("B1:B300").NumberFormat = "#,##0.00"
'Letzte Zeile suchen und Diagrammbereich in Variable schreiben
With ActiveSheet
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("A2:B" & LastRow)
ShName = .Name
End With
'Diagramm einfügen
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Rng1
'Beschriftung Diagramm
'.HasTitle = True
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = "Yieldauswertung"
.Location Where:=xlLocationAsObject, Name:=ShName
End With
With ActiveChart.Parent
.Left = 400
.Top = 50
.Width = 400
.Height = 300
End With
'Arbeitsblatt umbenennen
ThisWorkbook.Worksheets(1).Name = "Yieldauswertung"
End Sub