Thema Datum  Von Nutzer Rating
Antwort
10.08.2022 14:36:24 markusy
Solved
10.08.2022 20:11:17 xlKing
*****
NotSolved
12.08.2022 11:21:47 Markusy
NotSolved
12.08.2022 14:18:33 markusy
NotSolved
12.08.2022 18:48:34 xlKing
*****
NotSolved
16.08.2022 16:17:40 markusy
NotSolved
17.08.2022 22:10:13 xlKing
*****
NotSolved
18.08.2022 14:22:00 markusy
NotSolved
18.08.2022 23:35:05 xlKing
*****
NotSolved
22.08.2022 14:30:57 Gast33285
Solved
Rot VBA Balken mit bestimmter Farbe hochsetzen
24.08.2022 02:08:22 xlKing
*****
NotSolved
24.08.2022 13:58:26 markusy
Solved

Ansicht des Beitrags:
Von:
xlKing
Datum:
24.08.2022 02:08:22
Views:
423
Rating: Antwort:
  Ja
Thema:
VBA Balken mit bestimmter Farbe hochsetzen

Hey Markus,

also dazu gibt's ja nun wirklich genügend Infomaterial im Netz. Das Schlüsselwort heißt "Dynamisches Array". Schau dir dazu mal den Befehl Redim an.

Ich hab hier aber mal einen anderen Weg gewählt und bin über die String-Bearbeitung gegangen. Auf diese Weise lernst du gleich, wie man Strings verändern kann und wie man eigene Funktionen verwendet. So musst du dich noch nicht unbedingt mit der Erstellung von Arrays rumschlagen.

Private Sub idFirmaAAusblenden_Click()
  Ausblenden
End Sub
Private Sub idFirmaBAusblenden_Click()
  Ausblenden
End Sub
Private Sub idFirmaCAusblenden_Click()
  Ausblenden
End Sub
Private Sub idFirmaDAusblenden_Click()
  Ausblenden
End Sub
Private Sub idFirmaEAusblenden_Click()
  Ausblenden
End Sub
Sub Ausblenden()
  
  Dim farr() As String 'filtered array
  Dim arrstr As String, companies As String
  
  companies = "UnternehmenA,UnternehmenA2,UnternehmenB,UnternehmenB2,UnternehmenC,UnternehmenC2,UnternehmenD,UnternehmenD2,UnternehmenE,UnternehmenE2,UnternehmenE3"
  arrstr = companies
  
  If idFirmaAAusblenden Then
    arrstr = Entf(arrstr, "UnternehmenA")
    arrstr = Entf(arrstr, "UnternehmenA2")
  End If
  
  If idFirmaBAusblenden Then
    arrstr = Entf(arrstr, "UnternehmenB")
    arrstr = Entf(arrstr, "UnternehmenB2")
  End If
  
  If idFirmaCAusblenden Then
    arrstr = Entf(arrstr, "UnternehmenC")
    arrstr = Entf(arrstr, "UnternehmenC2")
  End If

  If idFirmaDAusblenden Then
    arrstr = Entf(arrstr, "UnternehmenD")
    arrstr = Entf(arrstr, "UnternehmenD2")
  End If
  
  If idFirmaEAusblenden Then
    arrstr = Entf(arrstr, "UnternehmenE")
    arrstr = Entf(arrstr, "UnternehmenE2")
    arrstr = Entf(arrstr, "UnternehmenE3")
  End If
  
  If arrstr = "" Then
     Tabelle6.Range("$B$3:$V$200").AutoFilter Field:=1, Criteria1:="=""""", Operator:=xlAnd
  ElseIf arrstr = companies Then
     Tabelle6.Range("$B$3:$V$200").AutoFilter Field:=1
  Else
     farr = Split(arrstr, ",")
     Tabelle6.Range("$B$3:$V$200").AutoFilter Field:=1, Criteria1:=farr, Operator:=xlFilterValues
  End If

End Sub

Private Function Entf(Expression As String, Find As String) As String
  Entf = Expression
  If Left(Entf, Len(Find) + 1) = Find & "," Then Entf = Right(Entf, Len(Entf) - Len(Find) - 1)
  If Right(Entf, Len(Find) + 1) = "," & Find Then Entf = Left(Entf, Len(Entf) - Len(Find) - 1)
  Entf = Replace(Entf, "," & Find & ",", ",")
  If Entf = Find Then Entf = ""
End Function

Aber warum blendest du lieber 4 Firmen über Checkboxen aus, anstatt nur eine über ein Optionsfeld einzublenden? Bei der Aktivierung eines Optionsfeldes werden alle anderen Optionsfelder automatisch deaktiviert, womit dann das Ein- und Ausblenden quasi wie von Geisterhand geht. Wäre eine Überlegung wert.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
10.08.2022 14:36:24 markusy
Solved
10.08.2022 20:11:17 xlKing
*****
NotSolved
12.08.2022 11:21:47 Markusy
NotSolved
12.08.2022 14:18:33 markusy
NotSolved
12.08.2022 18:48:34 xlKing
*****
NotSolved
16.08.2022 16:17:40 markusy
NotSolved
17.08.2022 22:10:13 xlKing
*****
NotSolved
18.08.2022 14:22:00 markusy
NotSolved
18.08.2022 23:35:05 xlKing
*****
NotSolved
22.08.2022 14:30:57 Gast33285
Solved
Rot VBA Balken mit bestimmter Farbe hochsetzen
24.08.2022 02:08:22 xlKing
*****
NotSolved
24.08.2022 13:58:26 markusy
Solved