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

Entire.Row Bezug auf Name

Entire.Row Bezug auf Name
04.11.2022 13:41:01
Stefan
Hallo zusammen,
gibt es eine Möglichkeit sich hier (".Cells(8) = Target.EntireRow.Cells(69)") auf einen definierten Namen zu beziehen? Statt der Angabe "69"?
Mein Problem ist, dass evtl. eine Spalte eingefügt wird und dann die Protokollierung nicht mehr funktioniert.
Ich habe schon verschiedene Schreibweisen versucht - bekomme es aber nicht hin.
Vorab vielen Dank
Gruß
Stefan
Hier der ganze Code:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ErsteFreieZeile As Long
Dim AlterWert As Variant, NeuerWert As Variant
Dim rngNeuSel As Range
If Sh.Name = "Protokoll" Then Exit Sub
If Intersect(Target, Sh.Range("A1:CC1000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
NeuerWert = Target.Value
Set rngNeuSel = Selection
Application.Undo
AlterWert = Target.Value
Target.Value = NeuerWert
On Error Resume Next
rngNeuSel.Activate
On Error GoTo 0
With Sheets("Protokoll")
ErsteFreieZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
With .Rows(ErsteFreieZeile)
.Cells(1) = Sh.Name
.Cells(2) = Target.Address(0, 0)
.Cells(3) = Target.Range("A1").Value
.Cells(5) = Date
.Cells(6) = Time
.Cells(7) = Environ("username")
.Cells(4) = AlterWert
.Cells(8) = Target.EntireRow.Cells(69)
End With
End With
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
AlterWert = Target
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Entire.Row Bezug auf Name
04.11.2022 13:48:48
Rudi
Hallo,
Target.EntireRow.Cells([DeinName].Column)
Gruß
Rudi
AW: Entire.Row Bezug auf Name
04.11.2022 18:41:20
Stefan
Hallo Rudi,
habe es gerade getestet.
Funktioniert.
Vielen Dank
AW: Entire.Row Bezug auf Name
04.11.2022 21:12:30
Stefan
Hallo Rudi,
vielleicht könntest Du mir nochmal helfen?
Ich würde hier gerne die "65" gegen einen definierten Namen ersetzen.
lastcell1 = Worksheets(sheet1).Cells(Rows.Count, 65).End(xlUp).Row
Und hier die "61" bzw. die "3"
If Worksheets(sheet1).Cells(z, 61) = Worksheets("PT").Cells(y, 3) Then
Vorab vielen dank
Gruß
Stefan
AW: Entire.Row Bezug auf Name
06.11.2022 21:23:24
Rudi
Hallo,
geht genauso.
Statt 65/ 61/ 3
[DeinName].column
Gruß
Rudi
AW: Entire.Row Bezug auf Name
06.11.2022 21:51:47
Daniel
Hi
Wenn du für den definierten Namen auf die ganze Spalte nimmst, dann kannst du auch diesen direkt verwenden. Dann fällt auch das Tabellenblatt weg:
Die Namen müssen auf den jeweiligen Blättern liegen.
Um einen Namen im Code zu verwenden, gibt es mehrere Wege
  • [NameX]

  • Range("NameX")

  • ThisWorkbook.Names("NameX").RefersToRange

  • Und für deinen Fall
    
    If [Name1].Cells(z, 1) = [Name2].Cells(y, 1) then
    
    Eventuell reicht sogar diese Kurzvariante
    
    If [Name1](z)= [Name2](y) then
    
    Gruß Daniel
    Anzeige
    AW: Entire.Row Bezug auf Name
    07.11.2022 20:37:28
    Stefan
    Ich hab´s gerade getestet - funktioniert. [DeinName].column
    Vielen Dank
    Gruß
    Stefan

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige