Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Target.Address.Column+2 ??

Forumthread: Target.Address.Column+2 ?

Target.Address.Column+2 ?
19.10.2008 13:11:00
Alex
Hallo zusammen,
bei diesem Code handelt es sich um einen "Bearbeiternachweis"- bei dem je nach Eintragung in Spalten 6-16 von Tabelle1 -
der username und das datum in Tabelle2 (selbe Zieladresse) geschrieben.

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Sheets("Tabelle2").Range(Target.Address).Value = Application.UserName & " - " &  _
Date
Case Else
End Select
End Sub


Die Zieladresse soll nun aber um zwei Spalten nach rechts versetzt sein.
Wie muss ich das schreiben?
Wie immer vielen Dank für eure Mühen,
alex

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Target.Address.Column+2 ?
19.10.2008 13:18:11
Hajo_Zi
Hallo Alex
ich hätte es mal so versucht.
Sheets("Tabelle2").Range(Target.Address).offset(0,2).Value = Application.UserName & " - " & _

AW: Target.Address.Column+2 ?
19.10.2008 13:21:00
Hajo_Zi
Hallo Alex,
andersrum
Sheets("Tabelle2").Range(Target.offset(0,2).address) = Application.UserName & " - " & _
Gruß Hajo
Anzeige
AW: Target.Address.Column+2 ?
19.10.2008 13:38:00
Alex
Hallo Hajo,
die Zieladresse ist jetzt 2 Spalten weiter auf Tabelle2.
Soweit gut.
nur wird die Information jetzt ab der neuen Zieladresse jeweils zwei Spalten weiter noch einmal, zwei Spalten weiter noch einmal ... usw. geschrieben.
Ich brauchen es nur einmal.
Danke,
gruß alex
Anzeige
Sorry, brauche es im selben Tab.
19.10.2008 13:44:00
Alex
Hajo,
sorry,
der Code funktioniert bei Einträgen in Tab.1 und Infoübertrag in Tab.2.
Habe nun vor den Infoeintrag in der selben Tab.1 zu bekommen. Und da gings nicht.
alex
AW: Target.Address.Column+2 ?
19.10.2008 13:45:14
Tino
Hallo,
du rufst Dein Event- Makro durch das schreibe in eine Zelle
sehr Wahrscheinich immer wieder neu auf.
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
   Select Case Target.Column
       Case 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
    Sheets("Tabelle2").Range(Target.Address).Offset(0, 2).Value = _
    Application.UserName & " - " & Date
       Case Else
   End Select
 Application.EnableEvents = True
End Sub


Gruß Tino

Anzeige
AW: Geht jetzt, danke euch beiden o.w.T.
Alex
.
;
Anzeige

Infobox / Tutorial

Zieladresse in Excel VBA um zwei Spalten verschieben


Schritt-für-Schritt-Anleitung

Um die Zieladresse in Excel VBA um zwei Spalten nach rechts zu versetzen, kannst du den folgenden Code verwenden. Dieser Code wird in das Worksheet_Change-Ereignis eingefügt und aktualisiert die Zieladresse entsprechend:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Select Case Target.Column
        Case 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
            Sheets("Tabelle2").Range(Target.Address).Offset(0, 2).Value = _
            Application.UserName & " - " & Date
        Case Else
    End Select
    Application.EnableEvents = True
End Sub

In diesem Beispiel wird die Target.Address verwendet, und durch die Methode Offset(0, 2) wird die Adresse um zwei Spalten nach rechts verschoben. Achte darauf, dass du das Application.EnableEvents korrekt einstellst, um eine Endlosschleife zu vermeiden.


Häufige Fehler und Lösungen

  • Fehler: Der Infoeintrag wird mehrfach geschrieben.

    • Lösung: Stelle sicher, dass das Ereignis Application.EnableEvents auf False gesetzt wird, bevor der Code ausgeführt wird und danach wieder auf True. Dadurch wird verhindert, dass das Worksheet_Change-Ereignis erneut ausgelöst wird, wenn du in die Zieladresse schreibst.
  • Fehler: Die Zieladresse wird nicht aktualisiert.

    • Lösung: Überprüfe, ob du den richtigen Tabellennamen in Sheets("Tabelle2") angegeben hast und ob die Spaltennummern korrekt sind.

Alternative Methoden

Eine alternative Möglichkeit, um die Zieladresse zu aktualisieren, ist die Verwendung von Target.Offset anstelle von Target.Address. Hier ein Beispiel:

Sheets("Tabelle2").Range(Target.Offset(0, 2).Address).Value = Application.UserName & " - " & Date

Diese Methode funktioniert ähnlich, jedoch wird direkt die Offset-Adresse verwendet, um die Zelle zu bestimmen.


Praktische Beispiele

Hier sind einige Beispiele, die dir bei der Implementierung helfen könnten:

  1. Eintrag in derselben Tabelle: Wenn du den Infoeintrag in der gleichen Tabelle machen möchtest, kannst du einfach Target.Offset(0, 2) verwenden, um die Adresse zwei Spalten weiter zu verschieben.

  2. Zieladresse in einer anderen Tabelle: Verwende den Code oben, um die Zieladresse in Tabelle2 zu aktualisieren. Achte darauf, dass du die Zielspalte anpasst.


Tipps für Profis

  • Verwende benannte Bereiche: Wenn du oft mit Zieladressen arbeitest, erwäge die Verwendung von benannten Bereichen, um den Code lesbarer zu machen.
  • Debugging: Nutze Debug.Print oder MsgBox, um den Inhalt von Target.Address und Target.Offset während der Entwicklung zu überprüfen.
  • Code-Kommentare: Kommentiere deinen Code, um zukünftige Änderungen zu erleichtern und die Verständlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Zieladresse um mehr als zwei Spalten verschieben? Du kannst die Zahl in der Offset-Methode anpassen. Beispiel: Offset(0, 3) verschiebt die Adresse um drei Spalten.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, dieser VBA-Code sollte in allen aktuellen Excel-Versionen funktionieren, solange die VBA-Programmierung unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige