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

Private Sub Worksheet_Change(ByVal target As Range

Private Sub Worksheet_Change(ByVal target As Range
17.04.2018 13:18:59
Gergö
Hallo alle miteinander,
habe schon einmal tolle Hilfestellung von euch bekommen,
bin wieder zu einem Punkt gekommen wo ich nicht weiterkomme.
Ich habe hier diesen Text aus einem anderem Forum gefunden für meine Zwecke
  • 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Erstellt in Bereich E27 bei Klick ein leeres Kästchen oder ein angehaktes Kä stchen
    If Not Intersect(Target(1, 1), [E27]) Is Nothing Then
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem Kästchen
    End With
    End If
    End Sub
    

  • Mein Ziel ist es diese Anwendung nicht nur auf die Zelle E27 zu begrenzen,
    ich würde diese auch in den Zellen E32, E37, E42, E47, E52 brauchen.
    Wie erstelle ich eine Case hierzu damit es führ mehrere Zellen zutrefen kann?
    Bitte euch um eine möglichst detailierte Beschreibung da ich in sachen VBA wenig verstehe

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 13:27:57
    Rudi
    Hallo,
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Erstellt in Bereich E27 bei Klick ein leeres Kästchen oder ein angehaktes Kästchen
    Select Case Target.Column
    Case 5
    Select Case Target.Row
    Case 27, 32, 37, 42, 47, 52
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    _
    angehaktem Kästchen
    End With
    End Select
    End Select
    End Sub
    

    Gruß
    Rudi
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 13:50:29
    Gergö
    Hallo,
    Hebe es versucht es 1 zu 1 in meine Arbeitsmappe zu kopieren, eine Fehlermeldung erscheint
    "Fehler beim Kompilieren:
    Select Case ohne End Select
    habe es nach meinem Verständnis weiter gesponnen
    sieht so aus:
  • 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Erstellt in Bereich E27 bei Klick ein leeres Kästchen oder ein angehaktes Kästchen
    Select Case Target.Column
    Case 5
    Select Case Target.Row
    Case 27
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem kästchen
    Case 32
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem kästchen
    Case 42
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem kästchen
    Case 47
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem kästchen
    Case 52
    With Target(1, 1)
    .Font.Name = "Wingdings" 'Zelle in Schriftart "Wingdings" formatieren
    .Font.Size = 40 'Hier die Grösse anpassen !
    .Value = IIf(.Value = Chr(168), Chr(254), Chr(168)) 'Wechselt zwischen leerem und  _
    angehaktem kästchen
    End With
    End Select
    End Select
    End Sub
    

  • und es kommt die gleiche Fehlermeldung
    Was fehlt mir hier?
    Anzeige
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 13:59:26
    fcs
    Hallo Gergö,
    es fehlt kein "End Select" sondern mehrer "End With".
    Leider schafft es der Compiler nicht immer offene Schleifen oder Select odeer With correct zu identifizieren.
    Die End With fehlen am Ende der 1. vier Case-Blöcke. Beim letzten hast du es drin.
    Gruß
    Franz
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 14:10:57
    Gergö
    Hallo,
    jap das wars, habe erreich was ich brauche.
    Vielen Dank euch wieder einmal
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 13:59:38
    Daniel
    Hi
    dir fehlt in allen Case-Fällen außer dem Letzten (52) das END WITH
    Case 52 ist korrekt, alle anderen nicht.
    aber du hast das Prinzip von Select Case noch nicht verstanden.
    wenn mehrere Case-Fälle den gleichen Code haben, dann kann man diese alle zusammenfassen.
    du schreibst
    Select Case Prüfung
    Case "A"
    hier ein Code
    Case "B"
    hier der gleiche code wie bei "A"
    Case "C"
    hier der gleiche Code wie bei "A"
    end Select
    
    das kann man aber dann so zusammenfassen.
    Select Case Prüfung
    Case "A", "B", "C"
    hier ein Code
    End Select
    
    Gruß Daniel
    Anzeige
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 14:18:10
    Gergö
    hatte vermutlich ein Ctrl+c Fehler, habe alles verglichen, passt alles nun
    vielen Dank dir
    AW: Private Sub Worksheet_Change(ByVal target As Range
    17.04.2018 13:35:56
    Daniel
    Hi
    gib bei Intersect als zweite Range alle Zellen an, für die das gelten soll:
    
    If Not Intersect(Target(1, 1), Range("E27,E32,E37,E42,E47,E52") Is Nothing Then
    

    bei vielen aber regelmäßig angeordneten Zellen könnte man es auch berechnen (hier jede 5. Zeile):
    If Target.Column = 5 Then
    If Target.Row >= 27 then
    if Target.row 

    Gruß Daniel

    309 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige