Balkenregel und Anführungszeichen
04.06.2016 10:00:26
Mario
ich hoffe mir kann jemand helfen. Bei Min-Wert und Max-Wert werden die Anführungszeichen mit übertragen. Ich bekomme die einfach nicht gelöscht.
Hier mein Code...
Sub Balken_erstellen()
' Balken_erstellen Makro
Dim col As New Collection
' variable
Dim i As Integer
' Zahlen
Dim lngZeileanfang As Long 'Anfang
Dim lngZeileende As Long 'Ende
Dim lngZeile As Long 'Zeilennummer
' Buchstaben
Dim strSpalte1 As String 'Balkenbuchstabe1
Dim strBalkenspalte As String 'Balkenspalte
Dim strBalkenzeile As String 'Balkenzeile
Dim strBalkenzelle As String 'Wert-Balkenzelle
Dim strSpalte2 As String 'Min-Buchstabe2
Dim strMinspalte As String 'Min-Spalte
Dim strMinzeile As String 'Wert-MinZeile
Dim strMinzelle As String 'Wert-MinZelle
Dim strMin As String 'Wert-MinZelle
Dim strSpalte3 As String 'Min-Buchstabe3
Dim strMaxspalte As String 'Max-Spalte
Dim strMaxzeile As String 'Wert-MaxZeile
Dim strMaxzelle As String 'Wert-MaxZelle
Dim strMax As String 'Wert-MinZelle
'Anfangzeile für Balken eingeben
lngZeileanfang = Range("C1")
'Endezeile für Balken eingeben
lngZeileende = Range("C2")
For i = CStr(lngZeileanfang) To CStr(lngZeileende)
strSpalte1 = "B" 'Balkenspalte
strSpalte2 = "C" 'Min-Spalte
strSpalte3 = "D" 'Max-Spalte
lngZeile = i 'zeile
strBalkenspalte = CStr("$" & strSpalte1) 'Balkenspalte = $B
strBalkenzeile = CStr("$" & CStr(lngZeile)) 'Balkenzeile = "$5"
strBalkenzelle = strBalkenspalte & strBalkenzeile ' Wert-Balkenzelle = "$B$5"
'Minspalte und Zeile ermitteln
strSpalte2 = CStr("$" & strSpalte2) 'MinSpalten =$C
strMinzeile = CStr("$" & CStr(lngZeile)) 'Minzeile = "$5"
strMinzelle = strSpalte2 & strMinzeile 'Min-Wert = "$C$5"
'letztes Anführungszeichen entfernen
'str1 = strMinzelle + Chr(10) + Chr(13) 'letztes Anführungszeichen weg
'erstes Anführungszeichen entfernen?
'Str2 = strMinzelle + Chr(10) + Chr(13) + Chr(10) + Chr(13) 'letztes Anführungszeichen weg
'str3 = Application.WorksheetFunction.Substitute(strMinzelle, """", "") 'geht nicht
'str4 = Mid(strMinzelle, 1, 1) 'geht nicht
'str5 = Left(strMinzelle, 2) 'geht nicht - Zeile weg
'str6 = Right(strMinzelle, 4) 'geht nicht - Buchstabe weg
'str7 = Replace(strMinzelle, Chr(13), "") 'geht nicht
'str8 = Replace(strMinzelle, Chr(10), "") 'geht nicht
'str9 = Replace(strMinzelle, Chr(34), "") 'geht nicht
'str10 = Replace(strMinzelle, """", "") 'geht nicht
'Maxspalte und Zeile ermitteln
strSpalte3 = CStr("$" & strSpalte3) 'MaxSpalten =$D
strMaxzeile = CStr("$" & CStr(lngZeile)) 'Maxzeile = "$5"
strMaxzelle = strSpalte3 & strMaxzeile 'Max-Wert = "$D$5"
'letztes Anführungszeichen entfernen
'Str11 = strMaxzelle + Chr(10) + Chr(13) 'letztes Anführungszeichen weg
'erstes Anführungszeichen entfernen?
'Str12 = strMaxzelle + Chr(10) + Chr(13) + Chr(10) + Chr(13) 'letztes Anführungszeichen weg
'erstes Anführungszeichen entfernen
'Str13 = Application.WorksheetFunction.Substitute(strMinszelle, """", "") 'geht nicht
'Str14 = Mid(strMaxzelle, 1) 'geht nicht
'Str15 = Left(strMaxzelle, 1) 'geht nicht - Zeile weg
'str16 = Right(strMaxzelle, 4) 'geht nicht - Buchstabe und Zeile weg
'Str17 = Replace(strMaxzelle, Chr(13), "") 'geht nicht
'str18 = Replace(strMaxzelle, Chr(10), "") 'geht nicht
'str19 = Replace(strMaxzelle, Chr(34), "") 'geht nicht
'str20 = Replace(strMaxzelle, """", "") 'geht nicht
'Übergabe relativ (einfach strMinzelle mit str1...str20 tauschen)
''Min-Wert = $C$5 = "$C$5"
strMin = strMinzelle 'str1...str10
'als Übergabe muss $C$5 ohne Anführungszeichen herauskommen
'Min-Wert = "$D$5"
strMax = strMaxzelle 'str11...str20
'als Übergabe muss $D$5 ohne Anführungszeichen herauskommen
'Berechnung1
Range(strBalkenzelle).Select
Selection.FormatConditions.AddDatabar
Selection.FormatConditions(Selection.FormatConditions.Count).ShowValue = True
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=strMin 'Min-Wert = $C$5
.MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=strMin 'Max-Wert = $D$5
End With
With Selection.FormatConditions(1).BarColor
.Color = 13012579
.TintAndShade = 0
End With
Selection.FormatConditions(1).BarFillType = xlDataBarFillSolid
Selection.FormatConditions(1).Direction = xlContext
Selection.FormatConditions(1).NegativeBarFormat.ColorType = xlDataBarColor
Selection.FormatConditions(1).BarBorder.Type = xlDataBarBorderNone
Selection.FormatConditions(1).AxisPosition = xlDataBarAxisAutomatic
With Selection.FormatConditions(1).AxisColor
.Color = 0
.TintAndShade = 0
End With
With Selection.FormatConditions(1).NegativeBarFormat.Color
.Color = 255
.TintAndShade = 0
End With
'Meldungen werden später rauskommentiert
MsgBox "MIN:" & strMin & "MAX:" & strMax
Next
For i = 1 To 2
Application.SendKeys ("{enter}")
Next
End Sub
Danke für die Hilfe im voraus.
MfG Mario