Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
884to888
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
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Lösung bitte gesucht

VBA Lösung bitte gesucht
12.07.2007 14:19:57
Josef
Hallo!
Mit nachfolgendem Code im Worksheet Change Ereignis im Arbeitsblatt "Ausprägungen" wird der eingetragene Wert in diesem Blatt in der nächsten freien Zelle der Spalte B im Tabellenblatt "Tabelle1" in der nächsten freien Zelle in der Spalte E eingetragen.
Ich möchte jedoch erreichen, dass wenn der Wert eingetragen wird die Werte aus der Spalte B und C (getrennt durch einen Bindesstrich links und rechts mit einem Leerzeichen) im Tabellenblatt "Tabelle1" in der nächsten freien Zelle in der spalte E eingetragen werden.
Wie müßte ich hier bitte den Code verändern, damit es funktioneren würde?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz1&, k As Range
If Target.Column = 2 And Target.Row > 1 Then
With Worksheets("tabelle1")
Set k = .Columns(104).Find(Target.Row, LookAt:=xlWhole)
If Not k Is Nothing Then
.Cells(k.Row, 5).Value = Target
Else
efz1 = .Cells(Rows.Count, 5).End(xlUp).Row + 1
.Cells(efz1, 5).Value = Target
.Cells(efz1, 104).Value = Target.Row
End If
End With
End If
End Sub


Danke
Josef

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

Betreff
Datum
Anwender
Anzeige
.Cells(efz1, 5).Value = Target & "-" & Target.Offs
12.07.2007 14:28:00
c0bRa
Hio...
.Cells(efz1, 5).Value = Target & "-" & Target.Offset(0,1)
Rückmeldung nicht vergessen...
c0bRa
Perl ist die einzige Sprache, die vor und nach einer RSA-Verschlüsselung gleich aussieht.

AW: .Cells(efz1, 5).Value = Target & "-" & Target.Offs
12.07.2007 14:49:00
Josef
Danke für Deine Antwort.
Habe den Code jetzt so verändert:
Dim efz4&, p As Range
If Target.Column = 2 And Target.Row > 1 Then
With Worksheets("tabelle1")
Set p = .Columns(110).Find(Target.Row, LookAt:=xlWhole)
If Not p Is Nothing Then
' .Cells(p.Row, 5).Value = Target
.Cells(efz4, 5).Value = Target & "-" & Target.Offset(0, 1)
Else
efz4 = .Cells(Rows.Count, 5).End(xlUp).Row + 1
.Cells(efz4, 5).Value = Target
.Cells(efz4, 104).Value = Target.Row
End If
End With
End If
Es wird jedoch nur der Wert aus der Spalte B ohne - eingetragen.
Beispiel:
Wert in der Zelle B2 = D
Wert in der Zelle C2 = Test
Ergebnis sollte in der Spalte E in der Tabelle1 so aussehen:
D - Test
Es sollte also eine Verkettung als Wert eingetragen werden.
Josef

Anzeige
Fehler gefunden
12.07.2007 15:15:00
Josef
Hallo!
Ich habe meinen Fehler bereits gefunden. Jetzt funktioniert es.
Danke für Deine Hilfe und Deine Mühe.
Josef

AW: .Cells(efz1, 5).Value = Target & "-" & Target.Offs
12.07.2007 15:15:01
Stefan
Hallo Josef,
Wenn deine zweite if-Schleife "wahr" ist, ist der Variablen efz4 noch kein Wert zugewiesen, bevor sie schon in .cells(efz4,... benutzt wird. Kann es sein, dass das eigentlich p.Row sein sollte?
Schoene Gruesse
Stefan

AW: .Cells(efz1, 5).Value = Target & "-" & Target.Offs
12.07.2007 15:15:00
c0bRa
Hio...
Du solltest auch das richtige ersetzen. Das was du rausgenommen hast hat als Zeilenindex k.row und nicht efz1 bzw efz4.
Code aus Microsoft Excel Objekt Tabelle1:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim efz1 As Long, k As Range
    If Target.Column = 2 And Target.Row > 1 Then
        With Worksheets("tabelle1")
            Set k = .Columns(104).Find(Target.Row, LookAt:=xlWhole)
            If Not k Is Nothing Then
                .Cells(k.Row, 5).Value = Target
            Else
                efz1 = .Cells(Rows.Count, 5).End(xlUp).Row + 1
                .Cells(efz1, 5).Value = Target
                .Cells(efz1, 104).Value = Target.Row
            End If
        End With
    End If
End Sub

Rückmeldung nicht vergessen...
c0bRa
Perl ist die einzige Sprache, die vor und nach einer RSA-Verschlüsselung gleich aussieht.

Anzeige
AW: .Cells(efz1, 5).Value = Target & "-" & Target.Offs
12.07.2007 15:17:41
c0bRa
ok, und hier eben noch die eine zeile ;)
Nu aber:
Code aus Microsoft Excel Objekt Tabelle1:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim efz1 As Long, k As Range
    If Target.Column = 2 And Target.Row > 1 Then
        With Worksheets("tabelle1")
            Set k = .Columns(104).Find(Target.Row, LookAt:=xlWhole)
            If Not k Is Nothing Then
                .Cells(k.Row, 5).Value = Target
            Else
                efz1 = .Cells(Rows.Count, 5).End(xlUp).Row + 1
                .Cells(efz1, 5).Value = Target & "-" & Target.Offset(0, 1)
                .Cells(efz1, 104).Value = Target.Row
            End If
        End With
    End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige