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

Entire.Row Bezug auf Name

Forumthread: 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
Anzeige

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
Anzeige
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
    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