Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Target.Column?

Forumthread: Target.Column?

Target.Column?
23.08.2005 14:53:54
andi
Hi,
wie muss das richtig heißen? Ich möchte mein Makro nur in den Spalten 4,5, und 13-16 ausführen...
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err_handler
'Das läuft nicht:
If Target.Column = 4 Or Target.Column = 5 Or Target.Column = 13 _
Or Target.Column = 14 Or Target.Column = 15 Or Target.Column = 16 Then
wert = Cells(6, Target.Column).Value

minTol = wert + Cells(8, Target.Column).Value
maxTol = wert + Cells(7, Target.Column).Value
....
Was muss ich ändern?
Gruß Andi
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Target.Column?
23.08.2005 14:58:34
Fred
Hi,
Select Case Target.Column
Case 4, 5, 13 To 16: Call deinMakro
End Select
mfg Fred
AW: Target.Column?
23.08.2005 15:04:38
andi
Danke, läuft aber auch nicht...
Leider.
AW: Target.Column?
23.08.2005 15:07:25
Fred
Hi,
poste mal das ganze Makro.
mfg Fred
Anzeige
Here it is...
23.08.2005 15:14:00
andi
Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 4, 5, 13 To 16:
wert = Cells(6, Target.Column).Value
minTol = wert + Cells(8, Target.Column).Value
maxTol = wert + Cells(7, Target.Column).Value
tol_Wert = Round((maxTol - minTol) * 20 / 100, 2)
f_max = maxTol - tol_Wert
f_min = minTol + tol_Wert
Select Case Target.Value
Case Is > maxTol
Target.Font.ColorIndex = 3 'rot
Case Is < minTol
Target.Font.ColorIndex = 3
Case f_max To maxTol
Target.Font.ColorIndex = 46 'orange
Case minTol To f_min
Target.Font.ColorIndex = 46
Case Else
Target.Font.ColorIndex = 10 'grün
End Select
End Select
End Sub

Habe versucht, deinen Tipp einzubauen. Leider läuft es so nicht. Der Code ist auf dem richtigen Blatt...
Gruß Andi
Anzeige
AW: Here it is...
23.08.2005 16:29:38
Fred
Hi,
lad mal ein Beispiel hoch.
mfg Fred
AW: Target.Column?
23.08.2005 14:58:56
Holger
Hallo Andy,
das geht so. Hast Du den Code auch im richtigen Blatt (Tabelle1, Tabelle2, ...), in dem das laufen soll?
Holger
AW: Target.Column?
23.08.2005 15:01:08
andi
Hi,
ja natürlich. Ist vorher auch schon perfekt gelaufen... Möchte es jetzt aber nur noch in betimmten Spalten ausführn.
Was muss ich ändern?
Gruß Andi
Anzeige
;
Anzeige

Infobox / Tutorial

Target.Column in Excel VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

Um die Target.Column in Deinem Excel VBA-Makro gezielt in bestimmten Spalten zu verwenden, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen. Diese Beispielanpassung wird sicherstellen, dass das Makro nur in den Spalten 4, 5, sowie 13 bis 16 ausgeführt wird.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Navigiere zu dem Arbeitsblatt, in dem das Makro laufen soll.
  3. Füge den folgenden Code in das Arbeitsblattmodul ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo err_handler
    Select Case Target.Column
        Case 4, 5, 13 To 16
            Dim wert As Double
            wert = Cells(6, Target.Column).Value
            Dim minTol As Double
            Dim maxTol As Double
            minTol = wert + Cells(8, Target.Column).Value
            maxTol = wert + Cells(7, Target.Column).Value
            Dim tol_Wert As Double
            tol_Wert = Round((maxTol - minTol) * 20 / 100, 2)
            Dim f_max As Double
            Dim f_min As Double
            f_max = maxTol - tol_Wert
            f_min = minTol + tol_Wert

            Select Case Target.Value
                Case Is > maxTol
                    Target.Font.ColorIndex = 3 ' rot
                Case Is < minTol
                    Target.Font.ColorIndex = 3
                Case f_max To maxTol
                    Target.Font.ColorIndex = 46 ' orange
                Case minTol To f_min
                    Target.Font.ColorIndex = 46
                Case Else
                    Target.Font.ColorIndex = 10 ' grün
            End Select
    End Select
    Exit Sub
err_handler:
    ' Fehlerbehandlung hier einfügen
End Sub
  1. Schließe den VBA-Editor und teste das Makro, indem Du Werte in die entsprechenden Spalten eingibst.

Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die auftreten können, wenn Du mit Target.Column in Excel VBA arbeitest, sowie Lösungen dazu:

  • Fehler: Das Makro wird nicht in den vorgesehenen Spalten ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul platziert ist. Überprüfe auch, ob das Arbeitsblatt aktiv ist, wenn Du Änderungen vornimmst.
  • Fehler: Der Select Case funktioniert nicht wie gewünscht.

    • Lösung: Achte darauf, dass die Syntax korrekt ist. Bei der Verwendung von Case 13 To 16 sollte kein zusätzliches : am Ende stehen.
  • Fehler: Es werden keine Farben gesetzt.

    • Lösung: Überprüfe den Target.Value, um sicherzustellen, dass es sich um einen numerischen Wert handelt. Außerdem solltest Du sicherstellen, dass die Schriftfarbe nicht durch andere Formatierungen überschrieben wird.

Alternative Methoden

Wenn Du die Target.Column-Logik auf eine andere Art umsetzen möchtest, kannst Du auch folgende Methoden ausprobieren:

  • If-Anweisung: Anstelle von Select Case kannst Du auch eine If-Anweisung verwenden:
If Target.Column = 4 Or Target.Column = 5 Or (Target.Column >= 13 And Target.Column <= 16) Then
    ' Dein Code hier
End If
  • Verwendung von Arrays: Um die Spalten dynamisch zu verwalten, kannst Du ein Array verwenden:
Dim spalten() As Variant
spalten = Array(4, 5, 13, 14, 15, 16)

If Not IsError(Application.Match(Target.Column, spalten, 0)) Then
    ' Dein Code hier
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Target.Column-Funktion effektiv nutzen kannst:

  1. Farbe ändern basierend auf dem Wert in einer bestimmten Spalte:

    • Wenn Du einen Wert in Spalte 4 eingibst, wird die Schriftfarbe rot, wenn der Wert über dem festgelegten Maximum liegt.
  2. Dynamische Berechnungen:

    • Berechne Werte in Bezug auf die Eingabewerte in den Spalten 5 und 13. Du könntest eine separate Berechnung für jede Spalte durchführen, entsprechend der Anforderungen.
  3. Benachrichtigungen bei Änderungen:

    • Füge eine Benachrichtigung hinzu, die den Benutzer informiert, wenn eine nicht erlaubte Spalte bearbeitet wird.

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt Dich, alle Variablen zu deklarieren, was Dir hilft, Fehler zu vermeiden.

  • Verwende Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung, um unerwartete Fehler abzufangen und dem Benutzer klarere Hinweise zu geben.

  • Dokumentation: Kommentiere Deinen Code ausführlich, um die Nachvollziehbarkeit für Dich und andere Benutzer zu erhöhen.


FAQ: Häufige Fragen

1. Was ist Target.Column?
Target.Column ist eine Eigenschaft in Excel VBA, die die Spaltennummer der Zelle zurückgibt, die geändert wurde.

2. Wie kann ich sicherstellen, dass mein Makro nur für bestimmte Spalten ausgeführt wird?
Verwende Select Case oder If-Anweisungen, um die Spalten zu überprüfen, in denen das Makro aktiv sein soll.

3. Was passiert, wenn ich versuche, in einer nicht erlaubten Spalte zu arbeiten?
Wenn Du die Fehlerbehandlung implementiert hast, kannst Du den Benutzer benachrichtigen oder die Aktion einfach ignorieren.

4. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in allen Versionen von Excel funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige