Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Balkenregel und Anführungszeichen

Balkenregel und Anführungszeichen
04.06.2016 10:00:26
Mario
Guten Tag,
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

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

Betreff
Datum
Anwender
Anzeige
AW: Balkenregel und Anführungszeichen
04.06.2016 12:10:13
fcs
Hallo Mario,
wenn die Werte für die bedingte Formatierung aus Zellen übernommen werden sollen, dann musst du die Werte für "newvalue" als Formel aufbauen, d.h. ein "=" vor der Zelladresse einbauen.
Der Makrorecorder zeichnet sogar den Blattnamen mit in der Formel auf. Es funktioniert aber auch ohne, wenn das Blatt in dem die bed. Formatierungen das aktive Blatt ist.
Code-Beispiel
    Dim strMin As String, strMax As String
strMin = "$J$1"
strMax = "$K$1"
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  ' strMin = "$J$1"
.MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:= _
"=" & strMax  ' strMax = "$K$1"
'als Kommentar - Code angepasst an Rekorder-Aufzeichnung inkl. Blattname in Formel
'        .MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:= _
"='" & ActiveSheet.Name & "'!" & strMin  ' strMin = "$J$1"
'        .MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:= _
"='" & ActiveSheet.Name & "'!" & strMax  ' strMax = "$K$1"
End With
Gruß
Franz

Anzeige
AW: Balkenregel und Anführungszeichen
04.06.2016 13:49:28
Mario
Hallo Franz,
super Danke, es klappt. Jetzt kann ich eine Tabelle mit 1500 Werte automatisch anpassen.
Gruß
Mario

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige